From b46ba03d62703be71e61ff73b5d5e68c19ca144d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Mon, 16 Dec 2024 20:57:17 -0300 Subject: [PATCH 01/19] Add new actor ema score init --- x/emissions/keeper/ema_scores.go | 41 ++++++++++++++++++++++++++++++++ x/emissions/keeper/keeper.go | 6 +++-- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/x/emissions/keeper/ema_scores.go b/x/emissions/keeper/ema_scores.go index 69b198276..01c317377 100644 --- a/x/emissions/keeper/ema_scores.go +++ b/x/emissions/keeper/ema_scores.go @@ -236,3 +236,44 @@ func (k *Keeper) CalcAndSaveReputerScoreEmaWithLastSavedTopicQuantile( types.EmitNewActorEMAScoresSetEvent(ctx, types.ActorType_ACTOR_TYPE_REPUTER, emaScores, activeArr) return nil } + +// helper function to calculate initial score for new participants +func (k *Keeper) calculateInitialScore( + ctx context.Context, + topicId TopicId, + address ActorId, + lowestScore types.Score, + last25thPercentile alloraMath.Dec, +) (types.Score, error) { + // Get kappa parameter from module params + params, err := k.GetParams(ctx) + if err != nil { + return types.Score{}, errors.Wrapf(err, "error getting module params") + } + kappa := params.NewParticipantScoreInitializationKappa + + // Calculate initial score using formula: (1+kappa)*lowestScore-kappa*last25thPercentile + onePlusKappa, err := alloraMath.NewDecFromInt64(1).Add(kappa) + if err != nil { + return types.Score{}, errors.Wrapf(err, "error creating 1+kappa") + } + lowestScoreMul, err := lowestScore.Score.Mul(onePlusKappa) + if err != nil { + return types.Score{}, errors.Wrapf(err, "error multiplying lowest score by 1+kappa") + } + last25thPercentileMul, err := last25thPercentile.Mul(kappa) + if err != nil { + return types.Score{}, errors.Wrapf(err, "error multiplying last 25th percentile by kappa") + } + initialScore, err := lowestScoreMul.Sub(last25thPercentileMul) + if err != nil { + return types.Score{}, errors.Wrapf(err, "error calculating initial score") + } + + return types.Score{ + TopicId: topicId, + Address: address, + Score: initialScore, + BlockHeight: 0, + }, nil +} diff --git a/x/emissions/keeper/keeper.go b/x/emissions/keeper/keeper.go index 32dd70bb6..06ef08b94 100644 --- a/x/emissions/keeper/keeper.go +++ b/x/emissions/keeper/keeper.go @@ -3177,8 +3177,10 @@ func (k *Keeper) SetInfererScoreEma(ctx context.Context, topicId TopicId, worker return k.infererScoreEmas.Set(ctx, key, score) } -func (k *Keeper) GetInfererScoreEma(ctx context.Context, topicId TopicId, worker ActorId) (types.Score, error) { - key := collections.Join(topicId, worker) +// GetInfererScoreEma gets the EMA score for an inferer in a topic +// If no prior score exists, initializes it using (1+kappa)*lowestEmaScore-kappa*last25thPercentile +func (k *Keeper) GetInfererScoreEma(ctx context.Context, topicId TopicId, inferer ActorId) (types.Score, error) { + key := collections.Join(topicId, inferer) score, err := k.infererScoreEmas.Get(ctx, key) if errors.Is(err, collections.ErrNotFound) { return types.Score{ From b4aaeb12e7ffa3fefae419b77dd1724f045f792b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Tue, 17 Dec 2024 19:40:26 -0300 Subject: [PATCH 02/19] Calculate topic initial ema score in reward distribution --- x/emissions/api/emissions/v7/params.pulsar.go | 238 ++- x/emissions/api/emissions/v7/tx.pulsar.go | 1418 +++++++++-------- x/emissions/keeper/keeper.go | 113 +- x/emissions/keeper/keeper_test.go | 39 + x/emissions/module/rewards/scores.go | 98 ++ x/emissions/proto/emissions/v7/params.proto | 4 + x/emissions/proto/emissions/v7/tx.proto | 4 + x/emissions/types/keys.go | 3 + x/emissions/types/params.pb.go | 250 +-- x/emissions/types/tx.pb.go | 560 ++++--- 10 files changed, 1661 insertions(+), 1066 deletions(-) diff --git a/x/emissions/api/emissions/v7/params.pulsar.go b/x/emissions/api/emissions/v7/params.pulsar.go index 87af6a5a7..8310ae19e 100644 --- a/x/emissions/api/emissions/v7/params.pulsar.go +++ b/x/emissions/api/emissions/v7/params.pulsar.go @@ -16,55 +16,56 @@ import ( ) var ( - md_Params protoreflect.MessageDescriptor - fd_Params_version protoreflect.FieldDescriptor - fd_Params_max_serialized_msg_length protoreflect.FieldDescriptor - fd_Params_min_topic_weight protoreflect.FieldDescriptor - fd_Params_required_minimum_stake protoreflect.FieldDescriptor - fd_Params_remove_stake_delay_window protoreflect.FieldDescriptor - fd_Params_min_epoch_length protoreflect.FieldDescriptor - fd_Params_beta_entropy protoreflect.FieldDescriptor - fd_Params_learning_rate protoreflect.FieldDescriptor - fd_Params_max_gradient_threshold protoreflect.FieldDescriptor - fd_Params_min_stake_fraction protoreflect.FieldDescriptor - fd_Params_max_unfulfilled_worker_requests protoreflect.FieldDescriptor - fd_Params_max_unfulfilled_reputer_requests protoreflect.FieldDescriptor - fd_Params_topic_reward_stake_importance protoreflect.FieldDescriptor - fd_Params_topic_reward_fee_revenue_importance protoreflect.FieldDescriptor - fd_Params_topic_reward_alpha protoreflect.FieldDescriptor - fd_Params_task_reward_alpha protoreflect.FieldDescriptor - fd_Params_validators_vs_allora_percent_reward protoreflect.FieldDescriptor - fd_Params_max_samples_to_scale_scores protoreflect.FieldDescriptor - fd_Params_max_top_inferers_to_reward protoreflect.FieldDescriptor - fd_Params_max_top_forecasters_to_reward protoreflect.FieldDescriptor - fd_Params_max_top_reputers_to_reward protoreflect.FieldDescriptor - fd_Params_create_topic_fee protoreflect.FieldDescriptor - fd_Params_gradient_descent_max_iters protoreflect.FieldDescriptor - fd_Params_registration_fee protoreflect.FieldDescriptor - fd_Params_default_page_limit protoreflect.FieldDescriptor - fd_Params_max_page_limit protoreflect.FieldDescriptor - fd_Params_min_epoch_length_record_limit protoreflect.FieldDescriptor - fd_Params_blocks_per_month protoreflect.FieldDescriptor - fd_Params_p_reward_inference protoreflect.FieldDescriptor - fd_Params_p_reward_forecast protoreflect.FieldDescriptor - fd_Params_p_reward_reputer protoreflect.FieldDescriptor - fd_Params_c_reward_inference protoreflect.FieldDescriptor - fd_Params_c_reward_forecast protoreflect.FieldDescriptor - fd_Params_c_norm protoreflect.FieldDescriptor - fd_Params_epsilon_reputer protoreflect.FieldDescriptor - fd_Params_half_max_process_stake_removals_end_block protoreflect.FieldDescriptor - fd_Params_epsilon_safe_div protoreflect.FieldDescriptor - fd_Params_data_sending_fee protoreflect.FieldDescriptor - fd_Params_max_elements_per_forecast protoreflect.FieldDescriptor - fd_Params_max_active_topics_per_block protoreflect.FieldDescriptor - fd_Params_max_string_length protoreflect.FieldDescriptor - fd_Params_initial_regret_quantile protoreflect.FieldDescriptor - fd_Params_p_norm_safe_div protoreflect.FieldDescriptor - fd_Params_global_whitelist_enabled protoreflect.FieldDescriptor - fd_Params_topic_creator_whitelist_enabled protoreflect.FieldDescriptor - fd_Params_min_experienced_worker_regrets protoreflect.FieldDescriptor - fd_Params_inference_outlier_detection_threshold protoreflect.FieldDescriptor - fd_Params_inference_outlier_detection_alpha protoreflect.FieldDescriptor + md_Params protoreflect.MessageDescriptor + fd_Params_version protoreflect.FieldDescriptor + fd_Params_max_serialized_msg_length protoreflect.FieldDescriptor + fd_Params_min_topic_weight protoreflect.FieldDescriptor + fd_Params_required_minimum_stake protoreflect.FieldDescriptor + fd_Params_remove_stake_delay_window protoreflect.FieldDescriptor + fd_Params_min_epoch_length protoreflect.FieldDescriptor + fd_Params_beta_entropy protoreflect.FieldDescriptor + fd_Params_learning_rate protoreflect.FieldDescriptor + fd_Params_max_gradient_threshold protoreflect.FieldDescriptor + fd_Params_min_stake_fraction protoreflect.FieldDescriptor + fd_Params_max_unfulfilled_worker_requests protoreflect.FieldDescriptor + fd_Params_max_unfulfilled_reputer_requests protoreflect.FieldDescriptor + fd_Params_topic_reward_stake_importance protoreflect.FieldDescriptor + fd_Params_topic_reward_fee_revenue_importance protoreflect.FieldDescriptor + fd_Params_topic_reward_alpha protoreflect.FieldDescriptor + fd_Params_task_reward_alpha protoreflect.FieldDescriptor + fd_Params_validators_vs_allora_percent_reward protoreflect.FieldDescriptor + fd_Params_max_samples_to_scale_scores protoreflect.FieldDescriptor + fd_Params_max_top_inferers_to_reward protoreflect.FieldDescriptor + fd_Params_max_top_forecasters_to_reward protoreflect.FieldDescriptor + fd_Params_max_top_reputers_to_reward protoreflect.FieldDescriptor + fd_Params_create_topic_fee protoreflect.FieldDescriptor + fd_Params_gradient_descent_max_iters protoreflect.FieldDescriptor + fd_Params_registration_fee protoreflect.FieldDescriptor + fd_Params_default_page_limit protoreflect.FieldDescriptor + fd_Params_max_page_limit protoreflect.FieldDescriptor + fd_Params_min_epoch_length_record_limit protoreflect.FieldDescriptor + fd_Params_blocks_per_month protoreflect.FieldDescriptor + fd_Params_p_reward_inference protoreflect.FieldDescriptor + fd_Params_p_reward_forecast protoreflect.FieldDescriptor + fd_Params_p_reward_reputer protoreflect.FieldDescriptor + fd_Params_c_reward_inference protoreflect.FieldDescriptor + fd_Params_c_reward_forecast protoreflect.FieldDescriptor + fd_Params_c_norm protoreflect.FieldDescriptor + fd_Params_epsilon_reputer protoreflect.FieldDescriptor + fd_Params_half_max_process_stake_removals_end_block protoreflect.FieldDescriptor + fd_Params_epsilon_safe_div protoreflect.FieldDescriptor + fd_Params_data_sending_fee protoreflect.FieldDescriptor + fd_Params_max_elements_per_forecast protoreflect.FieldDescriptor + fd_Params_max_active_topics_per_block protoreflect.FieldDescriptor + fd_Params_max_string_length protoreflect.FieldDescriptor + fd_Params_initial_regret_quantile protoreflect.FieldDescriptor + fd_Params_p_norm_safe_div protoreflect.FieldDescriptor + fd_Params_global_whitelist_enabled protoreflect.FieldDescriptor + fd_Params_topic_creator_whitelist_enabled protoreflect.FieldDescriptor + fd_Params_min_experienced_worker_regrets protoreflect.FieldDescriptor + fd_Params_inference_outlier_detection_threshold protoreflect.FieldDescriptor + fd_Params_inference_outlier_detection_alpha protoreflect.FieldDescriptor + fd_Params_new_participant_score_initialization_kappa protoreflect.FieldDescriptor ) func init() { @@ -118,6 +119,7 @@ func init() { fd_Params_min_experienced_worker_regrets = md_Params.Fields().ByName("min_experienced_worker_regrets") fd_Params_inference_outlier_detection_threshold = md_Params.Fields().ByName("inference_outlier_detection_threshold") fd_Params_inference_outlier_detection_alpha = md_Params.Fields().ByName("inference_outlier_detection_alpha") + fd_Params_new_participant_score_initialization_kappa = md_Params.Fields().ByName("new_participant_score_initialization_kappa") } var _ protoreflect.Message = (*fastReflection_Params)(nil) @@ -473,6 +475,12 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto return } } + if x.NewParticipantScoreInitializationKappa != "" { + value := protoreflect.ValueOfString(x.NewParticipantScoreInitializationKappa) + if !f(fd_Params_new_participant_score_initialization_kappa, value) { + return + } + } } // Has reports whether a field is populated. @@ -584,6 +592,8 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { return x.InferenceOutlierDetectionThreshold != "" case "emissions.v7.Params.inference_outlier_detection_alpha": return x.InferenceOutlierDetectionAlpha != "" + case "emissions.v7.Params.new_participant_score_initialization_kappa": + return x.NewParticipantScoreInitializationKappa != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -696,6 +706,8 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { x.InferenceOutlierDetectionThreshold = "" case "emissions.v7.Params.inference_outlier_detection_alpha": x.InferenceOutlierDetectionAlpha = "" + case "emissions.v7.Params.new_participant_score_initialization_kappa": + x.NewParticipantScoreInitializationKappa = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -856,6 +868,9 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro case "emissions.v7.Params.inference_outlier_detection_alpha": value := x.InferenceOutlierDetectionAlpha return protoreflect.ValueOfString(value) + case "emissions.v7.Params.new_participant_score_initialization_kappa": + value := x.NewParticipantScoreInitializationKappa + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -972,6 +987,8 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto x.InferenceOutlierDetectionThreshold = value.Interface().(string) case "emissions.v7.Params.inference_outlier_detection_alpha": x.InferenceOutlierDetectionAlpha = value.Interface().(string) + case "emissions.v7.Params.new_participant_score_initialization_kappa": + x.NewParticipantScoreInitializationKappa = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -1088,6 +1105,8 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore panic(fmt.Errorf("field inference_outlier_detection_threshold of message emissions.v7.Params is not mutable")) case "emissions.v7.Params.inference_outlier_detection_alpha": panic(fmt.Errorf("field inference_outlier_detection_alpha of message emissions.v7.Params is not mutable")) + case "emissions.v7.Params.new_participant_score_initialization_kappa": + panic(fmt.Errorf("field new_participant_score_initialization_kappa of message emissions.v7.Params is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -1197,6 +1216,8 @@ func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protor return protoreflect.ValueOfString("") case "emissions.v7.Params.inference_outlier_detection_alpha": return protoreflect.ValueOfString("") + case "emissions.v7.Params.new_participant_score_initialization_kappa": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -1437,6 +1458,10 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) } + l = len(x.NewParticipantScoreInitializationKappa) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -1466,6 +1491,15 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.NewParticipantScoreInitializationKappa) > 0 { + i -= len(x.NewParticipantScoreInitializationKappa) + copy(dAtA[i:], x.NewParticipantScoreInitializationKappa) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewParticipantScoreInitializationKappa))) + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xba + } if len(x.InferenceOutlierDetectionAlpha) > 0 { i -= len(x.InferenceOutlierDetectionAlpha) copy(dAtA[i:], x.InferenceOutlierDetectionAlpha) @@ -3154,6 +3188,38 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { } x.InferenceOutlierDetectionAlpha = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 55: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewParticipantScoreInitializationKappa", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NewParticipantScoreInitializationKappa = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -3273,8 +3339,9 @@ type Params struct { TopicCreatorWhitelistEnabled bool `protobuf:"varint,51,opt,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` // topic creator whitelist enabled => only topic creator whitelisted actors can create topics MinExperiencedWorkerRegrets uint64 `protobuf:"varint,52,opt,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` // minimum number of experienced workers required to use their regrets // for calculating the topic initial regret - InferenceOutlierDetectionThreshold string `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` - InferenceOutlierDetectionAlpha string `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` + InferenceOutlierDetectionThreshold string `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` + InferenceOutlierDetectionAlpha string `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` + NewParticipantScoreInitializationKappa string `protobuf:"bytes,55,opt,name=new_participant_score_initialization_kappa,json=newParticipantScoreInitializationKappa,proto3" json:"new_participant_score_initialization_kappa,omitempty"` } func (x *Params) Reset() { @@ -3633,6 +3700,13 @@ func (x *Params) GetInferenceOutlierDetectionAlpha() string { return "" } +func (x *Params) GetNewParticipantScoreInitializationKappa() string { + if x != nil { + return x.NewParticipantScoreInitializationKappa + } + return "" +} + var File_emissions_v7_params_proto protoreflect.FileDescriptor var file_emissions_v7_params_proto_rawDesc = []byte{ @@ -3642,7 +3716,7 @@ var file_emissions_v7_params_proto_rawDesc = []byte{ 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xff, 0x20, + 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x22, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, @@ -3895,31 +3969,41 @@ var file_emissions_v7_params_proto_rawDesc = []byte{ 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x1e, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x6c, 0x70, 0x68, 0x61, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, - 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, - 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, - 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, - 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, - 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, - 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x42, - 0xc1, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x42, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, - 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, - 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x93, 0x01, 0x0a, 0x2a, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, + 0x61, 0x70, 0x70, 0x61, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, + 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, + 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, + 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, + 0x44, 0x65, 0x63, 0x52, 0x26, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x61, 0x70, 0x70, 0x61, 0x4a, 0x04, 0x08, 0x04, 0x10, + 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, + 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, + 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, + 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, + 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, + 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x42, 0xc1, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x42, 0x0b, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, + 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, + 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, + 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/x/emissions/api/emissions/v7/tx.pulsar.go b/x/emissions/api/emissions/v7/tx.pulsar.go index c317e9418..08eb1f9cc 100644 --- a/x/emissions/api/emissions/v7/tx.pulsar.go +++ b/x/emissions/api/emissions/v7/tx.pulsar.go @@ -2225,56 +2225,103 @@ func (x *_OptionalParams_54_list) IsValid() bool { return x.list != nil } +var _ protoreflect.List = (*_OptionalParams_55_list)(nil) + +type _OptionalParams_55_list struct { + list *[]string +} + +func (x *_OptionalParams_55_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_OptionalParams_55_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_OptionalParams_55_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_OptionalParams_55_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_OptionalParams_55_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message OptionalParams at list field NewParticipantScoreInitializationKappa as it is not of Message kind")) +} + +func (x *_OptionalParams_55_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_OptionalParams_55_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_OptionalParams_55_list) IsValid() bool { + return x.list != nil +} + var ( - md_OptionalParams protoreflect.MessageDescriptor - fd_OptionalParams_version protoreflect.FieldDescriptor - fd_OptionalParams_max_serialized_msg_length protoreflect.FieldDescriptor - fd_OptionalParams_min_topic_weight protoreflect.FieldDescriptor - fd_OptionalParams_required_minimum_stake protoreflect.FieldDescriptor - fd_OptionalParams_remove_stake_delay_window protoreflect.FieldDescriptor - fd_OptionalParams_min_epoch_length protoreflect.FieldDescriptor - fd_OptionalParams_beta_entropy protoreflect.FieldDescriptor - fd_OptionalParams_learning_rate protoreflect.FieldDescriptor - fd_OptionalParams_max_gradient_threshold protoreflect.FieldDescriptor - fd_OptionalParams_min_stake_fraction protoreflect.FieldDescriptor - fd_OptionalParams_max_unfulfilled_worker_requests protoreflect.FieldDescriptor - fd_OptionalParams_max_unfulfilled_reputer_requests protoreflect.FieldDescriptor - fd_OptionalParams_topic_reward_stake_importance protoreflect.FieldDescriptor - fd_OptionalParams_topic_reward_fee_revenue_importance protoreflect.FieldDescriptor - fd_OptionalParams_topic_reward_alpha protoreflect.FieldDescriptor - fd_OptionalParams_task_reward_alpha protoreflect.FieldDescriptor - fd_OptionalParams_validators_vs_allora_percent_reward protoreflect.FieldDescriptor - fd_OptionalParams_max_samples_to_scale_scores protoreflect.FieldDescriptor - fd_OptionalParams_max_top_inferers_to_reward protoreflect.FieldDescriptor - fd_OptionalParams_max_top_forecasters_to_reward protoreflect.FieldDescriptor - fd_OptionalParams_max_top_reputers_to_reward protoreflect.FieldDescriptor - fd_OptionalParams_create_topic_fee protoreflect.FieldDescriptor - fd_OptionalParams_gradient_descent_max_iters protoreflect.FieldDescriptor - fd_OptionalParams_registration_fee protoreflect.FieldDescriptor - fd_OptionalParams_default_page_limit protoreflect.FieldDescriptor - fd_OptionalParams_max_page_limit protoreflect.FieldDescriptor - fd_OptionalParams_min_epoch_length_record_limit protoreflect.FieldDescriptor - fd_OptionalParams_blocks_per_month protoreflect.FieldDescriptor - fd_OptionalParams_p_reward_inference protoreflect.FieldDescriptor - fd_OptionalParams_p_reward_forecast protoreflect.FieldDescriptor - fd_OptionalParams_p_reward_reputer protoreflect.FieldDescriptor - fd_OptionalParams_c_reward_inference protoreflect.FieldDescriptor - fd_OptionalParams_c_reward_forecast protoreflect.FieldDescriptor - fd_OptionalParams_c_norm protoreflect.FieldDescriptor - fd_OptionalParams_epsilon_reputer protoreflect.FieldDescriptor - fd_OptionalParams_half_max_process_stake_removals_end_block protoreflect.FieldDescriptor - fd_OptionalParams_data_sending_fee protoreflect.FieldDescriptor - fd_OptionalParams_epsilon_safe_div protoreflect.FieldDescriptor - fd_OptionalParams_max_elements_per_forecast protoreflect.FieldDescriptor - fd_OptionalParams_max_active_topics_per_block protoreflect.FieldDescriptor - fd_OptionalParams_max_string_length protoreflect.FieldDescriptor - fd_OptionalParams_initial_regret_quantile protoreflect.FieldDescriptor - fd_OptionalParams_p_norm_safe_div protoreflect.FieldDescriptor - fd_OptionalParams_global_whitelist_enabled protoreflect.FieldDescriptor - fd_OptionalParams_topic_creator_whitelist_enabled protoreflect.FieldDescriptor - fd_OptionalParams_min_experienced_worker_regrets protoreflect.FieldDescriptor - fd_OptionalParams_inference_outlier_detection_threshold protoreflect.FieldDescriptor - fd_OptionalParams_inference_outlier_detection_alpha protoreflect.FieldDescriptor + md_OptionalParams protoreflect.MessageDescriptor + fd_OptionalParams_version protoreflect.FieldDescriptor + fd_OptionalParams_max_serialized_msg_length protoreflect.FieldDescriptor + fd_OptionalParams_min_topic_weight protoreflect.FieldDescriptor + fd_OptionalParams_required_minimum_stake protoreflect.FieldDescriptor + fd_OptionalParams_remove_stake_delay_window protoreflect.FieldDescriptor + fd_OptionalParams_min_epoch_length protoreflect.FieldDescriptor + fd_OptionalParams_beta_entropy protoreflect.FieldDescriptor + fd_OptionalParams_learning_rate protoreflect.FieldDescriptor + fd_OptionalParams_max_gradient_threshold protoreflect.FieldDescriptor + fd_OptionalParams_min_stake_fraction protoreflect.FieldDescriptor + fd_OptionalParams_max_unfulfilled_worker_requests protoreflect.FieldDescriptor + fd_OptionalParams_max_unfulfilled_reputer_requests protoreflect.FieldDescriptor + fd_OptionalParams_topic_reward_stake_importance protoreflect.FieldDescriptor + fd_OptionalParams_topic_reward_fee_revenue_importance protoreflect.FieldDescriptor + fd_OptionalParams_topic_reward_alpha protoreflect.FieldDescriptor + fd_OptionalParams_task_reward_alpha protoreflect.FieldDescriptor + fd_OptionalParams_validators_vs_allora_percent_reward protoreflect.FieldDescriptor + fd_OptionalParams_max_samples_to_scale_scores protoreflect.FieldDescriptor + fd_OptionalParams_max_top_inferers_to_reward protoreflect.FieldDescriptor + fd_OptionalParams_max_top_forecasters_to_reward protoreflect.FieldDescriptor + fd_OptionalParams_max_top_reputers_to_reward protoreflect.FieldDescriptor + fd_OptionalParams_create_topic_fee protoreflect.FieldDescriptor + fd_OptionalParams_gradient_descent_max_iters protoreflect.FieldDescriptor + fd_OptionalParams_registration_fee protoreflect.FieldDescriptor + fd_OptionalParams_default_page_limit protoreflect.FieldDescriptor + fd_OptionalParams_max_page_limit protoreflect.FieldDescriptor + fd_OptionalParams_min_epoch_length_record_limit protoreflect.FieldDescriptor + fd_OptionalParams_blocks_per_month protoreflect.FieldDescriptor + fd_OptionalParams_p_reward_inference protoreflect.FieldDescriptor + fd_OptionalParams_p_reward_forecast protoreflect.FieldDescriptor + fd_OptionalParams_p_reward_reputer protoreflect.FieldDescriptor + fd_OptionalParams_c_reward_inference protoreflect.FieldDescriptor + fd_OptionalParams_c_reward_forecast protoreflect.FieldDescriptor + fd_OptionalParams_c_norm protoreflect.FieldDescriptor + fd_OptionalParams_epsilon_reputer protoreflect.FieldDescriptor + fd_OptionalParams_half_max_process_stake_removals_end_block protoreflect.FieldDescriptor + fd_OptionalParams_data_sending_fee protoreflect.FieldDescriptor + fd_OptionalParams_epsilon_safe_div protoreflect.FieldDescriptor + fd_OptionalParams_max_elements_per_forecast protoreflect.FieldDescriptor + fd_OptionalParams_max_active_topics_per_block protoreflect.FieldDescriptor + fd_OptionalParams_max_string_length protoreflect.FieldDescriptor + fd_OptionalParams_initial_regret_quantile protoreflect.FieldDescriptor + fd_OptionalParams_p_norm_safe_div protoreflect.FieldDescriptor + fd_OptionalParams_global_whitelist_enabled protoreflect.FieldDescriptor + fd_OptionalParams_topic_creator_whitelist_enabled protoreflect.FieldDescriptor + fd_OptionalParams_min_experienced_worker_regrets protoreflect.FieldDescriptor + fd_OptionalParams_inference_outlier_detection_threshold protoreflect.FieldDescriptor + fd_OptionalParams_inference_outlier_detection_alpha protoreflect.FieldDescriptor + fd_OptionalParams_new_participant_score_initialization_kappa protoreflect.FieldDescriptor ) func init() { @@ -2328,6 +2375,7 @@ func init() { fd_OptionalParams_min_experienced_worker_regrets = md_OptionalParams.Fields().ByName("min_experienced_worker_regrets") fd_OptionalParams_inference_outlier_detection_threshold = md_OptionalParams.Fields().ByName("inference_outlier_detection_threshold") fd_OptionalParams_inference_outlier_detection_alpha = md_OptionalParams.Fields().ByName("inference_outlier_detection_alpha") + fd_OptionalParams_new_participant_score_initialization_kappa = md_OptionalParams.Fields().ByName("new_participant_score_initialization_kappa") } var _ protoreflect.Message = (*fastReflection_OptionalParams)(nil) @@ -2683,6 +2731,12 @@ func (x *fastReflection_OptionalParams) Range(f func(protoreflect.FieldDescripto return } } + if len(x.NewParticipantScoreInitializationKappa) != 0 { + value := protoreflect.ValueOfList(&_OptionalParams_55_list{list: &x.NewParticipantScoreInitializationKappa}) + if !f(fd_OptionalParams_new_participant_score_initialization_kappa, value) { + return + } + } } // Has reports whether a field is populated. @@ -2794,6 +2848,8 @@ func (x *fastReflection_OptionalParams) Has(fd protoreflect.FieldDescriptor) boo return len(x.InferenceOutlierDetectionThreshold) != 0 case "emissions.v7.OptionalParams.inference_outlier_detection_alpha": return len(x.InferenceOutlierDetectionAlpha) != 0 + case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": + return len(x.NewParticipantScoreInitializationKappa) != 0 default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -2906,6 +2962,8 @@ func (x *fastReflection_OptionalParams) Clear(fd protoreflect.FieldDescriptor) { x.InferenceOutlierDetectionThreshold = nil case "emissions.v7.OptionalParams.inference_outlier_detection_alpha": x.InferenceOutlierDetectionAlpha = nil + case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": + x.NewParticipantScoreInitializationKappa = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -3210,6 +3268,12 @@ func (x *fastReflection_OptionalParams) Get(descriptor protoreflect.FieldDescrip } listValue := &_OptionalParams_54_list{list: &x.InferenceOutlierDetectionAlpha} return protoreflect.ValueOfList(listValue) + case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": + if len(x.NewParticipantScoreInitializationKappa) == 0 { + return protoreflect.ValueOfList(&_OptionalParams_55_list{}) + } + listValue := &_OptionalParams_55_list{list: &x.NewParticipantScoreInitializationKappa} + return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -3422,6 +3486,10 @@ func (x *fastReflection_OptionalParams) Set(fd protoreflect.FieldDescriptor, val lv := value.List() clv := lv.(*_OptionalParams_54_list) x.InferenceOutlierDetectionAlpha = *clv.list + case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": + lv := value.List() + clv := lv.(*_OptionalParams_55_list) + x.NewParticipantScoreInitializationKappa = *clv.list default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -3730,6 +3798,12 @@ func (x *fastReflection_OptionalParams) Mutable(fd protoreflect.FieldDescriptor) } value := &_OptionalParams_54_list{list: &x.InferenceOutlierDetectionAlpha} return protoreflect.ValueOfList(value) + case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": + if x.NewParticipantScoreInitializationKappa == nil { + x.NewParticipantScoreInitializationKappa = []string{} + } + value := &_OptionalParams_55_list{list: &x.NewParticipantScoreInitializationKappa} + return protoreflect.ValueOfList(value) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -3887,6 +3961,9 @@ func (x *fastReflection_OptionalParams) NewField(fd protoreflect.FieldDescriptor case "emissions.v7.OptionalParams.inference_outlier_detection_alpha": list := []string{} return protoreflect.ValueOfList(&_OptionalParams_54_list{list: &list}) + case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": + list := []string{} + return protoreflect.ValueOfList(&_OptionalParams_55_list{list: &list}) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -4257,6 +4334,12 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { n += 2 + l + runtime.Sov(uint64(l)) } } + if len(x.NewParticipantScoreInitializationKappa) > 0 { + for _, s := range x.NewParticipantScoreInitializationKappa { + l = len(s) + n += 2 + l + runtime.Sov(uint64(l)) + } + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -4286,6 +4369,17 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.NewParticipantScoreInitializationKappa) > 0 { + for iNdEx := len(x.NewParticipantScoreInitializationKappa) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.NewParticipantScoreInitializationKappa[iNdEx]) + copy(dAtA[i:], x.NewParticipantScoreInitializationKappa[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewParticipantScoreInitializationKappa[iNdEx]))) + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xba + } + } if len(x.InferenceOutlierDetectionAlpha) > 0 { for iNdEx := len(x.InferenceOutlierDetectionAlpha) - 1; iNdEx >= 0; iNdEx-- { i -= len(x.InferenceOutlierDetectionAlpha[iNdEx]) @@ -7506,6 +7600,38 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } x.InferenceOutlierDetectionAlpha = append(x.InferenceOutlierDetectionAlpha, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 55: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewParticipantScoreInitializationKappa", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NewParticipantScoreInitializationKappa = append(x.NewParticipantScoreInitializationKappa, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -33022,54 +33148,55 @@ type OptionalParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Version []string `protobuf:"bytes,1,rep,name=version,proto3" json:"version,omitempty"` - MaxSerializedMsgLength []int64 `protobuf:"varint,2,rep,packed,name=max_serialized_msg_length,json=maxSerializedMsgLength,proto3" json:"max_serialized_msg_length,omitempty"` - MinTopicWeight []string `protobuf:"bytes,3,rep,name=min_topic_weight,json=minTopicWeight,proto3" json:"min_topic_weight,omitempty"` - RequiredMinimumStake []string `protobuf:"bytes,5,rep,name=required_minimum_stake,json=requiredMinimumStake,proto3" json:"required_minimum_stake,omitempty"` - RemoveStakeDelayWindow []int64 `protobuf:"varint,6,rep,packed,name=remove_stake_delay_window,json=removeStakeDelayWindow,proto3" json:"remove_stake_delay_window,omitempty"` - MinEpochLength []int64 `protobuf:"varint,7,rep,packed,name=min_epoch_length,json=minEpochLength,proto3" json:"min_epoch_length,omitempty"` - BetaEntropy []string `protobuf:"bytes,8,rep,name=beta_entropy,json=betaEntropy,proto3" json:"beta_entropy,omitempty"` - LearningRate []string `protobuf:"bytes,9,rep,name=learning_rate,json=learningRate,proto3" json:"learning_rate,omitempty"` - MaxGradientThreshold []string `protobuf:"bytes,10,rep,name=max_gradient_threshold,json=maxGradientThreshold,proto3" json:"max_gradient_threshold,omitempty"` - MinStakeFraction []string `protobuf:"bytes,11,rep,name=min_stake_fraction,json=minStakeFraction,proto3" json:"min_stake_fraction,omitempty"` - MaxUnfulfilledWorkerRequests []uint64 `protobuf:"varint,13,rep,packed,name=max_unfulfilled_worker_requests,json=maxUnfulfilledWorkerRequests,proto3" json:"max_unfulfilled_worker_requests,omitempty"` - MaxUnfulfilledReputerRequests []uint64 `protobuf:"varint,14,rep,packed,name=max_unfulfilled_reputer_requests,json=maxUnfulfilledReputerRequests,proto3" json:"max_unfulfilled_reputer_requests,omitempty"` - TopicRewardStakeImportance []string `protobuf:"bytes,15,rep,name=topic_reward_stake_importance,json=topicRewardStakeImportance,proto3" json:"topic_reward_stake_importance,omitempty"` - TopicRewardFeeRevenueImportance []string `protobuf:"bytes,16,rep,name=topic_reward_fee_revenue_importance,json=topicRewardFeeRevenueImportance,proto3" json:"topic_reward_fee_revenue_importance,omitempty"` - TopicRewardAlpha []string `protobuf:"bytes,17,rep,name=topic_reward_alpha,json=topicRewardAlpha,proto3" json:"topic_reward_alpha,omitempty"` - TaskRewardAlpha []string `protobuf:"bytes,18,rep,name=task_reward_alpha,json=taskRewardAlpha,proto3" json:"task_reward_alpha,omitempty"` - ValidatorsVsAlloraPercentReward []string `protobuf:"bytes,19,rep,name=validators_vs_allora_percent_reward,json=validatorsVsAlloraPercentReward,proto3" json:"validators_vs_allora_percent_reward,omitempty"` - MaxSamplesToScaleScores []uint64 `protobuf:"varint,20,rep,packed,name=max_samples_to_scale_scores,json=maxSamplesToScaleScores,proto3" json:"max_samples_to_scale_scores,omitempty"` - MaxTopInferersToReward []uint64 `protobuf:"varint,21,rep,packed,name=max_top_inferers_to_reward,json=maxTopInferersToReward,proto3" json:"max_top_inferers_to_reward,omitempty"` - MaxTopForecastersToReward []uint64 `protobuf:"varint,22,rep,packed,name=max_top_forecasters_to_reward,json=maxTopForecastersToReward,proto3" json:"max_top_forecasters_to_reward,omitempty"` - MaxTopReputersToReward []uint64 `protobuf:"varint,23,rep,packed,name=max_top_reputers_to_reward,json=maxTopReputersToReward,proto3" json:"max_top_reputers_to_reward,omitempty"` - CreateTopicFee []string `protobuf:"bytes,24,rep,name=create_topic_fee,json=createTopicFee,proto3" json:"create_topic_fee,omitempty"` - GradientDescentMaxIters []uint64 `protobuf:"varint,25,rep,packed,name=gradient_descent_max_iters,json=gradientDescentMaxIters,proto3" json:"gradient_descent_max_iters,omitempty"` - RegistrationFee []string `protobuf:"bytes,28,rep,name=registration_fee,json=registrationFee,proto3" json:"registration_fee,omitempty"` - DefaultPageLimit []uint64 `protobuf:"varint,29,rep,packed,name=default_page_limit,json=defaultPageLimit,proto3" json:"default_page_limit,omitempty"` - MaxPageLimit []uint64 `protobuf:"varint,30,rep,packed,name=max_page_limit,json=maxPageLimit,proto3" json:"max_page_limit,omitempty"` - MinEpochLengthRecordLimit []int64 `protobuf:"varint,31,rep,packed,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` - BlocksPerMonth []uint64 `protobuf:"varint,32,rep,packed,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` - PRewardInference []string `protobuf:"bytes,33,rep,name=p_reward_inference,json=pRewardInference,proto3" json:"p_reward_inference,omitempty"` - PRewardForecast []string `protobuf:"bytes,34,rep,name=p_reward_forecast,json=pRewardForecast,proto3" json:"p_reward_forecast,omitempty"` - PRewardReputer []string `protobuf:"bytes,35,rep,name=p_reward_reputer,json=pRewardReputer,proto3" json:"p_reward_reputer,omitempty"` - CRewardInference []string `protobuf:"bytes,36,rep,name=c_reward_inference,json=cRewardInference,proto3" json:"c_reward_inference,omitempty"` - CRewardForecast []string `protobuf:"bytes,37,rep,name=c_reward_forecast,json=cRewardForecast,proto3" json:"c_reward_forecast,omitempty"` - CNorm []string `protobuf:"bytes,38,rep,name=c_norm,json=cNorm,proto3" json:"c_norm,omitempty"` - EpsilonReputer []string `protobuf:"bytes,40,rep,name=epsilon_reputer,json=epsilonReputer,proto3" json:"epsilon_reputer,omitempty"` - HalfMaxProcessStakeRemovalsEndBlock []uint64 `protobuf:"varint,42,rep,packed,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` - DataSendingFee []string `protobuf:"bytes,43,rep,name=data_sending_fee,json=dataSendingFee,proto3" json:"data_sending_fee,omitempty"` - EpsilonSafeDiv []string `protobuf:"bytes,44,rep,name=epsilon_safe_div,json=epsilonSafeDiv,proto3" json:"epsilon_safe_div,omitempty"` - MaxElementsPerForecast []uint64 `protobuf:"varint,45,rep,packed,name=max_elements_per_forecast,json=maxElementsPerForecast,proto3" json:"max_elements_per_forecast,omitempty"` - MaxActiveTopicsPerBlock []uint64 `protobuf:"varint,46,rep,packed,name=max_active_topics_per_block,json=maxActiveTopicsPerBlock,proto3" json:"max_active_topics_per_block,omitempty"` - MaxStringLength []uint64 `protobuf:"varint,47,rep,packed,name=max_string_length,json=maxStringLength,proto3" json:"max_string_length,omitempty"` - InitialRegretQuantile []string `protobuf:"bytes,48,rep,name=initial_regret_quantile,json=initialRegretQuantile,proto3" json:"initial_regret_quantile,omitempty"` - PNormSafeDiv []string `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3" json:"p_norm_safe_div,omitempty"` - GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` - TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` - MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` - InferenceOutlierDetectionThreshold []string `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` - InferenceOutlierDetectionAlpha []string `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` + Version []string `protobuf:"bytes,1,rep,name=version,proto3" json:"version,omitempty"` + MaxSerializedMsgLength []int64 `protobuf:"varint,2,rep,packed,name=max_serialized_msg_length,json=maxSerializedMsgLength,proto3" json:"max_serialized_msg_length,omitempty"` + MinTopicWeight []string `protobuf:"bytes,3,rep,name=min_topic_weight,json=minTopicWeight,proto3" json:"min_topic_weight,omitempty"` + RequiredMinimumStake []string `protobuf:"bytes,5,rep,name=required_minimum_stake,json=requiredMinimumStake,proto3" json:"required_minimum_stake,omitempty"` + RemoveStakeDelayWindow []int64 `protobuf:"varint,6,rep,packed,name=remove_stake_delay_window,json=removeStakeDelayWindow,proto3" json:"remove_stake_delay_window,omitempty"` + MinEpochLength []int64 `protobuf:"varint,7,rep,packed,name=min_epoch_length,json=minEpochLength,proto3" json:"min_epoch_length,omitempty"` + BetaEntropy []string `protobuf:"bytes,8,rep,name=beta_entropy,json=betaEntropy,proto3" json:"beta_entropy,omitempty"` + LearningRate []string `protobuf:"bytes,9,rep,name=learning_rate,json=learningRate,proto3" json:"learning_rate,omitempty"` + MaxGradientThreshold []string `protobuf:"bytes,10,rep,name=max_gradient_threshold,json=maxGradientThreshold,proto3" json:"max_gradient_threshold,omitempty"` + MinStakeFraction []string `protobuf:"bytes,11,rep,name=min_stake_fraction,json=minStakeFraction,proto3" json:"min_stake_fraction,omitempty"` + MaxUnfulfilledWorkerRequests []uint64 `protobuf:"varint,13,rep,packed,name=max_unfulfilled_worker_requests,json=maxUnfulfilledWorkerRequests,proto3" json:"max_unfulfilled_worker_requests,omitempty"` + MaxUnfulfilledReputerRequests []uint64 `protobuf:"varint,14,rep,packed,name=max_unfulfilled_reputer_requests,json=maxUnfulfilledReputerRequests,proto3" json:"max_unfulfilled_reputer_requests,omitempty"` + TopicRewardStakeImportance []string `protobuf:"bytes,15,rep,name=topic_reward_stake_importance,json=topicRewardStakeImportance,proto3" json:"topic_reward_stake_importance,omitempty"` + TopicRewardFeeRevenueImportance []string `protobuf:"bytes,16,rep,name=topic_reward_fee_revenue_importance,json=topicRewardFeeRevenueImportance,proto3" json:"topic_reward_fee_revenue_importance,omitempty"` + TopicRewardAlpha []string `protobuf:"bytes,17,rep,name=topic_reward_alpha,json=topicRewardAlpha,proto3" json:"topic_reward_alpha,omitempty"` + TaskRewardAlpha []string `protobuf:"bytes,18,rep,name=task_reward_alpha,json=taskRewardAlpha,proto3" json:"task_reward_alpha,omitempty"` + ValidatorsVsAlloraPercentReward []string `protobuf:"bytes,19,rep,name=validators_vs_allora_percent_reward,json=validatorsVsAlloraPercentReward,proto3" json:"validators_vs_allora_percent_reward,omitempty"` + MaxSamplesToScaleScores []uint64 `protobuf:"varint,20,rep,packed,name=max_samples_to_scale_scores,json=maxSamplesToScaleScores,proto3" json:"max_samples_to_scale_scores,omitempty"` + MaxTopInferersToReward []uint64 `protobuf:"varint,21,rep,packed,name=max_top_inferers_to_reward,json=maxTopInferersToReward,proto3" json:"max_top_inferers_to_reward,omitempty"` + MaxTopForecastersToReward []uint64 `protobuf:"varint,22,rep,packed,name=max_top_forecasters_to_reward,json=maxTopForecastersToReward,proto3" json:"max_top_forecasters_to_reward,omitempty"` + MaxTopReputersToReward []uint64 `protobuf:"varint,23,rep,packed,name=max_top_reputers_to_reward,json=maxTopReputersToReward,proto3" json:"max_top_reputers_to_reward,omitempty"` + CreateTopicFee []string `protobuf:"bytes,24,rep,name=create_topic_fee,json=createTopicFee,proto3" json:"create_topic_fee,omitempty"` + GradientDescentMaxIters []uint64 `protobuf:"varint,25,rep,packed,name=gradient_descent_max_iters,json=gradientDescentMaxIters,proto3" json:"gradient_descent_max_iters,omitempty"` + RegistrationFee []string `protobuf:"bytes,28,rep,name=registration_fee,json=registrationFee,proto3" json:"registration_fee,omitempty"` + DefaultPageLimit []uint64 `protobuf:"varint,29,rep,packed,name=default_page_limit,json=defaultPageLimit,proto3" json:"default_page_limit,omitempty"` + MaxPageLimit []uint64 `protobuf:"varint,30,rep,packed,name=max_page_limit,json=maxPageLimit,proto3" json:"max_page_limit,omitempty"` + MinEpochLengthRecordLimit []int64 `protobuf:"varint,31,rep,packed,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` + BlocksPerMonth []uint64 `protobuf:"varint,32,rep,packed,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` + PRewardInference []string `protobuf:"bytes,33,rep,name=p_reward_inference,json=pRewardInference,proto3" json:"p_reward_inference,omitempty"` + PRewardForecast []string `protobuf:"bytes,34,rep,name=p_reward_forecast,json=pRewardForecast,proto3" json:"p_reward_forecast,omitempty"` + PRewardReputer []string `protobuf:"bytes,35,rep,name=p_reward_reputer,json=pRewardReputer,proto3" json:"p_reward_reputer,omitempty"` + CRewardInference []string `protobuf:"bytes,36,rep,name=c_reward_inference,json=cRewardInference,proto3" json:"c_reward_inference,omitempty"` + CRewardForecast []string `protobuf:"bytes,37,rep,name=c_reward_forecast,json=cRewardForecast,proto3" json:"c_reward_forecast,omitempty"` + CNorm []string `protobuf:"bytes,38,rep,name=c_norm,json=cNorm,proto3" json:"c_norm,omitempty"` + EpsilonReputer []string `protobuf:"bytes,40,rep,name=epsilon_reputer,json=epsilonReputer,proto3" json:"epsilon_reputer,omitempty"` + HalfMaxProcessStakeRemovalsEndBlock []uint64 `protobuf:"varint,42,rep,packed,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` + DataSendingFee []string `protobuf:"bytes,43,rep,name=data_sending_fee,json=dataSendingFee,proto3" json:"data_sending_fee,omitempty"` + EpsilonSafeDiv []string `protobuf:"bytes,44,rep,name=epsilon_safe_div,json=epsilonSafeDiv,proto3" json:"epsilon_safe_div,omitempty"` + MaxElementsPerForecast []uint64 `protobuf:"varint,45,rep,packed,name=max_elements_per_forecast,json=maxElementsPerForecast,proto3" json:"max_elements_per_forecast,omitempty"` + MaxActiveTopicsPerBlock []uint64 `protobuf:"varint,46,rep,packed,name=max_active_topics_per_block,json=maxActiveTopicsPerBlock,proto3" json:"max_active_topics_per_block,omitempty"` + MaxStringLength []uint64 `protobuf:"varint,47,rep,packed,name=max_string_length,json=maxStringLength,proto3" json:"max_string_length,omitempty"` + InitialRegretQuantile []string `protobuf:"bytes,48,rep,name=initial_regret_quantile,json=initialRegretQuantile,proto3" json:"initial_regret_quantile,omitempty"` + PNormSafeDiv []string `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3" json:"p_norm_safe_div,omitempty"` + GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` + TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` + MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` + InferenceOutlierDetectionThreshold []string `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` + InferenceOutlierDetectionAlpha []string `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` + NewParticipantScoreInitializationKappa []string `protobuf:"bytes,55,rep,name=new_participant_score_initialization_kappa,json=newParticipantScoreInitializationKappa,proto3" json:"new_participant_score_initialization_kappa,omitempty"` } func (x *OptionalParams) Reset() { @@ -33428,6 +33555,13 @@ func (x *OptionalParams) GetInferenceOutlierDetectionAlpha() []string { return nil } +func (x *OptionalParams) GetNewParticipantScoreInitializationKappa() []string { + if x != nil { + return x.NewParticipantScoreInitializationKappa + } + return nil +} + type UpdateParamsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -35668,7 +35802,7 @@ var file_emissions_v7_tx_proto_rawDesc = []byte{ 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, - 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x87, 0x21, 0x0a, 0x0e, 0x4f, 0x70, + 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x22, 0x0a, 0x0e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, @@ -35921,587 +36055,597 @@ var file_emissions_v7_tx_proto_rawDesc = []byte{ 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x1e, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, - 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, - 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, - 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, - 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, - 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, - 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, - 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, - 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, - 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb5, 0x09, - 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, - 0x0b, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, - 0x0a, 0x0c, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x72, 0x75, 0x74, - 0x68, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x74, 0x68, 0x4c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x70, - 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, - 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, - 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, - 0x2e, 0x44, 0x65, 0x63, 0x52, 0x05, 0x70, 0x4e, 0x6f, 0x72, 0x6d, 0x12, 0x5a, 0x0a, 0x0c, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x93, 0x01, 0x0a, 0x2a, 0x6e, 0x65, + 0x77, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6b, 0x61, 0x70, 0x70, 0x61, 0x18, 0x37, 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, + 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, + 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x26, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x61, 0x70, 0x70, 0x61, 0x4a, + 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, + 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, + 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, + 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, + 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, + 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x13, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x0b, + 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xb5, 0x09, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, + 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x5f, 0x74, 0x72, 0x75, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x74, 0x68, 0x4c, 0x61, + 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0b, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x51, - 0x0a, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x05, 0x70, 0x4e, 0x6f, 0x72, + 0x6d, 0x12, 0x5a, 0x0a, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, + 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, + 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, + 0x52, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4e, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, + 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x07, + 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x12, 0x6b, 0x0a, 0x15, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x13, 0x6d, 0x65, 0x72, 0x69, 0x74, + 0x53, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x6f, + 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, + 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, - 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, - 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x6b, 0x0a, 0x15, 0x6d, - 0x65, 0x72, 0x69, 0x74, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, - 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, - 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, - 0x44, 0x65, 0x63, 0x52, 0x13, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, - 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, - 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, - 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, - 0x65, 0x63, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x75, 0x0a, 0x1a, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, - 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, - 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, - 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, - 0x65, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, - 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x5f, - 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x5f, 0x61, 0x72, 0x67, 0x22, 0x33, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, - 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x22, 0x96, 0x01, 0x0a, 0x1b, 0x49, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x52, 0x12, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x1a, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, + 0x75, 0x0a, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x18, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x51, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, + 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, + 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, + 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, + 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, + 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, + 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, + 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x10, 0x69, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0b, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x22, 0x33, 0x0a, 0x16, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x22, 0x96, 0x01, 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x1a, 0x49, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x04, 0x08, - 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0b, 0x6c, 0x69, 0x62, 0x5f, 0x70, - 0x32, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x52, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x46, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 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, 0x7a, 0x0a, - 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x12, 0x4c, 0x0a, 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, + 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x49, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x0f, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, + 0x0b, 0x6c, 0x69, 0x62, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x52, 0x0d, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x46, 0x0a, 0x10, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 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, 0x7a, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, + 0x50, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 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, 0x9b, 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, + 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, + 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, + 0x12, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, - 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x50, 0x0a, 0x1a, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 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, 0x9b, 0x01, 0x0a, 0x0f, - 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, - 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, - 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x12, 0x0a, 0x10, 0x41, 0x64, 0x64, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, - 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x15, - 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, + 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x0a, 0x18, 0x43, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, + 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, + 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x1a, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, + 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, + 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, + 0x20, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, - 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, + 0x0a, 0x1a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, + 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1a, 0x41, 0x64, 0x64, + 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, + 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x0a, 0x21, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x22, 0x24, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, + 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x65, 0x0a, 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, - 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, - 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, - 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, - 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x20, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x1a, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x9c, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x13, - 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x26, 0x0a, 0x24, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x5c, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, + 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, + 0x1c, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, + 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x22, 0x1d, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x60, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x22, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x0a, 0x21, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x22, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, + 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x67, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, + 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x7c, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x22, 0x23, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, - 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x64, 0x0a, 0x22, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, - 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, + 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x23, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x26, 0x0a, 0x24, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 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, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1b, 0x41, 0x64, 0x64, - 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x54, 0x6f, - 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, - 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x62, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x26, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x26, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7c, 0x0a, - 0x20, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, - 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x41, - 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x81, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 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, 0x19, 0x0a, 0x08, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, - 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, - 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, - 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x32, 0xf0, 0x18, 0x0a, 0x0a, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x23, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x67, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x41, 0x64, - 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x12, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x11, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x26, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, + 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf0, 0x18, 0x0a, 0x0a, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x12, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x49, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x20, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x58, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x12, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x64, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x12, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2e, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4c, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1e, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x46, 0x75, 0x6e, 0x64, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x46, 0x75, 0x6e, 0x64, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, - 0x13, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, - 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x18, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x12, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x28, 0x2e, 0x65, 0x6d, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x79, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2d, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x49, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6d, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x6d, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, - 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x29, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, + 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, - 0x0a, 0x1b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x61, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, - 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, - 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, + 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x31, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, + 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, - 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, - 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x8b, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x12, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, - 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, - 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, - 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, - 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x54, 0x6f, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, + 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, - 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbd, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x42, 0x07, 0x54, 0x78, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, - 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, - 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbd, 0x01, 0x0a, + 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, + 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, + 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, + 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/x/emissions/keeper/keeper.go b/x/emissions/keeper/keeper.go index 06ef08b94..ec7c9eeb5 100644 --- a/x/emissions/keeper/keeper.go +++ b/x/emissions/keeper/keeper.go @@ -246,6 +246,11 @@ type Keeper struct { topicLastWorkerCommit collections.Map[TopicId, types.TimestampedActorNonce] topicLastReputerCommit collections.Map[TopicId, types.TimestampedActorNonce] + + // Initial EMA scores for inferers, forecasters, and reputers + initialInfererEmaScore collections.Map[TopicId, alloraMath.Dec] + initialForecasterEmaScore collections.Map[TopicId, alloraMath.Dec] + initialReputerEmaScore collections.Map[TopicId, alloraMath.Dec] } func NewKeeper( @@ -346,6 +351,9 @@ func NewKeeper( rewardCurrentBlockEmission: collections.NewItem(sb, types.RewardCurrentBlockEmissionKey, "reward_current_block_emission", sdk.IntValue), lastMedianInferences: collections.NewMap(sb, types.LastMedianInferencesKey, "last_median_inferences", collections.Uint64Key, alloraMath.DecValue), madInferences: collections.NewMap(sb, types.MadInferencesKey, "mad_inferences", collections.Uint64Key, alloraMath.DecValue), + initialInfererEmaScore: collections.NewMap(sb, types.InitialInfererEmaScoreKey, "initial_inferer_ema_score", collections.Uint64Key, alloraMath.DecValue), + initialForecasterEmaScore: collections.NewMap(sb, types.InitialForecasterEmaScoreKey, "initial_forecaster_ema_score", collections.Uint64Key, alloraMath.DecValue), + initialReputerEmaScore: collections.NewMap(sb, types.InitialReputerEmaScoreKey, "initial_reputer_ema_score", collections.Uint64Key, alloraMath.DecValue), } schema, err := sb.Build() @@ -1301,6 +1309,21 @@ func (k *Keeper) AppendInference( return k.InsertInference(ctx, topic.Id, *inference) } + // Check if the inferer is new + // If new, set his score to the topic initial EMA score + if previousEmaScore.BlockHeight == 0 { + initialEmaScore, err := k.GetTopicInitialInfererEmaScore(ctx, topic.Id) + if err != nil { + return errorsmod.Wrap(err, "error getting topic initial ema score") + } + return k.SetInfererScoreEma(ctx, topic.Id, inference.Inferer, types.Score{ + TopicId: topic.Id, + Address: inference.Inferer, + BlockHeight: nonceBlockHeight, + Score: initialEmaScore, + }) + } + // Else ... // Checks if the inferer's previous EMA score is greater than the lowest EMA score if previousEmaScore.Score.Gt(lowestEmaScore.Score) { @@ -1444,6 +1467,21 @@ func (k *Keeper) AppendForecast( return k.InsertForecast(ctx, topic.Id, *forecast) } + // Check if the forecaster is new + // If new, set his score to the topic initial EMA score + if previousEmaScore.BlockHeight == 0 { + initialEmaScore, err := k.GetTopicInitialForecasterEmaScore(ctx, topic.Id) + if err != nil { + return errorsmod.Wrap(err, "error getting topic initial ema score") + } + return k.SetForecasterScoreEma(ctx, topic.Id, forecast.Forecaster, types.Score{ + TopicId: topic.Id, + Address: forecast.Forecaster, + BlockHeight: nonceBlockHeight, + Score: initialEmaScore, + }) + } + if previousEmaScore.Score.Gt(lowestEmaScore.Score) { // Update EMA score for the lowest score forecaster, who is not the current forecaster err = k.CalcAndSaveForecasterScoreEmaWithLastSavedTopicQuantile( @@ -1637,6 +1675,21 @@ func (k *Keeper) AppendReputerLoss( return k.InsertReputerLoss(ctx, topic.Id, *reputerLoss) } + // Check if the reputer is new + // If new, set his score to the topic initial EMA score + if previousEmaScore.BlockHeight == 0 { + initialEmaScore, err := k.GetTopicInitialReputerEmaScore(ctx, topic.Id) + if err != nil { + return errorsmod.Wrap(err, "error getting topic initial ema score") + } + return k.SetReputerScoreEma(ctx, topic.Id, reputerLoss.ValueBundle.Reputer, types.Score{ + TopicId: topic.Id, + Address: reputerLoss.ValueBundle.Reputer, + BlockHeight: nonceBlockHeight, + Score: initialEmaScore, + }) + } + if previousEmaScore.Score.Gt(lowestEmaScore.Score) { // Update EMA score for the lowest score reputer, who is not the current reputer err = k.CalcAndSaveReputerScoreEmaWithLastSavedTopicQuantile( @@ -3177,10 +3230,8 @@ func (k *Keeper) SetInfererScoreEma(ctx context.Context, topicId TopicId, worker return k.infererScoreEmas.Set(ctx, key, score) } -// GetInfererScoreEma gets the EMA score for an inferer in a topic -// If no prior score exists, initializes it using (1+kappa)*lowestEmaScore-kappa*last25thPercentile -func (k *Keeper) GetInfererScoreEma(ctx context.Context, topicId TopicId, inferer ActorId) (types.Score, error) { - key := collections.Join(topicId, inferer) +func (k *Keeper) GetInfererScoreEma(ctx context.Context, topicId TopicId, worker ActorId) (types.Score, error) { + key := collections.Join(topicId, worker) score, err := k.infererScoreEmas.Get(ctx, key) if errors.Is(err, collections.ErrNotFound) { return types.Score{ @@ -4231,3 +4282,57 @@ func (k Keeper) SetRewardCurrentBlockEmission(ctx context.Context, emission cosm } return k.rewardCurrentBlockEmission.Set(ctx, emission) } + +func (k *Keeper) GetTopicInitialInfererEmaScore(ctx context.Context, topicId TopicId) (alloraMath.Dec, error) { + score, err := k.initialInfererEmaScore.Get(ctx, topicId) + if errors.Is(err, collections.ErrNotFound) { + return alloraMath.ZeroDec(), nil + } + return score, err +} + +func (k *Keeper) SetTopicInitialInfererEmaScore(ctx context.Context, topicId TopicId, score alloraMath.Dec) error { + if err := types.ValidateTopicId(topicId); err != nil { + return errorsmod.Wrap(err, "topic id validation failed") + } + if err := types.ValidateDec(score); err != nil { + return errorsmod.Wrap(err, "score validation failed") + } + return k.initialInfererEmaScore.Set(ctx, topicId, score) +} + +func (k *Keeper) GetTopicInitialForecasterEmaScore(ctx context.Context, topicId TopicId) (alloraMath.Dec, error) { + score, err := k.initialForecasterEmaScore.Get(ctx, topicId) + if errors.Is(err, collections.ErrNotFound) { + return alloraMath.ZeroDec(), nil + } + return score, err +} + +func (k *Keeper) SetTopicInitialForecasterEmaScore(ctx context.Context, topicId TopicId, score alloraMath.Dec) error { + if err := types.ValidateTopicId(topicId); err != nil { + return errorsmod.Wrap(err, "topic id validation failed") + } + if err := types.ValidateDec(score); err != nil { + return errorsmod.Wrap(err, "score validation failed") + } + return k.initialForecasterEmaScore.Set(ctx, topicId, score) +} + +func (k *Keeper) GetTopicInitialReputerEmaScore(ctx context.Context, topicId TopicId) (alloraMath.Dec, error) { + score, err := k.initialReputerEmaScore.Get(ctx, topicId) + if errors.Is(err, collections.ErrNotFound) { + return alloraMath.ZeroDec(), nil + } + return score, err +} + +func (k *Keeper) SetTopicInitialReputerEmaScore(ctx context.Context, topicId TopicId, score alloraMath.Dec) error { + if err := types.ValidateTopicId(topicId); err != nil { + return errorsmod.Wrap(err, "topic id validation failed") + } + if err := types.ValidateDec(score); err != nil { + return errorsmod.Wrap(err, "score validation failed") + } + return k.initialReputerEmaScore.Set(ctx, topicId, score) +} diff --git a/x/emissions/keeper/keeper_test.go b/x/emissions/keeper/keeper_test.go index 5f1a9c378..b44546fe1 100644 --- a/x/emissions/keeper/keeper_test.go +++ b/x/emissions/keeper/keeper_test.go @@ -5223,3 +5223,42 @@ func (s *KeeperTestSuite) TestFilterOutlierResistantInferences() { }) } } + +func (s *KeeperTestSuite) TestInitialEmaScores() { + ctx := s.ctx + k := s.emissionsKeeper + topicId := s.CreateOneTopic(10800) + + // Test Inferer Initial EMA Score + infererScore := alloraMath.MustNewDecFromString("100.0") + err := k.SetTopicInitialInfererEmaScore(ctx, topicId, infererScore) + s.Require().NoError(err) + + retrievedInfererScore, err := k.GetTopicInitialInfererEmaScore(ctx, topicId) + s.Require().NoError(err) + s.Require().True(infererScore.Equal(retrievedInfererScore)) + + // Test Forecaster Initial EMA Score + forecasterScore := alloraMath.MustNewDecFromString("90.0") + err = k.SetTopicInitialForecasterEmaScore(ctx, topicId, forecasterScore) + s.Require().NoError(err) + + retrievedForecasterScore, err := k.GetTopicInitialForecasterEmaScore(ctx, topicId) + s.Require().NoError(err) + s.Require().True(forecasterScore.Equal(retrievedForecasterScore)) + + // Test Reputer Initial EMA Score + reputerScore := alloraMath.MustNewDecFromString("95.0") + err = k.SetTopicInitialReputerEmaScore(ctx, topicId, reputerScore) + s.Require().NoError(err) + + retrievedReputerScore, err := k.GetTopicInitialReputerEmaScore(ctx, topicId) + s.Require().NoError(err) + s.Require().True(reputerScore.Equal(retrievedReputerScore)) + + // Test Non-existent Topic + nonExistentTopicId := topicId + 1 + zeroScore, err := k.GetTopicInitialInfererEmaScore(ctx, nonExistentTopicId) + s.Require().NoError(err) + s.Require().True(zeroScore.IsZero()) +} diff --git a/x/emissions/module/rewards/scores.go b/x/emissions/module/rewards/scores.go index bd3ab3e02..6ff49e633 100644 --- a/x/emissions/module/rewards/scores.go +++ b/x/emissions/module/rewards/scores.go @@ -1,6 +1,8 @@ package rewards import ( + "context" + "cosmossdk.io/errors" alloraMath "github.com/allora-network/allora-chain/math" "github.com/allora-network/allora-chain/x/emissions/keeper" @@ -122,6 +124,8 @@ func GenerateReputerScores( var instantScores []types.Score var emaScores []types.Score activeArr := make(map[string]bool) + var lowestEmaScore types.Score + first := true for i, reputer := range reputers { err := keeper.SetListeningCoefficient( ctx, @@ -149,6 +153,12 @@ func GenerateReputerScores( return []types.Score{}, errors.Wrapf(err, "Error calculating and saving reputer score ema") } + // Track lowest EMA score + if first || emaScore.Score.Lt(lowestEmaScore.Score) { + lowestEmaScore = emaScore + first = false + } + activeArr[reputer] = true instantScores = append(instantScores, instantScore) emaScores = append(emaScores, emaScore) @@ -164,6 +174,18 @@ func GenerateReputerScores( return nil, err } + // Calculate initial EMA score + initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, lowestEmaScore, topicInstantScoreQuantile) + if err != nil { + return nil, errors.Wrapf(err, "Error calculating initial EMA score") + } + + // Store the initial EMA score + err = keeper.SetTopicInitialReputerEmaScore(ctx, topicId, initialEmaScore) + if err != nil { + return nil, errors.Wrapf(err, "Error setting initial reputer EMA score") + } + types.EmitNewReputerScoresSetEvent(ctx, instantScores) types.EmitNewActorEMAScoresSetEvent(ctx, types.ActorType_ACTOR_TYPE_REPUTER, emaScores, activeArr) types.EmitNewListeningCoefficientsSetEvent(ctx, types.ActorType_ACTOR_TYPE_REPUTER, topicId, block, reputers, newCoefficients) @@ -203,6 +225,8 @@ func GenerateInferenceScores( return []types.Score{}, errors.Wrapf(err, "Error getting topic") } + var lowestEmaScore types.Score + first := true for _, oneOutLoss := range networkLosses.OneOutInfererValues { workerNewScore, err := oneOutLoss.Value.Sub(networkLosses.CombinedValue) if err != nil { @@ -224,6 +248,13 @@ func GenerateInferenceScores( if err != nil { return []types.Score{}, errors.Wrapf(err, "Error calculating and saving inferer score ema") } + + // Track lowest EMA score + if first || emaScore.Score.Lt(lowestEmaScore.Score) { + lowestEmaScore = emaScore + first = false + } + activeArr[oneOutLoss.Worker] = true instantScores = append(instantScores, instantScore) emaScores = append(emaScores, emaScore) @@ -239,6 +270,18 @@ func GenerateInferenceScores( return nil, errors.Wrapf(err, "Error setting previous topic quantile inferer score ema") } + // Calculate initial EMA score + initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, lowestEmaScore, topicInstantScoreQuantile) + if err != nil { + return nil, errors.Wrapf(err, "Error calculating initial EMA score") + } + + // Store the initial EMA score + err = keeper.SetTopicInitialInfererEmaScore(ctx, topicId, initialEmaScore) + if err != nil { + return nil, errors.Wrapf(err, "Error setting initial inferer EMA score") + } + types.EmitNewInfererScoresSetEvent(ctx, instantScores) types.EmitNewActorEMAScoresSetEvent(ctx, types.ActorType_ACTOR_TYPE_INFERER_UNSPECIFIED, emaScores, activeArr) return instantScores, nil @@ -295,6 +338,8 @@ func GenerateForecastScores( return []types.Score{}, errors.Wrapf(err, "Error getting fUniqueAgg") } + var lowestEmaScore types.Score + first := true for i, oneInNaiveLoss := range networkLosses.OneInForecasterValues { // Get worker score for one in loss workerScoreOneIn, err := networkLosses.NaiveValue.Sub(oneInNaiveLoss.Value) @@ -324,6 +369,12 @@ func GenerateForecastScores( return []types.Score{}, errors.Wrapf(err, "Error calculating and saving forecaster score ema") } + // Track lowest EMA score + if first || emaScore.Score.Lt(lowestEmaScore.Score) { + lowestEmaScore = emaScore + first = false + } + activeArr[oneInNaiveLoss.Worker] = true instantScores = append(instantScores, instantScore) emaScores = append(emaScores, emaScore) @@ -339,6 +390,18 @@ func GenerateForecastScores( return nil, err } + // Calculate initial EMA score + initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, lowestEmaScore, topicInstantScoreQuantile) + if err != nil { + return nil, errors.Wrapf(err, "Error calculating initial EMA score") + } + + // Store the initial EMA score + err = keeper.SetTopicInitialForecasterEmaScore(ctx, topicId, initialEmaScore) + if err != nil { + return nil, errors.Wrapf(err, "Error setting initial forecaster EMA score") + } + // Emit forecaster performance scores types.EmitNewForecasterScoresSetEvent(ctx, instantScores) types.EmitNewActorEMAScoresSetEvent(ctx, types.ActorType_ACTOR_TYPE_FORECASTER, emaScores, activeArr) @@ -483,3 +546,38 @@ func EnsureAllWorkersPresentWithheld( return values } + +// CalculateTopicInitialEmaScore calculates the initial EMA score for a topic +func CalculateTopicInitialEmaScore( + ctx context.Context, + keeper keeper.Keeper, + lowestScore types.Score, + last25thPercentile alloraMath.Dec, +) (alloraMath.Dec, error) { + // Get kappa parameter from module params + params, err := keeper.GetParams(ctx) + if err != nil { + return alloraMath.Dec{}, errors.Wrapf(err, "error getting module params") + } + kappa := params.NewParticipantScoreInitializationKappa + + // Calculate initial score using formula: (1+kappa)*lowestScore-kappa*last25thPercentile + onePlusKappa, err := alloraMath.NewDecFromInt64(1).Add(kappa) + if err != nil { + return alloraMath.Dec{}, errors.Wrapf(err, "error creating 1+kappa") + } + lowestScoreMul, err := lowestScore.Score.Mul(onePlusKappa) + if err != nil { + return alloraMath.Dec{}, errors.Wrapf(err, "error multiplying lowest score by 1+kappa") + } + last25thPercentileMul, err := last25thPercentile.Mul(kappa) + if err != nil { + return alloraMath.Dec{}, errors.Wrapf(err, "error multiplying last 25th percentile by kappa") + } + initialScore, err := lowestScoreMul.Sub(last25thPercentileMul) + if err != nil { + return alloraMath.Dec{}, errors.Wrapf(err, "error calculating initial score") + } + + return initialScore, nil +} diff --git a/x/emissions/proto/emissions/v7/params.proto b/x/emissions/proto/emissions/v7/params.proto index 52639ba53..d2058de90 100644 --- a/x/emissions/proto/emissions/v7/params.proto +++ b/x/emissions/proto/emissions/v7/params.proto @@ -165,4 +165,8 @@ message Params { (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; + string new_participant_score_initialization_kappa = 55 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; } diff --git a/x/emissions/proto/emissions/v7/tx.proto b/x/emissions/proto/emissions/v7/tx.proto index 7f974f878..33bb01326 100644 --- a/x/emissions/proto/emissions/v7/tx.proto +++ b/x/emissions/proto/emissions/v7/tx.proto @@ -217,6 +217,10 @@ message OptionalParams { (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; + repeated string new_participant_score_initialization_kappa = 55 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; } message UpdateParamsRequest { diff --git a/x/emissions/types/keys.go b/x/emissions/types/keys.go index 1b7f7c0ee..a630d2d70 100644 --- a/x/emissions/types/keys.go +++ b/x/emissions/types/keys.go @@ -105,4 +105,7 @@ var ( TopicReputerWhitelistEnabledKey = collections.NewPrefix(90) LastMedianInferencesKey = collections.NewPrefix(91) MadInferencesKey = collections.NewPrefix(92) + InitialInfererEmaScoreKey = collections.NewPrefix(93) + InitialForecasterEmaScoreKey = collections.NewPrefix(94) + InitialReputerEmaScoreKey = collections.NewPrefix(95) ) diff --git a/x/emissions/types/params.pb.go b/x/emissions/types/params.pb.go index eb860b993..e7c832134 100644 --- a/x/emissions/types/params.pb.go +++ b/x/emissions/types/params.pb.go @@ -94,8 +94,9 @@ type Params struct { TopicCreatorWhitelistEnabled bool `protobuf:"varint,51,opt,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` MinExperiencedWorkerRegrets uint64 `protobuf:"varint,52,opt,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` // for calculating the topic initial regret - InferenceOutlierDetectionThreshold github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` - InferenceOutlierDetectionAlpha github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` + InferenceOutlierDetectionThreshold github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` + InferenceOutlierDetectionAlpha github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` + NewParticipantScoreInitializationKappa github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,opt,name=new_participant_score_initialization_kappa,json=newParticipantScoreInitializationKappa,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"new_participant_score_initialization_kappa"` } func (m *Params) Reset() { *m = Params{} } @@ -292,103 +293,106 @@ func init() { func init() { proto.RegisterFile("emissions/v7/params.proto", fileDescriptor_8c07ddd983414a3f) } var fileDescriptor_8c07ddd983414a3f = []byte{ - // 1524 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4f, 0x73, 0x13, 0xc7, - 0x12, 0xb7, 0x1e, 0xc6, 0x98, 0xc1, 0xd8, 0xf2, 0x3e, 0x63, 0xd6, 0xff, 0x64, 0x81, 0xe1, 0x3d, - 0xe1, 0x07, 0x16, 0x2f, 0x24, 0x81, 0xfc, 0x39, 0x04, 0xb0, 0x4d, 0xd9, 0x85, 0x89, 0xb3, 0x76, - 0x70, 0x15, 0x49, 0x65, 0x32, 0xde, 0x6d, 0x49, 0x53, 0xde, 0x9d, 0x59, 0x66, 0x46, 0xb2, 0xcc, - 0x31, 0x55, 0xb9, 0xe4, 0x94, 0x8f, 0x91, 0x63, 0x0e, 0xf9, 0x10, 0x1c, 0xa9, 0x9c, 0x52, 0x39, - 0x50, 0x29, 0x38, 0xe4, 0x63, 0x24, 0x35, 0x7f, 0x76, 0x25, 0x61, 0x42, 0xa5, 0xd8, 0x5c, 0x5c, - 0xde, 0xed, 0xee, 0x5f, 0xf7, 0xfe, 0xba, 0xa7, 0xbb, 0x47, 0x68, 0x06, 0x12, 0x2a, 0x25, 0xe5, - 0x4c, 0xd6, 0x3b, 0x37, 0xeb, 0x29, 0x11, 0x24, 0x91, 0x2b, 0xa9, 0xe0, 0x8a, 0x7b, 0x63, 0xb9, - 0x68, 0xa5, 0x73, 0x73, 0x76, 0x92, 0x24, 0x94, 0xf1, 0xba, 0xf9, 0x6b, 0x15, 0x66, 0x67, 0x42, - 0x2e, 0x13, 0x2e, 0xb1, 0x79, 0xaa, 0xdb, 0x07, 0x27, 0x9a, 0x6a, 0xf2, 0x26, 0xb7, 0xef, 0xf5, - 0x7f, 0xf6, 0xed, 0xc5, 0x3f, 0xaa, 0x68, 0x64, 0xdb, 0xb8, 0xf0, 0x7c, 0x74, 0xaa, 0x03, 0x42, - 0xa3, 0xfb, 0xa5, 0x6a, 0xa9, 0x76, 0x3a, 0xc8, 0x1e, 0xbd, 0x0f, 0xd0, 0x4c, 0x42, 0xba, 0x58, - 0x82, 0xa0, 0x24, 0xa6, 0x4f, 0x20, 0xc2, 0x89, 0x6c, 0xe2, 0x18, 0x58, 0x53, 0xb5, 0xfc, 0x7f, - 0x55, 0x4b, 0xb5, 0x13, 0xc1, 0x74, 0x42, 0xba, 0x3b, 0xb9, 0x7c, 0x4b, 0x36, 0xef, 0x1b, 0xa9, - 0x47, 0x50, 0x39, 0xa1, 0x0c, 0x2b, 0x9e, 0xd2, 0x10, 0x1f, 0x02, 0x6d, 0xb6, 0x94, 0x7f, 0x42, - 0xa3, 0xdf, 0xb9, 0xf9, 0xf4, 0xf9, 0xe2, 0xd0, 0xaf, 0xcf, 0x17, 0xeb, 0x4d, 0xaa, 0x5a, 0xed, - 0xfd, 0x95, 0x90, 0x27, 0x75, 0x12, 0xc7, 0x5c, 0x90, 0x6b, 0x0c, 0xd4, 0x21, 0x17, 0x07, 0xd9, - 0x63, 0xd8, 0x22, 0x94, 0xd5, 0x13, 0xa2, 0x5a, 0x2b, 0xab, 0x10, 0x06, 0xe3, 0x09, 0x65, 0xbb, - 0x1a, 0x6f, 0xcf, 0xc0, 0x79, 0x0d, 0x34, 0x2d, 0xe0, 0x71, 0x9b, 0x0a, 0x1d, 0x17, 0x65, 0x34, - 0x69, 0x27, 0x58, 0x2a, 0x72, 0x00, 0xfe, 0x49, 0xe3, 0xe8, 0xba, 0x73, 0x74, 0xce, 0xd2, 0x21, - 0xa3, 0x83, 0x15, 0xca, 0x2d, 0xdc, 0x06, 0x53, 0x3f, 0xff, 0x74, 0x0d, 0x39, 0x9e, 0x36, 0x98, - 0xfa, 0xe1, 0xf7, 0x1f, 0x97, 0x4b, 0xc1, 0x54, 0x86, 0xb7, 0x65, 0xe1, 0x76, 0x34, 0x9a, 0x66, - 0x41, 0x40, 0xc2, 0x3b, 0x60, 0xd1, 0x71, 0x04, 0x31, 0x39, 0xc2, 0x87, 0x94, 0x45, 0xfc, 0xd0, - 0x1f, 0xb1, 0x2c, 0x58, 0x05, 0xa3, 0xbf, 0xaa, 0xc5, 0x7b, 0x46, 0xea, 0xd5, 0x2c, 0x0b, 0x90, - 0xf2, 0xb0, 0x95, 0xf1, 0x76, 0xca, 0x58, 0xe8, 0x8f, 0x59, 0xd3, 0xaf, 0x1d, 0x5f, 0x8f, 0xd0, - 0xd8, 0x3e, 0x28, 0x82, 0x81, 0x29, 0xc1, 0xd3, 0x23, 0x7f, 0xb4, 0x18, 0x57, 0x67, 0x34, 0xd8, - 0x9a, 0xc5, 0xf2, 0xbe, 0x44, 0x67, 0x63, 0x20, 0x82, 0x51, 0xd6, 0xc4, 0x82, 0x28, 0xf0, 0x4f, - 0x17, 0x03, 0x1f, 0xcb, 0xd0, 0x02, 0xa2, 0xc0, 0x4b, 0x90, 0xae, 0x01, 0xdc, 0x14, 0x24, 0xa2, - 0xc0, 0x14, 0x56, 0x2d, 0x01, 0xb2, 0xc5, 0xe3, 0xc8, 0x47, 0xc5, 0xdc, 0x4c, 0x25, 0xa4, 0x7b, - 0xcf, 0xa1, 0xee, 0x66, 0xa0, 0x1e, 0x20, 0x4f, 0x53, 0x6a, 0x53, 0xd1, 0x10, 0x24, 0x54, 0xba, - 0x70, 0xcf, 0x14, 0x73, 0xa5, 0xb3, 0x64, 0x92, 0xb7, 0xee, 0x00, 0xbd, 0x35, 0xb4, 0xa8, 0xbf, - 0xaa, 0xcd, 0x1a, 0xed, 0xb8, 0x41, 0xe3, 0x18, 0x22, 0xac, 0xed, 0x41, 0x60, 0x5d, 0x23, 0x20, - 0x95, 0xf4, 0xcf, 0x56, 0x4b, 0xb5, 0xe1, 0x60, 0x3e, 0x21, 0xdd, 0xcf, 0x7b, 0x5a, 0x7b, 0x46, - 0x29, 0x70, 0x3a, 0xde, 0x3d, 0x54, 0x7d, 0x15, 0x46, 0x40, 0xda, 0x56, 0xfd, 0x38, 0xe3, 0x06, - 0x67, 0x61, 0x10, 0x27, 0xb0, 0x5a, 0x39, 0xd0, 0x13, 0xb4, 0x60, 0xcf, 0x92, 0x80, 0x43, 0x22, - 0x22, 0xf7, 0xfd, 0x34, 0x49, 0xb9, 0x50, 0x84, 0x85, 0xe0, 0x4f, 0x14, 0x63, 0x60, 0xd6, 0xa0, - 0x07, 0x06, 0xdc, 0x30, 0xb1, 0x91, 0x43, 0x7b, 0xdf, 0x96, 0xd0, 0xd2, 0x80, 0xf3, 0x06, 0x00, - 0x16, 0xd0, 0x01, 0xd6, 0x1e, 0x08, 0xa1, 0x5c, 0x2c, 0x84, 0xc5, 0xbe, 0x10, 0xd6, 0x01, 0x02, - 0xeb, 0xa0, 0x2f, 0x0e, 0x40, 0xde, 0x40, 0x18, 0x24, 0x4e, 0x5b, 0xc4, 0x9f, 0x2c, 0x98, 0xfa, - 0x3e, 0xaf, 0xb7, 0x35, 0xa0, 0x17, 0xa2, 0x49, 0x45, 0xe4, 0xc1, 0xa0, 0x17, 0xaf, 0x98, 0x97, - 0x09, 0x8d, 0xd8, 0xef, 0x44, 0x73, 0xda, 0x21, 0x31, 0x8d, 0x88, 0xe2, 0x42, 0xe2, 0x8e, 0xc4, - 0xd6, 0x10, 0xa7, 0x20, 0x42, 0x7d, 0x8c, 0xac, 0x77, 0xff, 0xdf, 0x05, 0x39, 0xed, 0xf9, 0x78, - 0x28, 0x6f, 0x1b, 0x95, 0x6d, 0xeb, 0xc0, 0x06, 0xe3, 0x7d, 0x8c, 0xe6, 0x4c, 0x8b, 0x27, 0x49, - 0x1a, 0x83, 0xc4, 0x8a, 0x63, 0x19, 0x92, 0x18, 0xb0, 0x0c, 0xb9, 0x00, 0xe9, 0x4f, 0x99, 0xda, - 0x3c, 0xaf, 0x9b, 0xbc, 0xd5, 0xd8, 0xe5, 0x3b, 0x5a, 0xbe, 0x63, 0xc4, 0xde, 0x87, 0x68, 0x56, - 0x5b, 0x2b, 0x9e, 0x62, 0xca, 0x1a, 0x20, 0x40, 0x18, 0x08, 0x17, 0xfb, 0x39, 0x63, 0xac, 0xbb, - 0xc3, 0x2e, 0x4f, 0x37, 0x9c, 0x7c, 0x97, 0x3b, 0xcf, 0x9f, 0xa0, 0x85, 0xcc, 0xb6, 0xc1, 0x05, - 0x84, 0x44, 0xaa, 0x41, 0xf3, 0x69, 0x63, 0x3e, 0x63, 0xcd, 0xd7, 0x7b, 0x2a, 0x39, 0x42, 0x9f, - 0x77, 0x77, 0xa8, 0xfa, 0xcd, 0xcf, 0xf7, 0x7b, 0x77, 0xc7, 0xa9, 0x67, 0xfb, 0x08, 0x95, 0x43, - 0x01, 0x44, 0x81, 0x1b, 0x51, 0x0d, 0x00, 0xdf, 0x7f, 0xcb, 0xb1, 0x31, 0x6e, 0x91, 0xcc, 0x6c, - 0x5a, 0x07, 0xf0, 0x3e, 0x42, 0xb3, 0x79, 0x37, 0x8c, 0x40, 0x9a, 0x74, 0xea, 0x40, 0xa9, 0x8e, - 0xc0, 0x9f, 0xb1, 0x94, 0x66, 0x1a, 0xab, 0x56, 0x61, 0x8b, 0x74, 0x37, 0xb4, 0xd8, 0xfb, 0x02, - 0x95, 0x05, 0x34, 0xa9, 0x54, 0x82, 0xe8, 0x46, 0x64, 0x02, 0x9b, 0x7f, 0xcb, 0xc0, 0x26, 0xfa, - 0x91, 0x74, 0x64, 0x57, 0x91, 0x17, 0x41, 0x83, 0xb4, 0x63, 0x85, 0x53, 0xd2, 0x04, 0x1c, 0xd3, - 0x84, 0x2a, 0x7f, 0xc1, 0x44, 0x54, 0x76, 0x92, 0x6d, 0xd2, 0x84, 0xfb, 0xfa, 0xbd, 0x77, 0x09, - 0x8d, 0xeb, 0xb0, 0xfb, 0x34, 0x2b, 0x46, 0x73, 0x2c, 0x21, 0xdd, 0x9e, 0x96, 0xce, 0xe3, 0x2b, - 0x33, 0x0e, 0x0b, 0x08, 0xb9, 0x88, 0x9c, 0xd1, 0xa2, 0x19, 0x78, 0x33, 0x83, 0x03, 0x2f, 0x30, - 0x1a, 0x16, 0xa1, 0x86, 0xca, 0xfb, 0x31, 0x0f, 0x0f, 0xa4, 0x2e, 0x7e, 0x9c, 0x70, 0xa6, 0x5a, - 0x7e, 0xd5, 0x78, 0x1a, 0xb7, 0xef, 0xb7, 0x41, 0x6c, 0xe9, 0xb7, 0xba, 0x03, 0xa4, 0xd9, 0xb9, - 0xb4, 0x05, 0xa7, 0xfb, 0xce, 0x85, 0x82, 0x1d, 0x20, 0xb5, 0x35, 0xb1, 0x91, 0x01, 0xea, 0x0e, - 0x90, 0xbb, 0xc9, 0x6a, 0xd3, 0xbf, 0x58, 0xb0, 0x03, 0x38, 0x2f, 0x59, 0x21, 0xeb, 0x0d, 0x29, - 0x77, 0xe2, 0xca, 0xd7, 0x5f, 0x2a, 0xb8, 0x21, 0x39, 0x1f, 0xae, 0xda, 0x35, 0x5d, 0xe1, 0x71, - 0xba, 0x2e, 0x15, 0xa4, 0x2b, 0x7c, 0x0d, 0x5d, 0xe1, 0x31, 0xba, 0x2e, 0x17, 0xa4, 0x2b, 0x7c, - 0x85, 0xae, 0x07, 0x68, 0x24, 0xc4, 0x8c, 0x8b, 0xc4, 0xff, 0x4f, 0x31, 0xe4, 0x93, 0xe1, 0x03, - 0x2e, 0x12, 0xef, 0x6b, 0x34, 0x01, 0xa9, 0xa4, 0x31, 0x67, 0x39, 0xfb, 0xb5, 0x82, 0xec, 0x3b, - 0xbc, 0x8c, 0xfd, 0x87, 0xe8, 0x4a, 0x8b, 0xc4, 0x0d, 0x73, 0xf4, 0x53, 0xc1, 0x43, 0x90, 0xd2, - 0x8d, 0x6d, 0xb3, 0x2d, 0x92, 0x58, 0x62, 0x60, 0x11, 0x36, 0x25, 0xee, 0x2f, 0x9b, 0x7a, 0x5f, - 0xd2, 0x06, 0x5b, 0xa4, 0xbb, 0x6d, 0xd5, 0xcd, 0x20, 0x0e, 0x9c, 0xf2, 0x1a, 0x8b, 0xee, 0x68, - 0x55, 0x5d, 0x38, 0x59, 0xe4, 0x92, 0x34, 0x00, 0x47, 0xb4, 0xe3, 0xff, 0xef, 0x9f, 0x09, 0x7d, - 0x87, 0x34, 0x60, 0x95, 0x76, 0x74, 0x77, 0x8c, 0x88, 0x22, 0x58, 0x02, 0x8b, 0xf4, 0xd6, 0xa8, - 0x9b, 0xd0, 0xd5, 0xb7, 0xed, 0x8e, 0x1a, 0x69, 0xc7, 0x02, 0xe9, 0x1e, 0xe4, 0x2e, 0x15, 0x10, - 0x43, 0x02, 0x4c, 0xd9, 0x33, 0x9f, 0x57, 0xcd, 0xb5, 0xbc, 0x69, 0xaf, 0x39, 0xf9, 0x36, 0x88, - 0xbc, 0x06, 0xdc, 0xb0, 0xd2, 0x2b, 0x5a, 0xc7, 0x35, 0x6e, 0x6b, 0x6f, 0x39, 0x5c, 0xc9, 0x87, - 0xd5, 0x6d, 0xa3, 0x61, 0x1a, 0xb2, 0x06, 0xb0, 0xbc, 0x2d, 0xa3, 0x49, 0x33, 0xea, 0x94, 0xd0, - 0x9f, 0xe4, 0xb6, 0xf1, 0xba, 0xb1, 0x99, 0xd0, 0x03, 0xce, 0xbc, 0x77, 0xeb, 0x38, 0x47, 0xe7, - 0x29, 0xa3, 0x8a, 0x92, 0x18, 0x0b, 0x68, 0x0a, 0x50, 0xf8, 0x71, 0x9b, 0x30, 0x45, 0x63, 0xf0, - 0xaf, 0x17, 0xa3, 0xfa, 0x9c, 0xc3, 0x0d, 0x0c, 0xec, 0x67, 0x0e, 0xd5, 0xfb, 0x0a, 0x4d, 0xa4, - 0xa6, 0xbc, 0x7b, 0x39, 0xfd, 0x7f, 0xc1, 0x2d, 0x3d, 0xd5, 0x75, 0x9e, 0x65, 0xf4, 0x16, 0xf2, - 0x9b, 0x31, 0xdf, 0x27, 0x31, 0x3e, 0x6c, 0x51, 0x05, 0x31, 0x95, 0x0a, 0x03, 0x23, 0xfb, 0x31, - 0x44, 0xfe, 0x3b, 0xd5, 0x52, 0x6d, 0x34, 0x98, 0xb6, 0xf2, 0xbd, 0x4c, 0xbc, 0x66, 0xa5, 0x7a, - 0x13, 0xb6, 0x23, 0xd2, 0x4c, 0x39, 0x2e, 0x5e, 0x03, 0x70, 0xc3, 0x00, 0xcc, 0x1b, 0xb5, 0xbb, - 0x56, 0xeb, 0x18, 0xcc, 0x5d, 0x54, 0x31, 0x63, 0xa2, 0x9b, 0x82, 0xa0, 0xba, 0x6d, 0xf4, 0x2d, - 0xd4, 0x9a, 0x09, 0xe9, 0xbf, 0x6b, 0x52, 0x31, 0xa7, 0xe7, 0x44, 0x4f, 0x29, 0xdb, 0xa7, 0x8d, - 0x8a, 0xf7, 0x5d, 0x09, 0x5d, 0xce, 0x1b, 0x19, 0xe6, 0x6d, 0x15, 0x53, 0x10, 0x38, 0x02, 0x05, - 0x66, 0x6b, 0xef, 0xbb, 0x7b, 0xbc, 0x57, 0x8c, 0xbc, 0x8b, 0xb9, 0x97, 0x4f, 0xad, 0x93, 0xd5, - 0xcc, 0x47, 0xef, 0x26, 0xf2, 0x4d, 0x09, 0x5d, 0x78, 0x53, 0x30, 0x76, 0x71, 0x7c, 0xbf, 0x58, - 0x20, 0x95, 0xbf, 0x0c, 0xc4, 0xec, 0x91, 0x9b, 0xc3, 0xa3, 0xc3, 0xe5, 0x93, 0x9b, 0xc3, 0xa3, - 0xb3, 0xe5, 0xb9, 0xcd, 0xe1, 0xd1, 0xb9, 0xf2, 0xfc, 0xe6, 0xf0, 0xe8, 0x7f, 0xcb, 0xb5, 0xcd, - 0xe1, 0xd1, 0x2b, 0xe5, 0x65, 0x73, 0x85, 0x3a, 0x76, 0x4e, 0x0c, 0xc5, 0x18, 0x1a, 0x0d, 0xe8, - 0x3b, 0x47, 0xd9, 0x3e, 0x1f, 0x2c, 0x69, 0x13, 0x01, 0x4a, 0x50, 0xbb, 0x0e, 0xda, 0x1b, 0x09, - 0x66, 0x9c, 0x85, 0x20, 0x5d, 0xca, 0x5c, 0xaa, 0x07, 0xee, 0x01, 0x11, 0x84, 0xe4, 0xc8, 0x5c, - 0x2f, 0x83, 0x4b, 0x6f, 0x84, 0x70, 0xdd, 0xf6, 0x4e, 0xf0, 0xf4, 0x45, 0xa5, 0xf4, 0xec, 0x45, - 0xa5, 0xf4, 0xdb, 0x8b, 0x4a, 0xe9, 0xfb, 0x97, 0x95, 0xa1, 0x67, 0x2f, 0x2b, 0x43, 0xbf, 0xbc, - 0xac, 0x0c, 0x3d, 0xba, 0xf5, 0x37, 0x49, 0xea, 0xd6, 0x7b, 0xbf, 0x98, 0xa8, 0xa3, 0x14, 0xe4, - 0xfe, 0x88, 0xf9, 0x71, 0xe3, 0xc6, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0d, 0xfc, 0xd0, 0xf4, - 0x4b, 0x11, 0x00, 0x00, + // 1570 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4b, 0x6f, 0x14, 0xc7, + 0x16, 0xf6, 0x5c, 0x8c, 0x31, 0x85, 0xb1, 0xc7, 0x7d, 0x8d, 0x69, 0xbf, 0xc6, 0xc6, 0x06, 0xee, + 0xe0, 0x0b, 0x1e, 0x12, 0x92, 0x98, 0x3c, 0x16, 0x01, 0x6c, 0x23, 0x3b, 0x98, 0x38, 0x6d, 0x07, + 0x4b, 0x24, 0x4a, 0xa5, 0xdc, 0x7d, 0x66, 0xa6, 0xe4, 0xee, 0xaa, 0xa6, 0xaa, 0xe6, 0x61, 0x96, + 0x91, 0xb2, 0xc9, 0x2a, 0x52, 0x94, 0xff, 0x90, 0x65, 0x16, 0xf9, 0x11, 0x2c, 0x51, 0x56, 0x51, + 0x16, 0x28, 0x82, 0x45, 0xfe, 0x46, 0x54, 0x8f, 0x9e, 0x07, 0x26, 0x28, 0xa2, 0xb3, 0xb1, 0xdc, + 0x5d, 0xe7, 0x7c, 0xdf, 0xe9, 0xaf, 0x4e, 0x9d, 0x73, 0x6a, 0xd0, 0x14, 0x24, 0x54, 0x4a, 0xca, + 0x99, 0xac, 0x34, 0x57, 0x2b, 0x29, 0x11, 0x24, 0x91, 0x2b, 0xa9, 0xe0, 0x8a, 0x7b, 0x23, 0x9d, + 0xa5, 0x95, 0xe6, 0xea, 0xf4, 0x38, 0x49, 0x28, 0xe3, 0x15, 0xf3, 0xd7, 0x1a, 0x4c, 0x4f, 0x85, + 0x5c, 0x26, 0x5c, 0x62, 0xf3, 0x54, 0xb1, 0x0f, 0x6e, 0x69, 0xa2, 0xc6, 0x6b, 0xdc, 0xbe, 0xd7, + 0xff, 0xd9, 0xb7, 0x8b, 0x3f, 0x2e, 0xa2, 0xa1, 0x1d, 0x43, 0xe1, 0xf9, 0xe8, 0x54, 0x13, 0x84, + 0x46, 0xf7, 0x0b, 0x0b, 0x85, 0xf2, 0xe9, 0x20, 0x7b, 0xf4, 0xde, 0x47, 0x53, 0x09, 0x69, 0x63, + 0x09, 0x82, 0x92, 0x98, 0x3e, 0x86, 0x08, 0x27, 0xb2, 0x86, 0x63, 0x60, 0x35, 0x55, 0xf7, 0xff, + 0xb3, 0x50, 0x28, 0x9f, 0x08, 0x26, 0x13, 0xd2, 0xde, 0xed, 0xac, 0x6f, 0xcb, 0xda, 0x3d, 0xb3, + 0xea, 0x11, 0x54, 0x4c, 0x28, 0xc3, 0x8a, 0xa7, 0x34, 0xc4, 0x2d, 0xa0, 0xb5, 0xba, 0xf2, 0x4f, + 0x68, 0xf4, 0xdb, 0xab, 0x4f, 0x9e, 0xcd, 0x0f, 0xfc, 0xfe, 0x6c, 0xbe, 0x52, 0xa3, 0xaa, 0xde, + 0x38, 0x58, 0x09, 0x79, 0x52, 0x21, 0x71, 0xcc, 0x05, 0xb9, 0xc6, 0x40, 0xb5, 0xb8, 0x38, 0xcc, + 0x1e, 0xc3, 0x3a, 0xa1, 0xac, 0x92, 0x10, 0x55, 0x5f, 0x59, 0x83, 0x30, 0x18, 0x4d, 0x28, 0xdb, + 0xd3, 0x78, 0xfb, 0x06, 0xce, 0xab, 0xa2, 0x49, 0x01, 0x8f, 0x1a, 0x54, 0xe8, 0xb8, 0x28, 0xa3, + 0x49, 0x23, 0xc1, 0x52, 0x91, 0x43, 0xf0, 0x4f, 0x1a, 0xa2, 0xeb, 0x8e, 0xe8, 0x9c, 0x95, 0x43, + 0x46, 0x87, 0x2b, 0x94, 0x5b, 0xb8, 0x4d, 0xa6, 0x7e, 0xfd, 0xe5, 0x1a, 0x72, 0x3a, 0x6d, 0x32, + 0xf5, 0xd3, 0x9f, 0x3f, 0x2f, 0x17, 0x82, 0x89, 0x0c, 0x6f, 0xdb, 0xc2, 0xed, 0x6a, 0x34, 0xad, + 0x82, 0x80, 0x84, 0x37, 0xc1, 0xa2, 0xe3, 0x08, 0x62, 0x72, 0x84, 0x5b, 0x94, 0x45, 0xbc, 0xe5, + 0x0f, 0x59, 0x15, 0xac, 0x81, 0xb1, 0x5f, 0xd3, 0xcb, 0xfb, 0x66, 0xd5, 0x2b, 0x5b, 0x15, 0x20, + 0xe5, 0x61, 0x3d, 0xd3, 0xed, 0x94, 0xf1, 0xd0, 0x1f, 0xb3, 0xae, 0x5f, 0x3b, 0xbd, 0x1e, 0xa2, + 0x91, 0x03, 0x50, 0x04, 0x03, 0x53, 0x82, 0xa7, 0x47, 0xfe, 0x70, 0x3e, 0xad, 0xce, 0x68, 0xb0, + 0x75, 0x8b, 0xe5, 0x7d, 0x89, 0xce, 0xc6, 0x40, 0x04, 0xa3, 0xac, 0x86, 0x05, 0x51, 0xe0, 0x9f, + 0xce, 0x07, 0x3e, 0x92, 0xa1, 0x05, 0x44, 0x81, 0x97, 0x20, 0x9d, 0x03, 0xb8, 0x26, 0x48, 0x44, + 0x81, 0x29, 0xac, 0xea, 0x02, 0x64, 0x9d, 0xc7, 0x91, 0x8f, 0xf2, 0xd1, 0x4c, 0x24, 0xa4, 0x7d, + 0xd7, 0xa1, 0xee, 0x65, 0xa0, 0x1e, 0x20, 0x4f, 0x4b, 0x6a, 0xb7, 0xa2, 0x2a, 0x48, 0xa8, 0x74, + 0xe2, 0x9e, 0xc9, 0x47, 0xa5, 0x77, 0xc9, 0x6c, 0xde, 0x86, 0x03, 0xf4, 0xd6, 0xd1, 0xbc, 0xfe, + 0xaa, 0x06, 0xab, 0x36, 0xe2, 0x2a, 0x8d, 0x63, 0x88, 0xb0, 0xf6, 0x07, 0x81, 0x75, 0x8e, 0x80, + 0x54, 0xd2, 0x3f, 0xbb, 0x50, 0x28, 0x0f, 0x06, 0xb3, 0x09, 0x69, 0x7f, 0xde, 0xb5, 0xda, 0x37, + 0x46, 0x81, 0xb3, 0xf1, 0xee, 0xa2, 0x85, 0x97, 0x61, 0x04, 0xa4, 0x0d, 0xd5, 0x8b, 0x33, 0x6a, + 0x70, 0xe6, 0xfa, 0x71, 0x02, 0x6b, 0xd5, 0x01, 0x7a, 0x8c, 0xe6, 0xec, 0x59, 0x12, 0xd0, 0x22, + 0x22, 0x72, 0xdf, 0x4f, 0x93, 0x94, 0x0b, 0x45, 0x58, 0x08, 0xfe, 0x58, 0x3e, 0x05, 0xa6, 0x0d, + 0x7a, 0x60, 0xc0, 0x8d, 0x12, 0x9b, 0x1d, 0x68, 0xef, 0xdb, 0x02, 0x5a, 0xea, 0x23, 0xaf, 0x02, + 0x60, 0x01, 0x4d, 0x60, 0x8d, 0xbe, 0x10, 0x8a, 0xf9, 0x42, 0x98, 0xef, 0x09, 0x61, 0x03, 0x20, + 0xb0, 0x04, 0x3d, 0x71, 0x00, 0xf2, 0xfa, 0xc2, 0x20, 0x71, 0x5a, 0x27, 0xfe, 0x78, 0xce, 0xad, + 0xef, 0x61, 0xbd, 0xa5, 0x01, 0xbd, 0x10, 0x8d, 0x2b, 0x22, 0x0f, 0xfb, 0x59, 0xbc, 0x7c, 0x2c, + 0x63, 0x1a, 0xb1, 0x97, 0x44, 0x6b, 0xda, 0x24, 0x31, 0x8d, 0x88, 0xe2, 0x42, 0xe2, 0xa6, 0xc4, + 0xd6, 0x11, 0xa7, 0x20, 0x42, 0x7d, 0x8c, 0x2c, 0xbb, 0xff, 0xdf, 0x9c, 0x9a, 0x76, 0x39, 0x1e, + 0xc8, 0x5b, 0xc6, 0x64, 0xc7, 0x12, 0xd8, 0x60, 0xbc, 0x8f, 0xd0, 0x8c, 0x29, 0xf1, 0x24, 0x49, + 0x63, 0x90, 0x58, 0x71, 0x2c, 0x43, 0x12, 0x03, 0x96, 0x21, 0x17, 0x20, 0xfd, 0x09, 0x93, 0x9b, + 0xe7, 0x75, 0x91, 0xb7, 0x16, 0x7b, 0x7c, 0x57, 0xaf, 0xef, 0x9a, 0x65, 0xef, 0x03, 0x34, 0xad, + 0xbd, 0x15, 0x4f, 0x31, 0x65, 0x55, 0x10, 0x20, 0x0c, 0x84, 0x8b, 0xfd, 0x9c, 0x71, 0xd6, 0xd5, + 0x61, 0x8f, 0xa7, 0x9b, 0x6e, 0x7d, 0x8f, 0x3b, 0xe6, 0x8f, 0xd1, 0x5c, 0xe6, 0x5b, 0xe5, 0x02, + 0x42, 0x22, 0x55, 0xbf, 0xfb, 0xa4, 0x71, 0x9f, 0xb2, 0xee, 0x1b, 0x5d, 0x93, 0x0e, 0x42, 0x0f, + 0xbb, 0x3b, 0x54, 0xbd, 0xee, 0xe7, 0x7b, 0xd9, 0xdd, 0x71, 0xea, 0xfa, 0x3e, 0x44, 0xc5, 0x50, + 0x00, 0x51, 0xe0, 0x5a, 0x54, 0x15, 0xc0, 0xf7, 0xdf, 0xb0, 0x6d, 0x8c, 0x5a, 0x24, 0xd3, 0x9b, + 0x36, 0x00, 0xbc, 0x0f, 0xd1, 0x74, 0xa7, 0x1a, 0x46, 0x20, 0xcd, 0x76, 0xea, 0x40, 0xa9, 0x8e, + 0xc0, 0x9f, 0xb2, 0x92, 0x66, 0x16, 0x6b, 0xd6, 0x60, 0x9b, 0xb4, 0x37, 0xf5, 0xb2, 0xf7, 0x05, + 0x2a, 0x0a, 0xa8, 0x51, 0xa9, 0x04, 0xd1, 0x85, 0xc8, 0x04, 0x36, 0xfb, 0x86, 0x81, 0x8d, 0xf5, + 0x22, 0xe9, 0xc8, 0xae, 0x22, 0x2f, 0x82, 0x2a, 0x69, 0xc4, 0x0a, 0xa7, 0xa4, 0x06, 0x38, 0xa6, + 0x09, 0x55, 0xfe, 0x9c, 0x89, 0xa8, 0xe8, 0x56, 0x76, 0x48, 0x0d, 0xee, 0xe9, 0xf7, 0xde, 0x45, + 0x34, 0xaa, 0xc3, 0xee, 0xb1, 0x2c, 0x19, 0xcb, 0x91, 0x84, 0xb4, 0xbb, 0x56, 0x7a, 0x1f, 0x5f, + 0xea, 0x71, 0x58, 0x40, 0xc8, 0x45, 0xe4, 0x9c, 0xe6, 0x4d, 0xc3, 0x9b, 0xea, 0x6f, 0x78, 0x81, + 0xb1, 0xb0, 0x08, 0x65, 0x54, 0x3c, 0x88, 0x79, 0x78, 0x28, 0x75, 0xf2, 0xe3, 0x84, 0x33, 0x55, + 0xf7, 0x17, 0x0c, 0xd3, 0xa8, 0x7d, 0xbf, 0x03, 0x62, 0x5b, 0xbf, 0xd5, 0x15, 0x20, 0xcd, 0xce, + 0xa5, 0x4d, 0x38, 0x5d, 0x77, 0x2e, 0xe4, 0xac, 0x00, 0xa9, 0xcd, 0x89, 0xcd, 0x0c, 0x50, 0x57, + 0x80, 0x0e, 0x4d, 0x96, 0x9b, 0xfe, 0x62, 0xce, 0x0a, 0xe0, 0x58, 0xb2, 0x44, 0xd6, 0x13, 0x52, + 0x87, 0xc4, 0xa5, 0xaf, 0xbf, 0x94, 0x73, 0x42, 0x72, 0x1c, 0x2e, 0xdb, 0xb5, 0x5c, 0xe1, 0x71, + 0xb9, 0x2e, 0xe6, 0x94, 0x2b, 0x7c, 0x85, 0x5c, 0xe1, 0x31, 0xb9, 0x2e, 0xe5, 0x94, 0x2b, 0x7c, + 0x49, 0xae, 0xfb, 0x68, 0x28, 0xc4, 0x8c, 0x8b, 0xc4, 0xbf, 0x9c, 0x0f, 0xf9, 0x64, 0x78, 0x9f, + 0x8b, 0xc4, 0xfb, 0x1a, 0x8d, 0x41, 0x2a, 0x69, 0xcc, 0x59, 0x47, 0xfd, 0x72, 0x4e, 0xf5, 0x1d, + 0x5e, 0xa6, 0xfe, 0x03, 0x74, 0xa5, 0x4e, 0xe2, 0xaa, 0x39, 0xfa, 0xa9, 0xe0, 0x21, 0x48, 0xe9, + 0xda, 0xb6, 0x99, 0x16, 0x49, 0x2c, 0x31, 0xb0, 0x08, 0x9b, 0x14, 0xf7, 0x97, 0x4d, 0xbe, 0x2f, + 0x69, 0x87, 0x6d, 0xd2, 0xde, 0xb1, 0xe6, 0xa6, 0x11, 0x07, 0xce, 0x78, 0x9d, 0x45, 0xb7, 0xb5, + 0xa9, 0x4e, 0x9c, 0x2c, 0x72, 0x49, 0xaa, 0x80, 0x23, 0xda, 0xf4, 0xff, 0xff, 0xef, 0x84, 0xbe, + 0x4b, 0xaa, 0xb0, 0x46, 0x9b, 0xba, 0x3a, 0x46, 0x44, 0x11, 0x2c, 0x81, 0x45, 0x7a, 0x6a, 0xd4, + 0x45, 0xe8, 0xea, 0x9b, 0x56, 0x47, 0x8d, 0xb4, 0x6b, 0x81, 0x74, 0x0d, 0x72, 0x97, 0x0a, 0x88, + 0x21, 0x01, 0xa6, 0xec, 0x99, 0xef, 0x64, 0xcd, 0xb5, 0x4e, 0xd1, 0x5e, 0x77, 0xeb, 0x3b, 0x20, + 0x3a, 0x39, 0xe0, 0x9a, 0x95, 0x1e, 0xd1, 0x9a, 0xae, 0x70, 0x5b, 0x7f, 0xab, 0xe1, 0x4a, 0xa7, + 0x59, 0xdd, 0x32, 0x16, 0xa6, 0x20, 0x6b, 0x00, 0xab, 0xdb, 0x32, 0x1a, 0x37, 0xad, 0x4e, 0x09, + 0xfd, 0x49, 0x6e, 0x1a, 0xaf, 0x18, 0x9f, 0x31, 0xdd, 0xe0, 0xcc, 0x7b, 0x37, 0x8e, 0x73, 0x74, + 0x9e, 0x32, 0xaa, 0x28, 0x89, 0xb1, 0x80, 0x9a, 0x00, 0x85, 0x1f, 0x35, 0x08, 0x53, 0x34, 0x06, + 0xff, 0x7a, 0x3e, 0xa9, 0xcf, 0x39, 0xdc, 0xc0, 0xc0, 0x7e, 0xe6, 0x50, 0xbd, 0xaf, 0xd0, 0x58, + 0x6a, 0xd2, 0xbb, 0xbb, 0xa7, 0x6f, 0xe5, 0x9c, 0xd2, 0x53, 0x9d, 0xe7, 0xd9, 0x8e, 0xde, 0x44, + 0x7e, 0x2d, 0xe6, 0x07, 0x24, 0xc6, 0xad, 0x3a, 0x55, 0x10, 0x53, 0xa9, 0x30, 0x30, 0x72, 0x10, + 0x43, 0xe4, 0xbf, 0xbd, 0x50, 0x28, 0x0f, 0x07, 0x93, 0x76, 0x7d, 0x3f, 0x5b, 0x5e, 0xb7, 0xab, + 0x7a, 0x12, 0xb6, 0x2d, 0xd2, 0x74, 0x39, 0x2e, 0x5e, 0x01, 0x70, 0xc3, 0x00, 0xcc, 0x1a, 0xb3, + 0x3b, 0xd6, 0xea, 0x18, 0xcc, 0x1d, 0x54, 0x32, 0x6d, 0xa2, 0x9d, 0x82, 0xa0, 0xba, 0x6c, 0xf4, + 0x0c, 0xd4, 0x5a, 0x09, 0xe9, 0xbf, 0x63, 0xb6, 0x62, 0x46, 0xf7, 0x89, 0xae, 0x51, 0x36, 0x4f, + 0x1b, 0x13, 0xef, 0xbb, 0x02, 0xba, 0xd4, 0x29, 0x64, 0x98, 0x37, 0x54, 0x4c, 0x41, 0xe0, 0x08, + 0x14, 0x98, 0xa9, 0xbd, 0xe7, 0xee, 0xf1, 0x6e, 0x3e, 0xf1, 0x16, 0x3b, 0x2c, 0x9f, 0x5a, 0x92, + 0xb5, 0x8c, 0xa3, 0x7b, 0x13, 0xf9, 0xa6, 0x80, 0x2e, 0xbc, 0x2e, 0x18, 0x3b, 0x38, 0xbe, 0x97, + 0x2f, 0x90, 0xd2, 0xdf, 0x06, 0x62, 0xe7, 0xc8, 0x1f, 0x0a, 0x68, 0x99, 0x41, 0x0b, 0xa7, 0x44, + 0x28, 0x1a, 0xd2, 0x94, 0x30, 0x65, 0x67, 0x37, 0xec, 0xf2, 0x8c, 0x3e, 0xb6, 0x73, 0xc4, 0x21, + 0x49, 0x53, 0xe2, 0xaf, 0xe6, 0x8b, 0xe6, 0x32, 0x83, 0xd6, 0x4e, 0x97, 0xc9, 0x4c, 0x81, 0x9b, + 0x7d, 0x3c, 0x9f, 0x68, 0x9a, 0xad, 0xc1, 0xe1, 0xc1, 0xe2, 0xc9, 0xad, 0xc1, 0xe1, 0xe9, 0xe2, + 0xcc, 0xd6, 0xe0, 0xf0, 0x4c, 0x71, 0x76, 0x6b, 0x70, 0xf8, 0x7f, 0xc5, 0xf2, 0xd6, 0xe0, 0xf0, + 0x95, 0xe2, 0xb2, 0xb9, 0xd8, 0x1d, 0x3b, 0xbd, 0x66, 0xe3, 0x31, 0x54, 0xab, 0xd0, 0x73, 0xba, + 0xb3, 0x5b, 0x46, 0xb0, 0xa4, 0x5d, 0x04, 0x28, 0x41, 0xed, 0x90, 0x6a, 0xef, 0x49, 0x98, 0x71, + 0x16, 0x82, 0x74, 0x89, 0xe4, 0x12, 0xb0, 0xef, 0x76, 0x12, 0x41, 0x48, 0x8e, 0xcc, 0xa5, 0x37, + 0xb8, 0xf8, 0x5a, 0x08, 0xd7, 0x03, 0x6e, 0x07, 0x4f, 0x9e, 0x97, 0x0a, 0x4f, 0x9f, 0x97, 0x0a, + 0x7f, 0x3c, 0x2f, 0x15, 0xbe, 0x7f, 0x51, 0x1a, 0x78, 0xfa, 0xa2, 0x34, 0xf0, 0xdb, 0x8b, 0xd2, + 0xc0, 0xc3, 0x9b, 0xff, 0x50, 0xac, 0x76, 0xa5, 0xfb, 0x3b, 0x8e, 0x3a, 0x4a, 0x41, 0x1e, 0x0c, + 0x99, 0x9f, 0x5c, 0x6e, 0xfc, 0x15, 0x00, 0x00, 0xff, 0xff, 0xdc, 0xd9, 0x52, 0x6a, 0xe1, 0x11, + 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -411,6 +415,18 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size := m.NewParticipantScoreInitializationKappa.Size() + i -= size + if _, err := m.NewParticipantScoreInitializationKappa.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xba { size := m.InferenceOutlierDetectionAlpha.Size() i -= size @@ -1002,6 +1018,8 @@ func (m *Params) Size() (n int) { n += 2 + l + sovParams(uint64(l)) l = m.InferenceOutlierDetectionAlpha.Size() n += 2 + l + sovParams(uint64(l)) + l = m.NewParticipantScoreInitializationKappa.Size() + n += 2 + l + sovParams(uint64(l)) return n } @@ -2357,6 +2375,40 @@ func (m *Params) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 55: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewParticipantScoreInitializationKappa", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.NewParticipantScoreInitializationKappa.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipParams(dAtA[iNdEx:]) diff --git a/x/emissions/types/tx.pb.go b/x/emissions/types/tx.pb.go index 1bd5ebbdd..c4e6c3db6 100644 --- a/x/emissions/types/tx.pb.go +++ b/x/emissions/types/tx.pb.go @@ -40,54 +40,55 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // optional field and if the repeated field is empty, it is considered to be the // same as if the field was not set type OptionalParams struct { - Version []string `protobuf:"bytes,1,rep,name=version,proto3" json:"version,omitempty"` - MaxSerializedMsgLength []int64 `protobuf:"varint,2,rep,packed,name=max_serialized_msg_length,json=maxSerializedMsgLength,proto3" json:"max_serialized_msg_length,omitempty"` - MinTopicWeight []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,3,rep,name=min_topic_weight,json=minTopicWeight,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"min_topic_weight"` - RequiredMinimumStake []cosmossdk_io_math.Int `protobuf:"bytes,5,rep,name=required_minimum_stake,json=requiredMinimumStake,proto3,customtype=cosmossdk.io/math.Int" json:"required_minimum_stake"` - RemoveStakeDelayWindow []int64 `protobuf:"varint,6,rep,packed,name=remove_stake_delay_window,json=removeStakeDelayWindow,proto3" json:"remove_stake_delay_window,omitempty"` - MinEpochLength []int64 `protobuf:"varint,7,rep,packed,name=min_epoch_length,json=minEpochLength,proto3" json:"min_epoch_length,omitempty"` - BetaEntropy []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,8,rep,name=beta_entropy,json=betaEntropy,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"beta_entropy"` - LearningRate []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,9,rep,name=learning_rate,json=learningRate,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"learning_rate"` - MaxGradientThreshold []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,10,rep,name=max_gradient_threshold,json=maxGradientThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"max_gradient_threshold"` - MinStakeFraction []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,11,rep,name=min_stake_fraction,json=minStakeFraction,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"min_stake_fraction"` - MaxUnfulfilledWorkerRequests []uint64 `protobuf:"varint,13,rep,packed,name=max_unfulfilled_worker_requests,json=maxUnfulfilledWorkerRequests,proto3" json:"max_unfulfilled_worker_requests,omitempty"` - MaxUnfulfilledReputerRequests []uint64 `protobuf:"varint,14,rep,packed,name=max_unfulfilled_reputer_requests,json=maxUnfulfilledReputerRequests,proto3" json:"max_unfulfilled_reputer_requests,omitempty"` - TopicRewardStakeImportance []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,15,rep,name=topic_reward_stake_importance,json=topicRewardStakeImportance,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_stake_importance"` - TopicRewardFeeRevenueImportance []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,16,rep,name=topic_reward_fee_revenue_importance,json=topicRewardFeeRevenueImportance,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_fee_revenue_importance"` - TopicRewardAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,17,rep,name=topic_reward_alpha,json=topicRewardAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_alpha"` - TaskRewardAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,18,rep,name=task_reward_alpha,json=taskRewardAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"task_reward_alpha"` - ValidatorsVsAlloraPercentReward []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,19,rep,name=validators_vs_allora_percent_reward,json=validatorsVsAlloraPercentReward,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"validators_vs_allora_percent_reward"` - MaxSamplesToScaleScores []uint64 `protobuf:"varint,20,rep,packed,name=max_samples_to_scale_scores,json=maxSamplesToScaleScores,proto3" json:"max_samples_to_scale_scores,omitempty"` - MaxTopInferersToReward []uint64 `protobuf:"varint,21,rep,packed,name=max_top_inferers_to_reward,json=maxTopInferersToReward,proto3" json:"max_top_inferers_to_reward,omitempty"` - MaxTopForecastersToReward []uint64 `protobuf:"varint,22,rep,packed,name=max_top_forecasters_to_reward,json=maxTopForecastersToReward,proto3" json:"max_top_forecasters_to_reward,omitempty"` - MaxTopReputersToReward []uint64 `protobuf:"varint,23,rep,packed,name=max_top_reputers_to_reward,json=maxTopReputersToReward,proto3" json:"max_top_reputers_to_reward,omitempty"` - CreateTopicFee []cosmossdk_io_math.Int `protobuf:"bytes,24,rep,name=create_topic_fee,json=createTopicFee,proto3,customtype=cosmossdk.io/math.Int" json:"create_topic_fee"` - GradientDescentMaxIters []uint64 `protobuf:"varint,25,rep,packed,name=gradient_descent_max_iters,json=gradientDescentMaxIters,proto3" json:"gradient_descent_max_iters,omitempty"` - RegistrationFee []cosmossdk_io_math.Int `protobuf:"bytes,28,rep,name=registration_fee,json=registrationFee,proto3,customtype=cosmossdk.io/math.Int" json:"registration_fee"` - DefaultPageLimit []uint64 `protobuf:"varint,29,rep,packed,name=default_page_limit,json=defaultPageLimit,proto3" json:"default_page_limit,omitempty"` - MaxPageLimit []uint64 `protobuf:"varint,30,rep,packed,name=max_page_limit,json=maxPageLimit,proto3" json:"max_page_limit,omitempty"` - MinEpochLengthRecordLimit []int64 `protobuf:"varint,31,rep,packed,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` - BlocksPerMonth []uint64 `protobuf:"varint,32,rep,packed,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` - PRewardInference []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,33,rep,name=p_reward_inference,json=pRewardInference,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_inference"` - PRewardForecast []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,34,rep,name=p_reward_forecast,json=pRewardForecast,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_forecast"` - PRewardReputer []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,35,rep,name=p_reward_reputer,json=pRewardReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_reputer"` - CRewardInference []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,36,rep,name=c_reward_inference,json=cRewardInference,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_reward_inference"` - CRewardForecast []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,37,rep,name=c_reward_forecast,json=cRewardForecast,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_reward_forecast"` - CNorm []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,38,rep,name=c_norm,json=cNorm,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_norm"` - EpsilonReputer []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,40,rep,name=epsilon_reputer,json=epsilonReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_reputer"` - HalfMaxProcessStakeRemovalsEndBlock []uint64 `protobuf:"varint,42,rep,packed,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` - DataSendingFee []cosmossdk_io_math.Int `protobuf:"bytes,43,rep,name=data_sending_fee,json=dataSendingFee,proto3,customtype=cosmossdk.io/math.Int" json:"data_sending_fee"` - EpsilonSafeDiv []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,44,rep,name=epsilon_safe_div,json=epsilonSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_safe_div"` - MaxElementsPerForecast []uint64 `protobuf:"varint,45,rep,packed,name=max_elements_per_forecast,json=maxElementsPerForecast,proto3" json:"max_elements_per_forecast,omitempty"` - MaxActiveTopicsPerBlock []uint64 `protobuf:"varint,46,rep,packed,name=max_active_topics_per_block,json=maxActiveTopicsPerBlock,proto3" json:"max_active_topics_per_block,omitempty"` - MaxStringLength []uint64 `protobuf:"varint,47,rep,packed,name=max_string_length,json=maxStringLength,proto3" json:"max_string_length,omitempty"` - InitialRegretQuantile []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,48,rep,name=initial_regret_quantile,json=initialRegretQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"initial_regret_quantile"` - PNormSafeDiv []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_norm_safe_div"` - GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` - TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` - MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` - InferenceOutlierDetectionThreshold []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` - InferenceOutlierDetectionAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` + Version []string `protobuf:"bytes,1,rep,name=version,proto3" json:"version,omitempty"` + MaxSerializedMsgLength []int64 `protobuf:"varint,2,rep,packed,name=max_serialized_msg_length,json=maxSerializedMsgLength,proto3" json:"max_serialized_msg_length,omitempty"` + MinTopicWeight []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,3,rep,name=min_topic_weight,json=minTopicWeight,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"min_topic_weight"` + RequiredMinimumStake []cosmossdk_io_math.Int `protobuf:"bytes,5,rep,name=required_minimum_stake,json=requiredMinimumStake,proto3,customtype=cosmossdk.io/math.Int" json:"required_minimum_stake"` + RemoveStakeDelayWindow []int64 `protobuf:"varint,6,rep,packed,name=remove_stake_delay_window,json=removeStakeDelayWindow,proto3" json:"remove_stake_delay_window,omitempty"` + MinEpochLength []int64 `protobuf:"varint,7,rep,packed,name=min_epoch_length,json=minEpochLength,proto3" json:"min_epoch_length,omitempty"` + BetaEntropy []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,8,rep,name=beta_entropy,json=betaEntropy,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"beta_entropy"` + LearningRate []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,9,rep,name=learning_rate,json=learningRate,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"learning_rate"` + MaxGradientThreshold []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,10,rep,name=max_gradient_threshold,json=maxGradientThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"max_gradient_threshold"` + MinStakeFraction []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,11,rep,name=min_stake_fraction,json=minStakeFraction,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"min_stake_fraction"` + MaxUnfulfilledWorkerRequests []uint64 `protobuf:"varint,13,rep,packed,name=max_unfulfilled_worker_requests,json=maxUnfulfilledWorkerRequests,proto3" json:"max_unfulfilled_worker_requests,omitempty"` + MaxUnfulfilledReputerRequests []uint64 `protobuf:"varint,14,rep,packed,name=max_unfulfilled_reputer_requests,json=maxUnfulfilledReputerRequests,proto3" json:"max_unfulfilled_reputer_requests,omitempty"` + TopicRewardStakeImportance []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,15,rep,name=topic_reward_stake_importance,json=topicRewardStakeImportance,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_stake_importance"` + TopicRewardFeeRevenueImportance []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,16,rep,name=topic_reward_fee_revenue_importance,json=topicRewardFeeRevenueImportance,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_fee_revenue_importance"` + TopicRewardAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,17,rep,name=topic_reward_alpha,json=topicRewardAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_alpha"` + TaskRewardAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,18,rep,name=task_reward_alpha,json=taskRewardAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"task_reward_alpha"` + ValidatorsVsAlloraPercentReward []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,19,rep,name=validators_vs_allora_percent_reward,json=validatorsVsAlloraPercentReward,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"validators_vs_allora_percent_reward"` + MaxSamplesToScaleScores []uint64 `protobuf:"varint,20,rep,packed,name=max_samples_to_scale_scores,json=maxSamplesToScaleScores,proto3" json:"max_samples_to_scale_scores,omitempty"` + MaxTopInferersToReward []uint64 `protobuf:"varint,21,rep,packed,name=max_top_inferers_to_reward,json=maxTopInferersToReward,proto3" json:"max_top_inferers_to_reward,omitempty"` + MaxTopForecastersToReward []uint64 `protobuf:"varint,22,rep,packed,name=max_top_forecasters_to_reward,json=maxTopForecastersToReward,proto3" json:"max_top_forecasters_to_reward,omitempty"` + MaxTopReputersToReward []uint64 `protobuf:"varint,23,rep,packed,name=max_top_reputers_to_reward,json=maxTopReputersToReward,proto3" json:"max_top_reputers_to_reward,omitempty"` + CreateTopicFee []cosmossdk_io_math.Int `protobuf:"bytes,24,rep,name=create_topic_fee,json=createTopicFee,proto3,customtype=cosmossdk.io/math.Int" json:"create_topic_fee"` + GradientDescentMaxIters []uint64 `protobuf:"varint,25,rep,packed,name=gradient_descent_max_iters,json=gradientDescentMaxIters,proto3" json:"gradient_descent_max_iters,omitempty"` + RegistrationFee []cosmossdk_io_math.Int `protobuf:"bytes,28,rep,name=registration_fee,json=registrationFee,proto3,customtype=cosmossdk.io/math.Int" json:"registration_fee"` + DefaultPageLimit []uint64 `protobuf:"varint,29,rep,packed,name=default_page_limit,json=defaultPageLimit,proto3" json:"default_page_limit,omitempty"` + MaxPageLimit []uint64 `protobuf:"varint,30,rep,packed,name=max_page_limit,json=maxPageLimit,proto3" json:"max_page_limit,omitempty"` + MinEpochLengthRecordLimit []int64 `protobuf:"varint,31,rep,packed,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` + BlocksPerMonth []uint64 `protobuf:"varint,32,rep,packed,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` + PRewardInference []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,33,rep,name=p_reward_inference,json=pRewardInference,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_inference"` + PRewardForecast []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,34,rep,name=p_reward_forecast,json=pRewardForecast,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_forecast"` + PRewardReputer []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,35,rep,name=p_reward_reputer,json=pRewardReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_reputer"` + CRewardInference []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,36,rep,name=c_reward_inference,json=cRewardInference,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_reward_inference"` + CRewardForecast []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,37,rep,name=c_reward_forecast,json=cRewardForecast,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_reward_forecast"` + CNorm []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,38,rep,name=c_norm,json=cNorm,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_norm"` + EpsilonReputer []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,40,rep,name=epsilon_reputer,json=epsilonReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_reputer"` + HalfMaxProcessStakeRemovalsEndBlock []uint64 `protobuf:"varint,42,rep,packed,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` + DataSendingFee []cosmossdk_io_math.Int `protobuf:"bytes,43,rep,name=data_sending_fee,json=dataSendingFee,proto3,customtype=cosmossdk.io/math.Int" json:"data_sending_fee"` + EpsilonSafeDiv []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,44,rep,name=epsilon_safe_div,json=epsilonSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_safe_div"` + MaxElementsPerForecast []uint64 `protobuf:"varint,45,rep,packed,name=max_elements_per_forecast,json=maxElementsPerForecast,proto3" json:"max_elements_per_forecast,omitempty"` + MaxActiveTopicsPerBlock []uint64 `protobuf:"varint,46,rep,packed,name=max_active_topics_per_block,json=maxActiveTopicsPerBlock,proto3" json:"max_active_topics_per_block,omitempty"` + MaxStringLength []uint64 `protobuf:"varint,47,rep,packed,name=max_string_length,json=maxStringLength,proto3" json:"max_string_length,omitempty"` + InitialRegretQuantile []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,48,rep,name=initial_regret_quantile,json=initialRegretQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"initial_regret_quantile"` + PNormSafeDiv []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_norm_safe_div"` + GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` + TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` + MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` + InferenceOutlierDetectionThreshold []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` + InferenceOutlierDetectionAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` + NewParticipantScoreInitializationKappa []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,rep,name=new_participant_score_initialization_kappa,json=newParticipantScoreInitializationKappa,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"new_participant_score_initialization_kappa"` } func (m *OptionalParams) Reset() { *m = OptionalParams{} } @@ -3021,207 +3022,210 @@ func init() { func init() { proto.RegisterFile("emissions/v7/tx.proto", fileDescriptor_25da82f6ba30300b) } var fileDescriptor_25da82f6ba30300b = []byte{ - // 3187 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0xcb, 0x6f, 0x1c, 0xc7, - 0xd1, 0xd7, 0x88, 0x2b, 0x72, 0x59, 0xa4, 0xc8, 0x55, 0x8b, 0xa4, 0x86, 0xcb, 0xf7, 0x52, 0x8f, - 0x95, 0x3e, 0x8b, 0x2b, 0x4b, 0xf2, 0xe3, 0xf3, 0xf7, 0x1d, 0x22, 0x99, 0x92, 0x43, 0x42, 0x92, - 0xe9, 0x21, 0x6d, 0x05, 0xb2, 0x91, 0x71, 0x73, 0xa6, 0xb9, 0x9c, 0x68, 0x1e, 0xeb, 0x9e, 0xd9, - 0x25, 0x69, 0x38, 0x48, 0x22, 0xc0, 0x08, 0x90, 0x00, 0x49, 0x4e, 0x39, 0x24, 0x41, 0xce, 0x39, - 0x05, 0x3e, 0x24, 0x97, 0x9c, 0x72, 0xf4, 0xd1, 0xc8, 0x29, 0xc8, 0xc1, 0x08, 0xec, 0x83, 0xaf, - 0xf9, 0x13, 0x82, 0x7e, 0xcc, 0x73, 0x77, 0x96, 0xa4, 0x86, 0x32, 0x7c, 0xb1, 0x35, 0xdd, 0x55, - 0xbf, 0xfa, 0x55, 0x75, 0x75, 0x75, 0x57, 0x2f, 0x08, 0x93, 0xc4, 0xb1, 0x7c, 0xdf, 0xf2, 0x5c, - 0xbf, 0xd1, 0x79, 0xad, 0x11, 0xec, 0xaf, 0xb4, 0xa8, 0x17, 0x78, 0x68, 0x34, 0x1a, 0x5e, 0xe9, - 0xbc, 0x56, 0x3d, 0x87, 0x1d, 0xcb, 0xf5, 0x1a, 0xfc, 0xbf, 0x42, 0xa0, 0x7a, 0xc1, 0xf0, 0x7c, - 0xc7, 0xf3, 0x1b, 0x8e, 0xdf, 0x6c, 0x74, 0x5e, 0x66, 0xff, 0x93, 0x13, 0xd3, 0x62, 0x42, 0xe7, - 0x5f, 0x0d, 0xf1, 0x21, 0xa7, 0xaa, 0x09, 0x5b, 0xb7, 0x1a, 0x94, 0xb4, 0xda, 0x01, 0xa1, 0xa1, - 0x5a, 0x6a, 0x6e, 0xcf, 0xa3, 0x4f, 0xa3, 0xa9, 0x89, 0xa6, 0xd7, 0xf4, 0x04, 0x1c, 0xfb, 0x97, - 0x18, 0xad, 0xfd, 0x7c, 0x09, 0xc6, 0xde, 0x6e, 0x05, 0x96, 0xe7, 0x62, 0x7b, 0x03, 0x53, 0xec, - 0xf8, 0x48, 0x85, 0xa1, 0x0e, 0xa1, 0x0c, 0x44, 0x55, 0x16, 0x07, 0xea, 0xc3, 0x5a, 0xf8, 0x89, - 0xfe, 0x17, 0xa6, 0x1d, 0xbc, 0xaf, 0xfb, 0x84, 0x5a, 0xd8, 0xb6, 0x3e, 0x26, 0xa6, 0xee, 0xf8, - 0x4d, 0xdd, 0x26, 0x6e, 0x33, 0xd8, 0x55, 0x4f, 0x2f, 0x0e, 0xd4, 0x07, 0xb4, 0x29, 0x07, 0xef, - 0x6f, 0x46, 0xf3, 0x0f, 0xfd, 0xe6, 0x03, 0x3e, 0x8b, 0x30, 0x54, 0x1c, 0xcb, 0xd5, 0x03, 0xaf, - 0x65, 0x19, 0xfa, 0x1e, 0xb1, 0x9a, 0xbb, 0x81, 0x3a, 0xc0, 0xd0, 0xef, 0xbe, 0xf6, 0xf9, 0x97, - 0x0b, 0xa7, 0xfe, 0xf5, 0xe5, 0x42, 0xa3, 0x69, 0x05, 0xbb, 0xed, 0xed, 0x15, 0xc3, 0x73, 0x1a, - 0xd8, 0xb6, 0x3d, 0x8a, 0xaf, 0xbb, 0x24, 0x60, 0x2e, 0x84, 0x9f, 0xc6, 0x2e, 0xb6, 0xdc, 0x86, - 0x83, 0x83, 0xdd, 0x95, 0x55, 0x62, 0x68, 0x63, 0x8e, 0xe5, 0x6e, 0x31, 0xbc, 0xc7, 0x1c, 0x0e, - 0xed, 0xc0, 0x14, 0x25, 0x1f, 0xb5, 0x2d, 0xca, 0x78, 0x59, 0xae, 0xe5, 0xb4, 0x1d, 0xdd, 0x0f, - 0xf0, 0x53, 0xa2, 0x9e, 0xe1, 0x86, 0x6e, 0x48, 0x43, 0x93, 0x22, 0x9a, 0xbe, 0xf9, 0x74, 0xc5, - 0xf2, 0x04, 0xdc, 0x9a, 0x1b, 0xfc, 0xe3, 0x2f, 0xd7, 0x41, 0x86, 0x79, 0xcd, 0x0d, 0xfe, 0xf4, - 0xcd, 0x67, 0xd7, 0x14, 0x6d, 0x22, 0xc4, 0x7b, 0x28, 0xe0, 0x36, 0x19, 0x1a, 0x8b, 0x02, 0x25, - 0x8e, 0xd7, 0x21, 0x02, 0x5d, 0x37, 0x89, 0x8d, 0x0f, 0xf4, 0x3d, 0xcb, 0x35, 0xbd, 0x3d, 0x75, - 0x50, 0x44, 0x41, 0x08, 0x70, 0xf9, 0x55, 0x36, 0xfd, 0x98, 0xcf, 0xa2, 0xba, 0x88, 0x02, 0x69, - 0x79, 0xc6, 0x6e, 0x18, 0xb7, 0x21, 0xae, 0xc1, 0x9c, 0xb9, 0xc7, 0x86, 0x65, 0xbc, 0x9e, 0xc0, - 0xe8, 0x36, 0x09, 0xb0, 0x4e, 0xdc, 0x80, 0x7a, 0xad, 0x03, 0xb5, 0x5c, 0x2c, 0x56, 0x23, 0x0c, - 0xec, 0x9e, 0xc0, 0x42, 0x1f, 0xc0, 0x59, 0x9b, 0x60, 0xea, 0x5a, 0x6e, 0x53, 0xa7, 0x38, 0x20, - 0xea, 0x70, 0x31, 0xf0, 0xd1, 0x10, 0x4d, 0xc3, 0x01, 0x41, 0x0e, 0xb0, 0x1c, 0xd0, 0x9b, 0x14, - 0x9b, 0x16, 0x71, 0x03, 0x3d, 0xd8, 0xa5, 0xc4, 0xdf, 0xf5, 0x6c, 0x53, 0x85, 0x62, 0x66, 0x26, - 0x1c, 0xbc, 0xff, 0x96, 0x44, 0xdd, 0x0a, 0x41, 0x11, 0x01, 0xc4, 0x42, 0x2a, 0x96, 0x62, 0x87, - 0x62, 0x83, 0xe5, 0xb2, 0x3a, 0x52, 0xcc, 0x14, 0x5b, 0x25, 0xbe, 0x78, 0xf7, 0x25, 0x20, 0xba, - 0x07, 0x0b, 0xcc, 0xab, 0xb6, 0xbb, 0xd3, 0xb6, 0x77, 0x2c, 0xdb, 0x26, 0xa6, 0x2e, 0x76, 0x97, - 0xce, 0x72, 0x84, 0xf8, 0x81, 0xaf, 0x9e, 0x5d, 0x1c, 0xa8, 0x97, 0xb4, 0x59, 0x07, 0xef, 0xbf, - 0x1b, 0x4b, 0x3d, 0xe6, 0x42, 0x9a, 0x94, 0x41, 0x6f, 0xc1, 0x62, 0x16, 0x46, 0x6e, 0xe0, 0x18, - 0x67, 0x8c, 0xe3, 0xcc, 0xa5, 0x71, 0x34, 0x21, 0x15, 0x01, 0x7d, 0x0c, 0x73, 0x62, 0x2f, 0x51, - 0xb2, 0x87, 0xa9, 0x29, 0xfd, 0xb7, 0x9c, 0x96, 0x47, 0x03, 0xec, 0x1a, 0x44, 0x1d, 0x2f, 0x16, - 0x81, 0x2a, 0x47, 0xd7, 0x38, 0x38, 0x8f, 0xc4, 0x5a, 0x04, 0x8d, 0x3e, 0x55, 0x60, 0x39, 0x65, - 0x7c, 0x87, 0x10, 0x9d, 0x92, 0x0e, 0x71, 0xdb, 0x29, 0x0a, 0x95, 0x62, 0x14, 0x16, 0x12, 0x14, - 0xee, 0x13, 0xa2, 0x09, 0x03, 0x09, 0x1e, 0x04, 0x50, 0x8a, 0x06, 0xb6, 0x5b, 0xbb, 0x58, 0x3d, - 0x57, 0x70, 0xe9, 0x13, 0x56, 0xef, 0x30, 0x40, 0x64, 0xc0, 0xb9, 0x00, 0xfb, 0x4f, 0xd3, 0x56, - 0x50, 0x31, 0x2b, 0xe3, 0x0c, 0x31, 0x69, 0x84, 0xc5, 0xb4, 0x83, 0x6d, 0xcb, 0xc4, 0x81, 0x47, - 0x7d, 0xbd, 0xe3, 0xeb, 0x42, 0x51, 0x6f, 0x11, 0x6a, 0xb0, 0x6d, 0x24, 0xac, 0xab, 0xe7, 0x0b, - 0xc6, 0x34, 0xb6, 0xf1, 0x9e, 0x7f, 0x87, 0x8b, 0x6c, 0x08, 0x03, 0x82, 0x0c, 0xfa, 0x7f, 0x98, - 0xe1, 0x25, 0x1e, 0x3b, 0x2d, 0x9b, 0xf8, 0x7a, 0xe0, 0xe9, 0xbe, 0x81, 0x6d, 0xa2, 0xfb, 0x86, - 0x47, 0x89, 0xaf, 0x4e, 0xf0, 0xdc, 0xbc, 0xc0, 0x8a, 0xbc, 0x90, 0xd8, 0xf2, 0x36, 0xd9, 0xfc, - 0x26, 0x9f, 0x46, 0x6f, 0x40, 0x95, 0x69, 0x07, 0x5e, 0x4b, 0xb7, 0xdc, 0x1d, 0x42, 0x09, 0xe5, - 0x10, 0x92, 0xfb, 0x24, 0x57, 0x66, 0xd5, 0x61, 0xcb, 0x6b, 0xad, 0xc9, 0xf9, 0x2d, 0x4f, 0x5a, - 0xfe, 0x1e, 0xcc, 0x85, 0xba, 0x3b, 0x1e, 0x25, 0x06, 0xf6, 0x83, 0xb4, 0xfa, 0x14, 0x57, 0x9f, - 0x16, 0xea, 0xf7, 0x63, 0x91, 0x08, 0x21, 0x61, 0x5d, 0x6e, 0xaa, 0xa4, 0xfa, 0x85, 0xa4, 0x75, - 0xb9, 0x9d, 0x62, 0xdd, 0x27, 0x50, 0x31, 0x28, 0xc1, 0x01, 0x91, 0x47, 0xd4, 0x0e, 0x21, 0xaa, - 0xfa, 0x9c, 0xc7, 0xc6, 0x98, 0x40, 0xe2, 0x67, 0xd3, 0x7d, 0x42, 0xd0, 0xff, 0x41, 0x35, 0xaa, - 0x86, 0x26, 0xf1, 0xf9, 0x72, 0x32, 0xa2, 0x16, 0x63, 0xa0, 0x4e, 0x8b, 0x90, 0x86, 0x12, 0xab, - 0x42, 0xe0, 0x21, 0xde, 0x5f, 0x63, 0xd3, 0xe8, 0x7d, 0xa8, 0x50, 0xd2, 0xb4, 0xfc, 0x80, 0x62, - 0x56, 0x88, 0x38, 0xb1, 0xd9, 0xe7, 0x24, 0x36, 0x9e, 0x44, 0x62, 0xcc, 0x5e, 0x02, 0x64, 0x92, - 0x1d, 0xdc, 0xb6, 0x03, 0xbd, 0x85, 0x9b, 0x44, 0xb7, 0x2d, 0xc7, 0x0a, 0xd4, 0x39, 0xce, 0xa8, - 0x22, 0x67, 0x36, 0x70, 0x93, 0x3c, 0x60, 0xe3, 0xe8, 0x22, 0x8c, 0x31, 0xda, 0x09, 0xc9, 0x79, - 0x2e, 0x39, 0xea, 0xe0, 0xfd, 0x58, 0x8a, 0xad, 0x63, 0xe6, 0x8c, 0xd3, 0x29, 0x31, 0x3c, 0x6a, - 0x4a, 0xa5, 0x05, 0x7e, 0xe0, 0x4d, 0xa7, 0x0f, 0x3c, 0x8d, 0x4b, 0x08, 0x84, 0x3a, 0x54, 0xb6, - 0x6d, 0xcf, 0x78, 0xea, 0xb3, 0xe4, 0xd7, 0x1d, 0xcf, 0x0d, 0x76, 0xd5, 0x45, 0x6e, 0x69, 0x4c, - 0x8c, 0x6f, 0x10, 0xfa, 0x90, 0x8d, 0xb2, 0x0a, 0xd0, 0x0a, 0xf7, 0xa5, 0x48, 0x38, 0x56, 0x77, - 0x96, 0x0a, 0x56, 0x80, 0x96, 0xc8, 0x89, 0xb5, 0x10, 0x90, 0x55, 0x80, 0xc8, 0x4c, 0x98, 0x9b, - 0x6a, 0xad, 0x60, 0x05, 0x90, 0x56, 0xc2, 0x44, 0x66, 0x37, 0xa4, 0xc8, 0x88, 0x4c, 0x5f, 0x75, - 0xb9, 0xe0, 0x0d, 0x49, 0xda, 0x90, 0xd9, 0xce, 0xc2, 0x65, 0x74, 0x87, 0xeb, 0x62, 0xc1, 0x70, - 0x19, 0x3d, 0xc2, 0x65, 0x74, 0x85, 0xeb, 0x52, 0xc1, 0x70, 0x19, 0x99, 0x70, 0x3d, 0x82, 0x41, - 0x43, 0x77, 0x3d, 0xea, 0xa8, 0x97, 0x8b, 0x21, 0x9f, 0x31, 0x1e, 0x79, 0xd4, 0x41, 0x1f, 0xc2, - 0x38, 0x69, 0xf9, 0x96, 0xed, 0xb9, 0x51, 0xf4, 0xeb, 0x05, 0xa3, 0x2f, 0xf1, 0xc2, 0xe8, 0xbf, - 0x07, 0x57, 0x77, 0xb1, 0xbd, 0xc3, 0xb7, 0x7e, 0x8b, 0x7a, 0x06, 0xf1, 0x7d, 0x79, 0x6c, 0xf3, - 0xdb, 0x22, 0xb6, 0x7d, 0x9d, 0xb8, 0xa6, 0xce, 0x53, 0x5c, 0xbd, 0xc6, 0xf3, 0x7d, 0x99, 0x29, - 0x3c, 0xc4, 0xfb, 0x1b, 0x42, 0x9c, 0x1f, 0xc4, 0x9a, 0x14, 0xbe, 0xe7, 0x9a, 0x77, 0x99, 0x28, - 0x2b, 0x5d, 0x26, 0x0e, 0xb0, 0xee, 0x13, 0xd7, 0x64, 0x57, 0x3a, 0x56, 0x21, 0xfe, 0xe7, 0x79, - 0x4b, 0x17, 0x43, 0xda, 0x14, 0x40, 0xac, 0x40, 0x60, 0xa8, 0x84, 0x51, 0xf1, 0xf1, 0x0e, 0xd1, - 0x4d, 0xab, 0xa3, 0xbe, 0x74, 0x32, 0x61, 0xd9, 0xc4, 0x3b, 0x64, 0xd5, 0xea, 0x84, 0x4d, 0x05, - 0xb1, 0x89, 0x43, 0xdc, 0x40, 0xec, 0xf9, 0x28, 0x6b, 0xae, 0x47, 0x45, 0xfb, 0x9e, 0x9c, 0xdf, - 0x20, 0x34, 0xca, 0x01, 0x79, 0x58, 0xb1, 0x2b, 0x5a, 0x47, 0x16, 0x6e, 0xa1, 0x2f, 0x62, 0xb8, - 0x12, 0x1d, 0x56, 0x77, 0xb8, 0x04, 0x2f, 0xc8, 0x0c, 0x40, 0xc4, 0xed, 0x1a, 0x9c, 0xe3, 0x47, - 0x5d, 0x40, 0x59, 0xd4, 0xe4, 0x6d, 0xbc, 0xc1, 0x75, 0xc6, 0xd9, 0x01, 0xc7, 0xc7, 0xe5, 0x75, - 0xdc, 0x83, 0x0b, 0x96, 0x6b, 0x05, 0x16, 0xb6, 0x75, 0x4a, 0x9a, 0x94, 0x04, 0xfa, 0x47, 0x6d, - 0xec, 0x06, 0x96, 0x4d, 0xd4, 0x1b, 0xc5, 0xc2, 0x31, 0x29, 0x71, 0x35, 0x0e, 0xfb, 0x8e, 0x44, - 0x45, 0x3f, 0x84, 0xf1, 0x16, 0x4f, 0xef, 0x38, 0xee, 0x2f, 0x17, 0xbc, 0xa5, 0xb7, 0x58, 0x9e, - 0x87, 0x51, 0x7f, 0x1d, 0xd4, 0xa6, 0xed, 0x6d, 0x63, 0x5b, 0xdf, 0xdb, 0xb5, 0x02, 0x62, 0x5b, - 0x7e, 0xa0, 0x13, 0x17, 0x6f, 0xdb, 0xc4, 0x54, 0x6f, 0x2e, 0x0e, 0xd4, 0xcb, 0xda, 0x94, 0x98, - 0x7f, 0x1c, 0x4e, 0xdf, 0x13, 0xb3, 0xec, 0x26, 0x2c, 0x8e, 0x48, 0x7e, 0xca, 0x79, 0xb4, 0x07, - 0xc0, 0x2d, 0x0e, 0x30, 0xcb, 0xc5, 0xde, 0x14, 0x52, 0x5d, 0x30, 0x6f, 0xc2, 0x3c, 0x3f, 0x26, - 0xf6, 0x5b, 0x84, 0x5a, 0xac, 0x6c, 0x24, 0x2e, 0xd4, 0x2c, 0x12, 0xbe, 0x7a, 0x9b, 0x2f, 0xc5, - 0x0c, 0x3b, 0x27, 0x62, 0xa1, 0xf0, 0x3e, 0xcd, 0x45, 0xd0, 0x2f, 0x14, 0xb8, 0x14, 0x15, 0x32, - 0xdd, 0x6b, 0x07, 0xb6, 0x45, 0xa8, 0x6e, 0x92, 0x80, 0xf0, 0x5b, 0x7b, 0xa2, 0xf7, 0x78, 0xa5, - 0x58, 0xf0, 0x6a, 0x91, 0x95, 0xb7, 0x85, 0x91, 0xd5, 0xd0, 0x46, 0xdc, 0x89, 0x3c, 0x53, 0x60, - 0xa9, 0x1f, 0x19, 0x71, 0x71, 0x7c, 0xb5, 0x18, 0x91, 0xf9, 0x5c, 0x22, 0xfc, 0x1e, 0xb9, 0x5e, - 0x2a, 0x97, 0x2a, 0x67, 0xd6, 0x4b, 0xe5, 0x6a, 0x65, 0x66, 0xbd, 0x54, 0x9e, 0xa9, 0xcc, 0xae, - 0x97, 0xca, 0x57, 0x2a, 0xf5, 0xf5, 0x52, 0xf9, 0x6a, 0xe5, 0x1a, 0x6f, 0xa1, 0xba, 0xf6, 0x09, - 0x0f, 0xb1, 0x4e, 0x76, 0x76, 0x48, 0x62, 0x1f, 0x85, 0xf7, 0x79, 0x6d, 0x99, 0xa9, 0x50, 0x12, - 0x50, 0x4b, 0x5c, 0x07, 0x45, 0x47, 0xa2, 0xbb, 0x9e, 0x6b, 0x10, 0x5f, 0x2e, 0x99, 0x5c, 0xea, - 0x54, 0x1f, 0x60, 0x12, 0x03, 0x1f, 0xf0, 0xf6, 0x52, 0xbb, 0xd8, 0x17, 0x42, 0x56, 0xdb, 0x5a, - 0x0b, 0xce, 0xbf, 0xdb, 0x32, 0x71, 0x40, 0xc4, 0x33, 0x84, 0xec, 0x74, 0xd0, 0x14, 0x0c, 0xb2, - 0xc2, 0x46, 0xa8, 0xaa, 0x2c, 0x2a, 0xf5, 0x61, 0x4d, 0x7e, 0xa1, 0xdb, 0x30, 0xd8, 0xe2, 0x82, - 0xea, 0xe9, 0x45, 0xa5, 0x3e, 0x72, 0x73, 0x76, 0x25, 0xf9, 0xd6, 0xb2, 0x92, 0x7e, 0xd3, 0xd0, - 0xa4, 0xec, 0x1b, 0x23, 0xcf, 0xbe, 0xf9, 0xec, 0x9a, 0x84, 0xa8, 0x4d, 0xc1, 0x44, 0xda, 0xa2, - 0xdf, 0xf2, 0x5c, 0x9f, 0xd4, 0xfe, 0x3a, 0x0c, 0x93, 0x3c, 0x6d, 0xc9, 0x23, 0xb2, 0xb7, 0x25, - 0xda, 0x01, 0x41, 0x46, 0x85, 0x21, 0x99, 0xf5, 0x92, 0x4d, 0xf8, 0x89, 0xaa, 0x50, 0x76, 0x48, - 0x80, 0x59, 0xf9, 0xe4, 0x84, 0x86, 0xb5, 0xe8, 0x1b, 0x2d, 0xc0, 0x88, 0xed, 0xf9, 0xbe, 0xee, - 0x90, 0x60, 0xd7, 0x33, 0xd5, 0x12, 0x9f, 0x06, 0x36, 0xf4, 0x90, 0x8f, 0xa0, 0x25, 0x18, 0xcd, - 0x3c, 0x09, 0x28, 0xf5, 0x01, 0x6d, 0x84, 0x24, 0xde, 0x03, 0xea, 0x50, 0x69, 0x52, 0xaf, 0xed, - 0x9a, 0x7a, 0x40, 0xdb, 0xc1, 0xae, 0x6e, 0xe3, 0xa6, 0x5a, 0xe6, 0x62, 0x63, 0x62, 0x7c, 0x8b, - 0x0d, 0x3f, 0xc0, 0x4d, 0x76, 0x30, 0x8a, 0xca, 0xa1, 0x02, 0x33, 0x54, 0xe0, 0x60, 0xe4, 0x05, - 0x03, 0x3d, 0x81, 0x51, 0x9e, 0xb9, 0x72, 0x5f, 0xaa, 0x23, 0xc5, 0x50, 0x47, 0x38, 0x98, 0xd8, - 0xc0, 0xe8, 0x12, 0x8c, 0x31, 0xa9, 0x3d, 0xdd, 0x25, 0x4d, 0xcc, 0x92, 0x4f, 0x1d, 0x5d, 0x54, - 0xea, 0x65, 0xed, 0x2c, 0x1f, 0x7d, 0x24, 0x07, 0xd1, 0x3b, 0x30, 0x24, 0x0f, 0x0d, 0xf5, 0x6c, - 0x31, 0xeb, 0x21, 0x0e, 0xab, 0x7f, 0xb2, 0xdc, 0xf8, 0xed, 0x6d, 0x99, 0x38, 0xe1, 0x1b, 0xce, - 0x18, 0x8f, 0xeb, 0x94, 0x98, 0xdf, 0x8c, 0xa6, 0xe5, 0x1b, 0xce, 0x53, 0x98, 0x74, 0x08, 0xb5, - 0x02, 0xdd, 0xf7, 0x68, 0x60, 0x25, 0x76, 0xf6, 0x78, 0x31, 0x6a, 0xe7, 0x39, 0xea, 0x66, 0x08, - 0x2a, 0xda, 0x42, 0x0f, 0x2e, 0xc8, 0xd3, 0x4d, 0xf6, 0x53, 0xf1, 0xb9, 0x53, 0x29, 0x66, 0x6e, - 0x52, 0xe0, 0xca, 0x36, 0x2c, 0x3a, 0x77, 0xda, 0x50, 0x95, 0x06, 0xe3, 0x26, 0x2c, 0xb6, 0x79, - 0xae, 0x98, 0x4d, 0x55, 0x40, 0xc7, 0xbd, 0x5b, 0x64, 0x36, 0xf6, 0x33, 0x7c, 0x0e, 0x89, 0x6c, - 0xa2, 0x13, 0xf1, 0x53, 0x5e, 0xc2, 0x22, 0x83, 0xaf, 0xc2, 0x05, 0x71, 0x5a, 0x85, 0xa7, 0x4e, - 0x74, 0x8a, 0xa9, 0xe7, 0x79, 0x0a, 0x4e, 0x8a, 0x69, 0x71, 0xde, 0x44, 0xa7, 0x17, 0xcb, 0x1b, - 0xa9, 0x17, 0x12, 0x8d, 0x15, 0x27, 0xb8, 0xe2, 0x94, 0x98, 0x97, 0x06, 0x23, 0xcd, 0x37, 0x46, - 0x59, 0xe9, 0x09, 0xeb, 0xc5, 0x7a, 0xa9, 0x3c, 0x50, 0x29, 0xad, 0x97, 0xca, 0x67, 0x2a, 0x83, - 0xeb, 0xa5, 0xf2, 0x60, 0x65, 0x68, 0xbd, 0x54, 0x1e, 0xae, 0x80, 0x28, 0x0b, 0xba, 0xed, 0x35, - 0x2d, 0x43, 0x1b, 0x8f, 0x4f, 0x13, 0x31, 0x50, 0x89, 0x07, 0x44, 0x2d, 0xd1, 0x46, 0xc2, 0xf6, - 0x0d, 0xd3, 0x66, 0xed, 0x16, 0x4c, 0x65, 0xcb, 0x96, 0xa8, 0x68, 0x68, 0x1a, 0xca, 0xa2, 0x42, - 0x5b, 0x26, 0x2f, 0x5c, 0x25, 0x6d, 0x88, 0x7f, 0xaf, 0x99, 0xb5, 0xdf, 0x2a, 0x30, 0xb3, 0xe6, - 0xfa, 0x84, 0x06, 0x92, 0xf1, 0x06, 0x3e, 0xb0, 0x3d, 0x6c, 0x1e, 0x56, 0x7f, 0x35, 0x98, 0x08, - 0x23, 0xd0, 0xc1, 0x76, 0x9b, 0xe8, 0xdb, 0x6d, 0xd7, 0xb4, 0x89, 0xac, 0xc6, 0x8b, 0xc9, 0x6a, - 0x7c, 0x6b, 0x45, 0x42, 0xbf, 0xc7, 0x04, 0xef, 0x72, 0x39, 0x0d, 0xd1, 0xae, 0xb1, 0x74, 0x75, - 0x9e, 0x87, 0xd9, 0xde, 0xbc, 0x64, 0x95, 0xfe, 0xb5, 0x02, 0x55, 0x21, 0x20, 0xd6, 0xe8, 0x88, - 0xbc, 0x1f, 0x00, 0x92, 0x2b, 0xce, 0x2f, 0xcd, 0x29, 0xd6, 0xf3, 0x69, 0xd6, 0x02, 0x77, 0x15, - 0x07, 0x58, 0x72, 0xae, 0xec, 0x65, 0x46, 0xd2, 0x8c, 0xe7, 0xc2, 0x48, 0x66, 0x08, 0x49, 0xc2, - 0x7f, 0x56, 0x60, 0x5c, 0xe3, 0x0d, 0x78, 0xf4, 0x8e, 0x97, 0xcb, 0x32, 0xb9, 0x60, 0xa5, 0xd4, - 0x82, 0xa1, 0x09, 0x38, 0xe3, 0xed, 0xb9, 0x84, 0xaa, 0x67, 0xb8, 0x86, 0xf8, 0x40, 0x73, 0x00, - 0x56, 0x74, 0x96, 0xaa, 0x83, 0x3c, 0x13, 0x87, 0x2d, 0x5f, 0xc6, 0x2e, 0xc5, 0x73, 0xbd, 0x54, - 0x3e, 0x5d, 0x19, 0x10, 0x19, 0xa8, 0x8d, 0xd8, 0xd6, 0xb6, 0xde, 0xba, 0xd9, 0xd2, 0x9f, 0x92, - 0x03, 0xed, 0xac, 0xd3, 0xb6, 0x03, 0x4b, 0xc7, 0xa6, 0x49, 0x89, 0xef, 0xd7, 0xee, 0x43, 0x25, - 0xe6, 0x2b, 0x33, 0x49, 0x85, 0x21, 0xbf, 0x6d, 0xb0, 0x66, 0x84, 0x33, 0x2e, 0x6b, 0xe1, 0x27, - 0x9b, 0x71, 0x88, 0xef, 0xe3, 0x26, 0x91, 0x07, 0x60, 0xf8, 0x59, 0xfb, 0x18, 0xa6, 0x79, 0xd3, - 0x42, 0xb4, 0xc4, 0xf3, 0xc3, 0x71, 0x22, 0x70, 0x3a, 0x1d, 0x81, 0xb4, 0xaf, 0x03, 0xfd, 0x7c, - 0xad, 0x6d, 0x40, 0xb5, 0x97, 0xed, 0x02, 0xde, 0xfc, 0x5e, 0x81, 0xf1, 0x3b, 0xa6, 0x29, 0x7b, - 0xb1, 0xe7, 0x76, 0xe2, 0xfb, 0x30, 0x88, 0x1d, 0xaf, 0xed, 0x06, 0xdc, 0x81, 0xe7, 0xe9, 0xd5, - 0xa4, 0x7e, 0xda, 0x5f, 0x04, 0x95, 0x98, 0x9c, 0x4c, 0xbc, 0x3f, 0x2a, 0x80, 0xb4, 0xf8, 0x07, - 0x89, 0xef, 0x1e, 0xe9, 0x49, 0x38, 0x9f, 0xe2, 0x27, 0x79, 0x3f, 0x01, 0xf5, 0x4d, 0xec, 0x1a, - 0xc4, 0x3e, 0x11, 0xf2, 0x69, 0x93, 0x33, 0x30, 0xdd, 0x03, 0x5b, 0x1a, 0xfe, 0x9b, 0x02, 0x13, - 0xab, 0xc4, 0x66, 0xd7, 0x8f, 0xc2, 0x21, 0x53, 0x61, 0x28, 0x99, 0xa9, 0xc3, 0x5a, 0xf8, 0x99, - 0x08, 0x66, 0xe9, 0x24, 0x83, 0x79, 0x01, 0x26, 0x33, 0xdc, 0xa5, 0x57, 0x7f, 0x57, 0xc2, 0xbd, - 0x70, 0x2c, 0xdf, 0x12, 0x0e, 0x9c, 0x4e, 0x3b, 0x90, 0xf4, 0x7a, 0x20, 0x2f, 0x51, 0x4e, 0xd4, - 0xb7, 0x39, 0x98, 0xe9, 0xe9, 0x81, 0xf4, 0xf0, 0x77, 0x0a, 0x2c, 0x26, 0x57, 0xf5, 0xa4, 0xd6, - 0x70, 0x16, 0x86, 0x4d, 0x01, 0xe5, 0x85, 0xab, 0x18, 0x0f, 0x24, 0x03, 0x54, 0x4a, 0x05, 0x28, - 0xcd, 0x7d, 0x19, 0x96, 0xfa, 0x70, 0x93, 0x1e, 0x74, 0xd8, 0x12, 0xed, 0x61, 0x6a, 0xbe, 0xf0, - 0xf4, 0xeb, 0x11, 0xd8, 0x1e, 0x76, 0x25, 0xad, 0x3f, 0x28, 0x50, 0xb9, 0xcf, 0x9a, 0x8c, 0x64, - 0x33, 0xf4, 0xdd, 0xa9, 0x1f, 0xe7, 0xe1, 0x5c, 0x82, 0x9d, 0xe4, 0xfc, 0x3e, 0x54, 0xef, 0x98, - 0xe6, 0x96, 0x17, 0xdd, 0xc0, 0xee, 0x98, 0x8e, 0xe5, 0x1e, 0x21, 0xdb, 0xe5, 0xf1, 0x17, 0x66, - 0xbb, 0xfc, 0xec, 0x8a, 0x57, 0x4f, 0x70, 0x69, 0xfb, 0x43, 0x58, 0x10, 0xab, 0x7c, 0x9f, 0x7a, - 0xce, 0x0b, 0x21, 0x50, 0x83, 0xc5, 0x7c, 0x0b, 0x92, 0x85, 0x01, 0x4b, 0xe2, 0xb5, 0x45, 0xfc, - 0x4a, 0x9e, 0xbe, 0xc9, 0x9e, 0x54, 0x21, 0xbd, 0x08, 0xb5, 0x7e, 0x46, 0x24, 0x15, 0x13, 0x6a, - 0xab, 0x96, 0xff, 0xa2, 0xb9, 0x5c, 0x82, 0xe5, 0xbe, 0x56, 0x62, 0x32, 0x09, 0xca, 0xd9, 0x8b, - 0xfa, 0x09, 0x92, 0xe9, 0x6b, 0x45, 0x92, 0x21, 0x69, 0xce, 0x2f, 0x8a, 0xcd, 0x65, 0xb8, 0xd8, - 0xdf, 0x8c, 0xa4, 0xf3, 0x81, 0x4c, 0xec, 0xb7, 0xd2, 0x8f, 0x7f, 0x27, 0x94, 0xb5, 0xf3, 0x30, - 0xdb, 0x1b, 0x5d, 0x5a, 0xc7, 0xc9, 0xac, 0x7e, 0x31, 0x14, 0x96, 0x61, 0xa9, 0x8f, 0x09, 0xc9, - 0x63, 0x1b, 0x96, 0x38, 0xcf, 0xad, 0x5e, 0x2f, 0x98, 0x27, 0x44, 0xe4, 0x22, 0xd4, 0xfa, 0xd9, - 0x90, 0x4c, 0x9a, 0x70, 0x39, 0xa6, 0xfb, 0x22, 0xe9, 0x5c, 0x85, 0x2b, 0x87, 0x1a, 0x92, 0x9c, - 0x3e, 0x81, 0xc5, 0x98, 0xf9, 0x31, 0xb7, 0x72, 0x2e, 0x9b, 0x3e, 0xb7, 0x89, 0xae, 0x05, 0xec, - 0x63, 0x5d, 0x52, 0xfc, 0x99, 0x02, 0x97, 0x32, 0xee, 0x7c, 0xeb, 0x44, 0xeb, 0x5d, 0x4b, 0x97, - 0xc7, 0xf6, 0xc7, 0x49, 0x97, 0x8e, 0x5b, 0x01, 0x8a, 0x13, 0x4d, 0x65, 0x62, 0x6e, 0x65, 0x78, - 0xa6, 0x74, 0xf9, 0xf3, 0xed, 0x53, 0xed, 0xce, 0xd2, 0x3c, 0xbe, 0x37, 0xff, 0xa3, 0x02, 0x3c, - 0xf4, 0x9b, 0x9b, 0x84, 0x76, 0x2c, 0x83, 0xa0, 0x77, 0x61, 0x34, 0xf9, 0xd8, 0x8b, 0x96, 0xd2, - 0xef, 0xc5, 0x3d, 0x9e, 0x9e, 0xab, 0xb5, 0x7e, 0x22, 0xb2, 0x83, 0x7c, 0x1f, 0xc6, 0xd2, 0x6f, - 0x2e, 0x68, 0x39, 0xad, 0xd5, 0xf3, 0x21, 0xb9, 0x7a, 0xb1, 0xbf, 0x90, 0x04, 0x5f, 0x83, 0x72, - 0xd8, 0x80, 0xa3, 0xb9, 0xb4, 0x46, 0xe6, 0x21, 0xa1, 0x3a, 0x9f, 0x37, 0x2d, 0xa1, 0x9a, 0x61, - 0x0b, 0x98, 0xec, 0x83, 0xd1, 0x95, 0xac, 0x56, 0x4e, 0x97, 0x5e, 0xad, 0x1f, 0x2e, 0x18, 0x73, - 0x0e, 0x1b, 0xd0, 0x2c, 0xe7, 0x4c, 0xd7, 0x9c, 0xe5, 0x9c, 0xed, 0x5b, 0x91, 0x06, 0x23, 0x89, - 0xee, 0x0c, 0x2d, 0xf6, 0xe2, 0x90, 0x02, 0x5c, 0xea, 0x23, 0x21, 0x31, 0x4d, 0x38, 0xd7, 0xd5, - 0xf7, 0xa1, 0xcb, 0x99, 0xd5, 0xc8, 0x69, 0x3a, 0xab, 0x57, 0x0e, 0x95, 0x93, 0x56, 0x7e, 0x00, - 0x67, 0x53, 0x17, 0x69, 0x94, 0x49, 0xa5, 0x5e, 0xb7, 0xfb, 0xea, 0x72, 0x5f, 0x19, 0x89, 0xfc, - 0x23, 0xd6, 0x2a, 0x77, 0x5d, 0xd4, 0x51, 0xd7, 0xfa, 0xe4, 0xf5, 0x10, 0xd5, 0xab, 0x47, 0x90, - 0x4c, 0xda, 0xea, 0xea, 0x55, 0x50, 0xcf, 0x5c, 0x38, 0x9a, 0xad, 0xdc, 0xc6, 0x07, 0x7d, 0x92, - 0xee, 0xc7, 0xd3, 0x16, 0x57, 0xf2, 0xe3, 0xde, 0xd3, 0x6e, 0xe3, 0xc8, 0xf2, 0xd2, 0xfa, 0x03, - 0x18, 0x8e, 0x1a, 0x08, 0x94, 0x49, 0xcb, 0x6c, 0xdf, 0x53, 0x5d, 0xc8, 0x9d, 0x8f, 0xe3, 0xd6, - 0xa3, 0x39, 0xc8, 0xc6, 0x2d, 0xbf, 0x39, 0xc9, 0xc6, 0xad, 0x4f, 0xa7, 0x81, 0x0e, 0x40, 0xcd, - 0xeb, 0x03, 0xd0, 0xf5, 0x5e, 0xe1, 0xcf, 0xed, 0x48, 0xaa, 0x2b, 0x47, 0x15, 0x8f, 0xdd, 0xec, - 0xf1, 0xdc, 0x99, 0x75, 0x33, 0xff, 0x89, 0x36, 0xeb, 0x66, 0x9f, 0xb7, 0x53, 0xe4, 0xc0, 0x44, - 0xaf, 0xc7, 0x60, 0xd4, 0x13, 0xa2, 0xe7, 0x43, 0x76, 0xf5, 0xda, 0x51, 0x44, 0x63, 0x73, 0xbd, - 0xee, 0xa9, 0xa8, 0xd7, 0xc2, 0xf4, 0xbe, 0xa6, 0x66, 0xcd, 0xf5, 0xbb, 0xf6, 0xb2, 0xe4, 0xcf, - 0xbd, 0x93, 0xa2, 0xdc, 0x65, 0xc9, 0x31, 0xdc, 0x38, 0xb2, 0xbc, 0xb4, 0xfe, 0x13, 0xa8, 0xe6, - 0x77, 0x70, 0x28, 0x03, 0x77, 0x68, 0x43, 0x59, 0xbd, 0x71, 0x74, 0x05, 0x49, 0xe0, 0x99, 0x02, - 0x33, 0x7d, 0xfa, 0x36, 0x94, 0x41, 0x3c, 0xbc, 0x91, 0xac, 0xbe, 0x7c, 0x0c, 0x8d, 0x04, 0x89, - 0x3e, 0xfd, 0x1a, 0xca, 0x77, 0x2b, 0xe7, 0x16, 0x94, 0x25, 0x71, 0x84, 0x66, 0x10, 0x7d, 0xaa, - 0xc0, 0x6c, 0xbf, 0x36, 0x0d, 0xf5, 0x71, 0x2c, 0x8f, 0xc6, 0xcd, 0xe3, 0xa8, 0xc4, 0x29, 0x91, - 0xdf, 0x9b, 0x64, 0x53, 0xe2, 0xd0, 0x4e, 0x29, 0x9b, 0x12, 0x87, 0xb7, 0x3d, 0xe8, 0x57, 0x4a, - 0xf2, 0x05, 0xa5, 0x37, 0x8d, 0xdb, 0x79, 0x89, 0xde, 0x97, 0xcb, 0x2b, 0xc7, 0xd4, 0x8a, 0xb7, - 0x68, 0x6e, 0xd7, 0x91, 0xdd, 0xa2, 0x87, 0x35, 0x47, 0xd5, 0xc6, 0x91, 0xe5, 0xa5, 0xf5, 0x5f, - 0x2a, 0x30, 0xdf, 0xbf, 0x97, 0x40, 0xb7, 0xfa, 0xfa, 0x95, 0x43, 0xe4, 0xf6, 0xf1, 0x94, 0x7a, - 0x65, 0x47, 0x57, 0x8a, 0xe6, 0x3a, 0x97, 0x97, 0xa0, 0x37, 0x8e, 0xae, 0x90, 0x9f, 0x1d, 0x5d, - 0x34, 0xfa, 0xbb, 0x96, 0xc7, 0xe5, 0x95, 0x63, 0x6a, 0x09, 0x42, 0xd5, 0x33, 0x3f, 0xfd, 0xe6, - 0xb3, 0x6b, 0xca, 0x5d, 0xed, 0xf3, 0xaf, 0xe6, 0x95, 0x2f, 0xbe, 0x9a, 0x57, 0xfe, 0xfd, 0xd5, - 0xbc, 0xf2, 0x9b, 0xaf, 0xe7, 0x4f, 0x7d, 0xf1, 0xf5, 0xfc, 0xa9, 0x7f, 0x7e, 0x3d, 0x7f, 0xea, - 0xc9, 0xeb, 0x47, 0xfc, 0xd9, 0x7a, 0xbf, 0x11, 0xff, 0x01, 0x4f, 0x70, 0xd0, 0x22, 0xfe, 0xf6, - 0x20, 0xff, 0x3b, 0x9d, 0x5b, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x15, 0xc5, 0xef, 0xeb, 0x62, - 0x34, 0x00, 0x00, + // 3237 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0x4b, 0x6f, 0x1c, 0xc7, + 0xb5, 0x56, 0x8b, 0x23, 0x72, 0x78, 0x48, 0x91, 0xa3, 0x12, 0x49, 0x35, 0x87, 0xef, 0xa1, 0x1e, + 0x23, 0x5e, 0x8b, 0x23, 0x4b, 0xb2, 0xe5, 0xeb, 0x7b, 0x17, 0x57, 0x32, 0x25, 0x5f, 0xf2, 0x4a, + 0x32, 0xdd, 0xa4, 0xad, 0x0b, 0xd9, 0x48, 0xbb, 0xd8, 0x5d, 0x1c, 0x76, 0xd8, 0x2f, 0x57, 0xf7, + 0x90, 0x94, 0xe0, 0x20, 0x89, 0x00, 0x6f, 0x12, 0x20, 0x09, 0x10, 0x20, 0x8b, 0xbc, 0xd6, 0x59, + 0x05, 0x5e, 0x24, 0x9b, 0xac, 0xb2, 0xf4, 0xd2, 0xc8, 0x2a, 0xc8, 0xc2, 0x08, 0xec, 0x85, 0xb7, + 0xf9, 0x09, 0x41, 0x3d, 0x7a, 0xfa, 0x31, 0xd3, 0x43, 0x52, 0x4d, 0x19, 0xde, 0xd8, 0xea, 0xaa, + 0x53, 0xdf, 0xf7, 0xd5, 0xa9, 0x53, 0xa7, 0xea, 0xd4, 0x80, 0x30, 0x4e, 0x1c, 0x2b, 0x08, 0x2c, + 0xcf, 0x0d, 0x1a, 0x7b, 0xb7, 0x1b, 0xe1, 0xc1, 0xb2, 0x4f, 0xbd, 0xd0, 0x43, 0xc3, 0xed, 0xe6, + 0xe5, 0xbd, 0xdb, 0xd5, 0x73, 0xd8, 0xb1, 0x5c, 0xaf, 0xc1, 0xff, 0x2b, 0x0c, 0xaa, 0x17, 0x0c, + 0x2f, 0x70, 0xbc, 0xa0, 0xe1, 0x04, 0xcd, 0xc6, 0xde, 0xab, 0xec, 0x7f, 0xb2, 0x63, 0x52, 0x74, + 0xe8, 0xfc, 0xab, 0x21, 0x3e, 0x64, 0x57, 0x35, 0xc1, 0x75, 0xb3, 0x41, 0x89, 0xdf, 0x0a, 0x09, + 0x8d, 0x86, 0xa5, 0xfa, 0xf6, 0x3d, 0xba, 0xdb, 0xee, 0x1a, 0x6b, 0x7a, 0x4d, 0x4f, 0xc0, 0xb1, + 0x7f, 0x89, 0xd6, 0xda, 0xef, 0x6a, 0x30, 0xf2, 0x8e, 0x1f, 0x5a, 0x9e, 0x8b, 0xed, 0x75, 0x4c, + 0xb1, 0x13, 0x20, 0x15, 0x06, 0xf6, 0x08, 0x65, 0x20, 0xaa, 0x32, 0xdf, 0x57, 0x1f, 0xd4, 0xa2, + 0x4f, 0xf4, 0x9f, 0x30, 0xe9, 0xe0, 0x03, 0x3d, 0x20, 0xd4, 0xc2, 0xb6, 0xf5, 0x8c, 0x98, 0xba, + 0x13, 0x34, 0x75, 0x9b, 0xb8, 0xcd, 0x70, 0x47, 0x3d, 0x3d, 0xdf, 0x57, 0xef, 0xd3, 0x26, 0x1c, + 0x7c, 0xb0, 0xd1, 0xee, 0x7f, 0x18, 0x34, 0x1f, 0xf0, 0x5e, 0x84, 0xa1, 0xe2, 0x58, 0xae, 0x1e, + 0x7a, 0xbe, 0x65, 0xe8, 0xfb, 0xc4, 0x6a, 0xee, 0x84, 0x6a, 0x1f, 0x43, 0xbf, 0x7b, 0xfb, 0xf3, + 0x2f, 0xe7, 0x4e, 0xfd, 0xe3, 0xcb, 0xb9, 0x46, 0xd3, 0x0a, 0x77, 0x5a, 0x5b, 0xcb, 0x86, 0xe7, + 0x34, 0xb0, 0x6d, 0x7b, 0x14, 0x5f, 0x73, 0x49, 0xc8, 0xa6, 0x10, 0x7d, 0x1a, 0x3b, 0xd8, 0x72, + 0x1b, 0x0e, 0x0e, 0x77, 0x96, 0x57, 0x88, 0xa1, 0x8d, 0x38, 0x96, 0xbb, 0xc9, 0xf0, 0x1e, 0x73, + 0x38, 0xb4, 0x0d, 0x13, 0x94, 0x7c, 0xdc, 0xb2, 0x28, 0xd3, 0x65, 0xb9, 0x96, 0xd3, 0x72, 0xf4, + 0x20, 0xc4, 0xbb, 0x44, 0x3d, 0xc3, 0x89, 0xae, 0x4b, 0xa2, 0x71, 0xe1, 0xcd, 0xc0, 0xdc, 0x5d, + 0xb6, 0x3c, 0x01, 0xb7, 0xea, 0x86, 0x7f, 0xfb, 0xd3, 0x35, 0x90, 0x6e, 0x5e, 0x75, 0xc3, 0x3f, + 0x7c, 0xf3, 0xd9, 0x92, 0xa2, 0x8d, 0x45, 0x78, 0x0f, 0x05, 0xdc, 0x06, 0x43, 0x63, 0x5e, 0xa0, + 0xc4, 0xf1, 0xf6, 0x88, 0x40, 0xd7, 0x4d, 0x62, 0xe3, 0xa7, 0xfa, 0xbe, 0xe5, 0x9a, 0xde, 0xbe, + 0xda, 0x2f, 0xbc, 0x20, 0x0c, 0xb8, 0xfd, 0x0a, 0xeb, 0x7e, 0xcc, 0x7b, 0x51, 0x5d, 0x78, 0x81, + 0xf8, 0x9e, 0xb1, 0x13, 0xf9, 0x6d, 0x80, 0x8f, 0x60, 0x93, 0xb9, 0xc7, 0x9a, 0xa5, 0xbf, 0x9e, + 0xc0, 0xf0, 0x16, 0x09, 0xb1, 0x4e, 0xdc, 0x90, 0x7a, 0xfe, 0x53, 0xb5, 0x5c, 0xcc, 0x57, 0x43, + 0x0c, 0xec, 0x9e, 0xc0, 0x42, 0x1f, 0xc2, 0x59, 0x9b, 0x60, 0xea, 0x5a, 0x6e, 0x53, 0xa7, 0x38, + 0x24, 0xea, 0x60, 0x31, 0xf0, 0xe1, 0x08, 0x4d, 0xc3, 0x21, 0x41, 0x0e, 0xb0, 0x18, 0xd0, 0x9b, + 0x14, 0x9b, 0x16, 0x71, 0x43, 0x3d, 0xdc, 0xa1, 0x24, 0xd8, 0xf1, 0x6c, 0x53, 0x85, 0x62, 0x34, + 0x63, 0x0e, 0x3e, 0x78, 0x5b, 0xa2, 0x6e, 0x46, 0xa0, 0x88, 0x00, 0x62, 0x2e, 0x15, 0x4b, 0xb1, + 0x4d, 0xb1, 0xc1, 0x62, 0x59, 0x1d, 0x2a, 0x46, 0xc5, 0x56, 0x89, 0x2f, 0xde, 0x7d, 0x09, 0x88, + 0xee, 0xc1, 0x1c, 0x9b, 0x55, 0xcb, 0xdd, 0x6e, 0xd9, 0xdb, 0x96, 0x6d, 0x13, 0x53, 0x17, 0xbb, + 0x4b, 0x67, 0x31, 0x42, 0x82, 0x30, 0x50, 0xcf, 0xce, 0xf7, 0xd5, 0x4b, 0xda, 0xb4, 0x83, 0x0f, + 0xde, 0x8b, 0xad, 0x1e, 0x73, 0x23, 0x4d, 0xda, 0xa0, 0xb7, 0x61, 0x3e, 0x0b, 0x23, 0x37, 0x70, + 0x8c, 0x33, 0xc2, 0x71, 0x66, 0xd2, 0x38, 0x9a, 0xb0, 0x6a, 0x03, 0x3d, 0x83, 0x19, 0xb1, 0x97, + 0x28, 0xd9, 0xc7, 0xd4, 0x94, 0xf3, 0xb7, 0x1c, 0xdf, 0xa3, 0x21, 0x76, 0x0d, 0xa2, 0x8e, 0x16, + 0xf3, 0x40, 0x95, 0xa3, 0x6b, 0x1c, 0x9c, 0x7b, 0x62, 0xb5, 0x0d, 0x8d, 0x3e, 0x55, 0x60, 0x31, + 0x45, 0xbe, 0x4d, 0x88, 0x4e, 0xc9, 0x1e, 0x71, 0x5b, 0x29, 0x09, 0x95, 0x62, 0x12, 0xe6, 0x12, + 0x12, 0xee, 0x13, 0xa2, 0x09, 0x82, 0x84, 0x0e, 0x02, 0x28, 0x25, 0x03, 0xdb, 0xfe, 0x0e, 0x56, + 0xcf, 0x15, 0x5c, 0xfa, 0x04, 0xeb, 0x1d, 0x06, 0x88, 0x0c, 0x38, 0x17, 0xe2, 0x60, 0x37, 0xcd, + 0x82, 0x8a, 0xb1, 0x8c, 0x32, 0xc4, 0x24, 0x09, 0xf3, 0xe9, 0x1e, 0xb6, 0x2d, 0x13, 0x87, 0x1e, + 0x0d, 0xf4, 0xbd, 0x40, 0x17, 0x03, 0x75, 0x9f, 0x50, 0x83, 0x6d, 0x23, 0xc1, 0xae, 0x9e, 0x2f, + 0xe8, 0xd3, 0x98, 0xe3, 0xfd, 0xe0, 0x0e, 0x37, 0x59, 0x17, 0x04, 0x42, 0x0c, 0xfa, 0x6f, 0x98, + 0xe2, 0x29, 0x1e, 0x3b, 0xbe, 0x4d, 0x02, 0x3d, 0xf4, 0xf4, 0xc0, 0xc0, 0x36, 0xd1, 0x03, 0xc3, + 0xa3, 0x24, 0x50, 0xc7, 0x78, 0x6c, 0x5e, 0x60, 0x49, 0x5e, 0x58, 0x6c, 0x7a, 0x1b, 0xac, 0x7f, + 0x83, 0x77, 0xa3, 0x37, 0xa1, 0xca, 0x46, 0x87, 0x9e, 0xaf, 0x5b, 0xee, 0x36, 0xa1, 0x84, 0x72, + 0x08, 0xa9, 0x7d, 0x9c, 0x0f, 0x66, 0xd9, 0x61, 0xd3, 0xf3, 0x57, 0x65, 0xff, 0xa6, 0x27, 0x99, + 0xff, 0x07, 0x66, 0xa2, 0xb1, 0xdb, 0x1e, 0x25, 0x06, 0x0e, 0xc2, 0xf4, 0xf0, 0x09, 0x3e, 0x7c, + 0x52, 0x0c, 0xbf, 0x1f, 0x9b, 0xb4, 0x11, 0x12, 0xec, 0x72, 0x53, 0x25, 0x87, 0x5f, 0x48, 0xb2, + 0xcb, 0xed, 0x14, 0x8f, 0x7d, 0x02, 0x15, 0x83, 0x12, 0x1c, 0x12, 0x79, 0x44, 0x6d, 0x13, 0xa2, + 0xaa, 0x2f, 0x78, 0x6c, 0x8c, 0x08, 0x24, 0x7e, 0x36, 0xdd, 0x27, 0x04, 0xfd, 0x17, 0x54, 0xdb, + 0xd9, 0xd0, 0x24, 0x01, 0x5f, 0x4e, 0x26, 0xd4, 0x62, 0x0a, 0xd4, 0x49, 0xe1, 0xd2, 0xc8, 0x62, + 0x45, 0x18, 0x3c, 0xc4, 0x07, 0xab, 0xac, 0x1b, 0x7d, 0x00, 0x15, 0x4a, 0x9a, 0x56, 0x10, 0x52, + 0xcc, 0x12, 0x11, 0x17, 0x36, 0xfd, 0x82, 0xc2, 0x46, 0x93, 0x48, 0x4c, 0xd9, 0x2b, 0x80, 0x4c, + 0xb2, 0x8d, 0x5b, 0x76, 0xa8, 0xfb, 0xb8, 0x49, 0x74, 0xdb, 0x72, 0xac, 0x50, 0x9d, 0xe1, 0x8a, + 0x2a, 0xb2, 0x67, 0x1d, 0x37, 0xc9, 0x03, 0xd6, 0x8e, 0x2e, 0xc2, 0x08, 0x93, 0x9d, 0xb0, 0x9c, + 0xe5, 0x96, 0xc3, 0x0e, 0x3e, 0x88, 0xad, 0xd8, 0x3a, 0x66, 0xce, 0x38, 0x9d, 0x12, 0xc3, 0xa3, + 0xa6, 0x1c, 0x34, 0xc7, 0x0f, 0xbc, 0xc9, 0xf4, 0x81, 0xa7, 0x71, 0x0b, 0x81, 0x50, 0x87, 0xca, + 0x96, 0xed, 0x19, 0xbb, 0x01, 0x0b, 0x7e, 0xdd, 0xf1, 0xdc, 0x70, 0x47, 0x9d, 0xe7, 0x4c, 0x23, + 0xa2, 0x7d, 0x9d, 0xd0, 0x87, 0xac, 0x95, 0x65, 0x00, 0x3f, 0xda, 0x97, 0x22, 0xe0, 0x58, 0xde, + 0x59, 0x28, 0x98, 0x01, 0x7c, 0x11, 0x13, 0xab, 0x11, 0x20, 0xcb, 0x00, 0x6d, 0x9a, 0x28, 0x36, + 0xd5, 0x5a, 0xc1, 0x0c, 0x20, 0x59, 0xa2, 0x40, 0x66, 0x37, 0xa4, 0x36, 0x89, 0x0c, 0x5f, 0x75, + 0xb1, 0xe0, 0x0d, 0x49, 0x72, 0xc8, 0x68, 0x67, 0xee, 0x32, 0x3a, 0xdd, 0x75, 0xb1, 0xa0, 0xbb, + 0x8c, 0x2e, 0xee, 0x32, 0x3a, 0xdc, 0x75, 0xa9, 0xa0, 0xbb, 0x8c, 0x8c, 0xbb, 0x1e, 0x41, 0xbf, + 0xa1, 0xbb, 0x1e, 0x75, 0xd4, 0xcb, 0xc5, 0x90, 0xcf, 0x18, 0x8f, 0x3c, 0xea, 0xa0, 0x8f, 0x60, + 0x94, 0xf8, 0x81, 0x65, 0x7b, 0x6e, 0xdb, 0xfb, 0xf5, 0x82, 0xde, 0x97, 0x78, 0x91, 0xf7, 0xdf, + 0x87, 0xab, 0x3b, 0xd8, 0xde, 0xe6, 0x5b, 0xdf, 0xa7, 0x9e, 0x41, 0x82, 0x40, 0x1e, 0xdb, 0xfc, + 0xb6, 0x88, 0xed, 0x40, 0x27, 0xae, 0xa9, 0xf3, 0x10, 0x57, 0x97, 0x78, 0xbc, 0x2f, 0xb2, 0x01, + 0x0f, 0xf1, 0xc1, 0xba, 0x30, 0xe7, 0x07, 0xb1, 0x26, 0x8d, 0xef, 0xb9, 0xe6, 0x5d, 0x66, 0xca, + 0x52, 0x97, 0x89, 0x43, 0xac, 0x07, 0xc4, 0x35, 0xd9, 0x95, 0x8e, 0x65, 0x88, 0xff, 0x78, 0xd1, + 0xd4, 0xc5, 0x90, 0x36, 0x04, 0x10, 0x4b, 0x10, 0x18, 0x2a, 0x91, 0x57, 0x02, 0xbc, 0x4d, 0x74, + 0xd3, 0xda, 0x53, 0x5f, 0x39, 0x19, 0xb7, 0x6c, 0xe0, 0x6d, 0xb2, 0x62, 0xed, 0x45, 0x45, 0x05, + 0xb1, 0x89, 0x43, 0xdc, 0x50, 0xec, 0xf9, 0x76, 0xd4, 0x5c, 0x6b, 0x27, 0xed, 0x7b, 0xb2, 0x7f, + 0x9d, 0xd0, 0x76, 0x0c, 0xc8, 0xc3, 0x8a, 0x5d, 0xd1, 0xf6, 0x64, 0xe2, 0x16, 0xe3, 0x85, 0x0f, + 0x97, 0xdb, 0x87, 0xd5, 0x1d, 0x6e, 0xc1, 0x13, 0x32, 0x03, 0x10, 0x7e, 0x5b, 0x82, 0x73, 0xfc, + 0xa8, 0x0b, 0x29, 0xf3, 0x9a, 0xbc, 0x8d, 0x37, 0xf8, 0x98, 0x51, 0x76, 0xc0, 0xf1, 0x76, 0x79, + 0x1d, 0xf7, 0xe0, 0x82, 0xe5, 0x5a, 0xa1, 0x85, 0x6d, 0x9d, 0x92, 0x26, 0x25, 0xa1, 0xfe, 0x71, + 0x0b, 0xbb, 0xa1, 0x65, 0x13, 0xf5, 0x7a, 0x31, 0x77, 0x8c, 0x4b, 0x5c, 0x8d, 0xc3, 0xbe, 0x2b, + 0x51, 0xd1, 0xf7, 0x60, 0xd4, 0xe7, 0xe1, 0x1d, 0xfb, 0xfd, 0xd5, 0x82, 0xb7, 0x74, 0x9f, 0xc5, + 0x79, 0xe4, 0xf5, 0x37, 0x40, 0x6d, 0xda, 0xde, 0x16, 0xb6, 0xf5, 0xfd, 0x1d, 0x2b, 0x24, 0xb6, + 0x15, 0x84, 0x3a, 0x71, 0xf1, 0x96, 0x4d, 0x4c, 0xf5, 0xc6, 0x7c, 0x5f, 0xbd, 0xac, 0x4d, 0x88, + 0xfe, 0xc7, 0x51, 0xf7, 0x3d, 0xd1, 0xcb, 0x6e, 0xc2, 0xe2, 0x88, 0xe4, 0xa7, 0x9c, 0x47, 0xbb, + 0x00, 0xdc, 0xe4, 0x00, 0xd3, 0xdc, 0xec, 0x2d, 0x61, 0xd5, 0x01, 0xf3, 0x16, 0xcc, 0xf2, 0x63, + 0xe2, 0xc0, 0x27, 0xd4, 0x62, 0x69, 0x23, 0x71, 0xa1, 0x66, 0x9e, 0x08, 0xd4, 0x5b, 0x7c, 0x29, + 0xa6, 0xd8, 0x39, 0x11, 0x1b, 0x45, 0xf7, 0x69, 0x6e, 0x82, 0x7e, 0xa2, 0xc0, 0xa5, 0x76, 0x22, + 0xd3, 0xbd, 0x56, 0x68, 0x5b, 0x84, 0xea, 0x26, 0x09, 0x09, 0xbf, 0xb5, 0x27, 0x6a, 0x8f, 0xd7, + 0x8a, 0x39, 0xaf, 0xd6, 0x66, 0x79, 0x47, 0x90, 0xac, 0x44, 0x1c, 0x71, 0x25, 0xf2, 0x5c, 0x81, + 0x85, 0x5e, 0x62, 0xc4, 0xc5, 0xf1, 0xf5, 0x62, 0x42, 0x66, 0x73, 0x85, 0x88, 0x7b, 0xe4, 0x2f, + 0x15, 0x58, 0x72, 0xc9, 0xbe, 0xee, 0x63, 0x1a, 0x5a, 0x86, 0xe5, 0x63, 0x37, 0x14, 0x77, 0x37, + 0x5d, 0xc6, 0x99, 0xf5, 0x4c, 0xdc, 0x23, 0x76, 0xb1, 0xef, 0x63, 0xf5, 0x76, 0x31, 0x35, 0x97, + 0x5d, 0xb2, 0xbf, 0x1e, 0x33, 0xf1, 0x5b, 0xe0, 0x6a, 0x8a, 0xe7, 0xff, 0x18, 0xcd, 0x5a, 0xa9, + 0x5c, 0xaa, 0x9c, 0x59, 0x2b, 0x95, 0xab, 0x95, 0xa9, 0xb5, 0x52, 0x79, 0xaa, 0x32, 0xbd, 0x56, + 0x2a, 0x5f, 0xa9, 0xd4, 0xd7, 0x4a, 0xe5, 0xab, 0x95, 0x25, 0x5e, 0xd8, 0x75, 0xec, 0x5e, 0xbe, + 0xf0, 0x3a, 0xd9, 0xde, 0x26, 0x89, 0xdd, 0x1d, 0x55, 0x19, 0xda, 0x22, 0x1b, 0x42, 0x49, 0x48, + 0x2d, 0x71, 0x49, 0x15, 0x75, 0x92, 0xee, 0x7a, 0xae, 0x41, 0x02, 0x19, 0x48, 0x32, 0x00, 0x53, + 0xd5, 0x89, 0x49, 0x0c, 0xfc, 0x94, 0x17, 0xbd, 0xda, 0xc5, 0x9e, 0x10, 0xf2, 0x0c, 0xa8, 0xf9, + 0x70, 0xfe, 0x3d, 0xdf, 0xc4, 0x21, 0x11, 0x8f, 0x23, 0xb2, 0xfe, 0x42, 0x13, 0xd0, 0xcf, 0xd2, + 0x2d, 0xa1, 0xaa, 0x32, 0xaf, 0xd4, 0x07, 0x35, 0xf9, 0x85, 0x6e, 0x41, 0xbf, 0xcf, 0x0d, 0xd5, + 0xd3, 0xf3, 0x4a, 0x7d, 0xe8, 0xc6, 0xf4, 0x72, 0xf2, 0x05, 0x68, 0x39, 0xfd, 0xd2, 0xa2, 0x49, + 0xdb, 0x37, 0x87, 0x9e, 0x7f, 0xf3, 0xd9, 0x92, 0x84, 0xa8, 0x4d, 0xc0, 0x58, 0x9a, 0x31, 0xf0, + 0x3d, 0x37, 0x20, 0xb5, 0x3f, 0x0f, 0xc2, 0x38, 0xdf, 0x4c, 0xe4, 0x11, 0xd9, 0xdf, 0x14, 0x45, + 0x8a, 0x10, 0xa3, 0xc2, 0x80, 0xdc, 0x8b, 0x52, 0x4d, 0xf4, 0x89, 0xaa, 0x50, 0x76, 0x48, 0x88, + 0x59, 0x52, 0xe7, 0x82, 0x06, 0xb5, 0xf6, 0x37, 0x9a, 0x83, 0x21, 0xdb, 0x0b, 0x02, 0xdd, 0x21, + 0xe1, 0x8e, 0x67, 0xaa, 0x25, 0xde, 0x0d, 0xac, 0xe9, 0x21, 0x6f, 0x41, 0x0b, 0x30, 0x9c, 0x79, + 0xa8, 0x50, 0xea, 0x7d, 0xda, 0x10, 0x49, 0xbc, 0x52, 0xd4, 0xa1, 0xd2, 0xa4, 0x5e, 0xcb, 0x35, + 0xf5, 0x90, 0xb6, 0xc2, 0x1d, 0xdd, 0xc6, 0x4d, 0xb5, 0xcc, 0xcd, 0x46, 0x44, 0xfb, 0x26, 0x6b, + 0x7e, 0x80, 0x9b, 0xec, 0xb8, 0x16, 0xf9, 0x4c, 0x05, 0x46, 0x54, 0xe0, 0xb8, 0xe6, 0x69, 0x0c, + 0x3d, 0x81, 0x61, 0xbe, 0x9f, 0x64, 0xb6, 0x50, 0x87, 0x8a, 0xa1, 0x0e, 0x71, 0x30, 0x91, 0x56, + 0xd0, 0x25, 0x18, 0x61, 0x56, 0xfb, 0xba, 0x4b, 0x9a, 0x98, 0x05, 0x9f, 0x3a, 0x3c, 0xaf, 0xd4, + 0xcb, 0xda, 0x59, 0xde, 0xfa, 0x48, 0x36, 0xa2, 0x77, 0x61, 0x40, 0x1e, 0x65, 0xea, 0xd9, 0x62, + 0xec, 0x11, 0x0e, 0xcb, 0xca, 0x32, 0x09, 0x06, 0xad, 0x2d, 0x19, 0x38, 0xd1, 0xcb, 0xd2, 0x08, + 0xf7, 0xeb, 0x84, 0xe8, 0xdf, 0x68, 0x77, 0xcb, 0x97, 0xa5, 0x5d, 0x18, 0x77, 0x08, 0xb5, 0x42, + 0x3d, 0xf0, 0x68, 0x68, 0x25, 0xf2, 0xcd, 0x68, 0x31, 0x69, 0xe7, 0x39, 0xea, 0x46, 0x04, 0x2a, + 0x92, 0x8c, 0x07, 0x17, 0xe4, 0x99, 0x2b, 0xab, 0xbc, 0xf8, 0x34, 0xac, 0x14, 0xa3, 0x1b, 0x17, + 0xb8, 0xb2, 0x38, 0x6c, 0x9f, 0x86, 0x2d, 0xa8, 0x4a, 0xc2, 0xb8, 0x34, 0x8c, 0x39, 0xcf, 0x15, + 0xe3, 0x54, 0x05, 0x74, 0x5c, 0x51, 0xb6, 0x69, 0xe3, 0x79, 0x46, 0x8f, 0x34, 0x6d, 0x4e, 0x74, + 0x22, 0xf3, 0x94, 0x57, 0xc3, 0x36, 0xe1, 0xeb, 0x70, 0x41, 0x9c, 0xa1, 0xd1, 0x59, 0xd8, 0x3e, + 0x5b, 0xd5, 0xf3, 0x3c, 0x04, 0xc7, 0x45, 0xb7, 0x38, 0x05, 0xdb, 0x67, 0x2a, 0x8b, 0x1b, 0x39, + 0x2e, 0x12, 0x1a, 0x0f, 0x1c, 0xe3, 0x03, 0x27, 0x44, 0xbf, 0x24, 0x6c, 0x8f, 0x7c, 0x73, 0x98, + 0xa5, 0x9e, 0x28, 0x5f, 0xac, 0x95, 0xca, 0x7d, 0x95, 0xd2, 0x5a, 0xa9, 0x7c, 0xa6, 0xd2, 0xbf, + 0x56, 0x2a, 0xf7, 0x57, 0x06, 0xd6, 0x4a, 0xe5, 0xc1, 0x0a, 0x88, 0xb4, 0xa0, 0xdb, 0x5e, 0xd3, + 0x32, 0xb4, 0xd1, 0xf8, 0x8c, 0x13, 0x0d, 0x95, 0xb8, 0x41, 0xe4, 0x12, 0x6d, 0x28, 0x2a, 0x2a, + 0x31, 0x6d, 0xd6, 0x6e, 0xc2, 0x44, 0x36, 0x6d, 0x89, 0x8c, 0x86, 0x26, 0xa1, 0x2c, 0x32, 0xb4, + 0x65, 0xf2, 0xc4, 0x55, 0xd2, 0x06, 0xf8, 0xf7, 0xaa, 0x59, 0xfb, 0x95, 0x02, 0x53, 0xab, 0x6e, + 0x40, 0x68, 0x28, 0x15, 0xaf, 0xe3, 0xa7, 0xb6, 0x87, 0xcd, 0xc3, 0xf2, 0xaf, 0x06, 0x63, 0x91, + 0x07, 0xf6, 0xb0, 0xdd, 0x22, 0xfa, 0x56, 0xcb, 0x35, 0x6d, 0x22, 0xb3, 0xf1, 0x7c, 0x32, 0x1b, + 0xdf, 0x5c, 0x96, 0xd0, 0xef, 0x33, 0xc3, 0xbb, 0xdc, 0x4e, 0x43, 0xb4, 0xa3, 0x2d, 0x9d, 0x9d, + 0x67, 0x61, 0xba, 0xbb, 0x2e, 0x99, 0xa5, 0x7f, 0xae, 0x40, 0x55, 0x18, 0x88, 0x35, 0x3a, 0xa2, + 0xee, 0x07, 0x80, 0xe4, 0x8a, 0xf3, 0xab, 0x7c, 0x4a, 0xf5, 0x6c, 0x5a, 0xb5, 0xc0, 0x5d, 0xc1, + 0x21, 0x96, 0x9a, 0x2b, 0xfb, 0x99, 0x96, 0xb4, 0xe2, 0x99, 0xc8, 0x93, 0x19, 0x41, 0x52, 0xf0, + 0x1f, 0x15, 0x18, 0xd5, 0xf8, 0xb3, 0x40, 0xfb, 0x75, 0x31, 0x57, 0x65, 0x72, 0xc1, 0x4a, 0xa9, + 0x05, 0x43, 0x63, 0x70, 0xc6, 0xdb, 0x77, 0x09, 0x55, 0xcf, 0xf0, 0x11, 0xe2, 0x03, 0xcd, 0x00, + 0x58, 0xed, 0xb3, 0x54, 0xed, 0xe7, 0x91, 0x38, 0x68, 0x05, 0xd2, 0x77, 0x29, 0x9d, 0x6b, 0xa5, + 0xf2, 0xe9, 0x4a, 0x9f, 0x88, 0x40, 0x6d, 0xc8, 0xb6, 0xb6, 0x74, 0xff, 0x86, 0xaf, 0xef, 0x92, + 0xa7, 0xda, 0x59, 0xa7, 0x65, 0x87, 0x96, 0x8e, 0x4d, 0x93, 0x92, 0x20, 0xa8, 0xdd, 0x87, 0x4a, + 0xac, 0x57, 0x46, 0x92, 0x0a, 0x03, 0x41, 0xcb, 0x60, 0x25, 0x12, 0x57, 0x5c, 0xd6, 0xa2, 0x4f, + 0xd6, 0xe3, 0x90, 0x20, 0xc0, 0x4d, 0x22, 0x0f, 0xc0, 0xe8, 0xb3, 0xf6, 0x0c, 0x26, 0x79, 0x29, + 0x45, 0xb4, 0xc4, 0xa3, 0xc8, 0x71, 0x3c, 0x70, 0x3a, 0xed, 0x81, 0xf4, 0x5c, 0xfb, 0x7a, 0xcd, + 0xb5, 0xb6, 0x0e, 0xd5, 0x6e, 0xdc, 0x05, 0x66, 0xf3, 0x1b, 0x05, 0x46, 0xef, 0x98, 0xa6, 0xac, + 0x10, 0x5f, 0x78, 0x12, 0xff, 0x0b, 0xfd, 0xd8, 0xf1, 0x5a, 0x6e, 0xc8, 0x27, 0xf0, 0x22, 0x15, + 0xa4, 0x1c, 0x9f, 0x9e, 0x2f, 0x82, 0x4a, 0x2c, 0x4e, 0x06, 0xde, 0xef, 0x15, 0x40, 0x5a, 0xfc, + 0x33, 0xc9, 0x77, 0x4f, 0xf4, 0x38, 0x9c, 0x4f, 0xe9, 0x93, 0xba, 0x9f, 0x80, 0xfa, 0x16, 0x76, + 0x0d, 0x62, 0x9f, 0x88, 0xf8, 0x34, 0xe5, 0x14, 0x4c, 0x76, 0xc1, 0x96, 0xc4, 0x7f, 0x51, 0x60, + 0x6c, 0x85, 0xd8, 0xec, 0xfa, 0x51, 0xd8, 0x65, 0x2a, 0x0c, 0x24, 0x23, 0x75, 0x50, 0x8b, 0x3e, + 0x13, 0xce, 0x2c, 0x9d, 0xa4, 0x33, 0x2f, 0xc0, 0x78, 0x46, 0xbb, 0x9c, 0xd5, 0x5f, 0x95, 0x68, + 0x2f, 0x1c, 0x6b, 0x6e, 0x89, 0x09, 0x9c, 0x4e, 0x4f, 0x20, 0x39, 0xeb, 0xbe, 0xbc, 0x40, 0x39, + 0xd1, 0xb9, 0xcd, 0xc0, 0x54, 0xd7, 0x19, 0xc8, 0x19, 0xfe, 0x5a, 0x81, 0xf9, 0xe4, 0xaa, 0x9e, + 0xd4, 0x1a, 0x4e, 0xc3, 0xa0, 0x29, 0xa0, 0xbc, 0x68, 0x15, 0xe3, 0x86, 0xa4, 0x83, 0x4a, 0x29, + 0x07, 0xa5, 0xb5, 0x2f, 0xc2, 0x42, 0x0f, 0x6d, 0x72, 0x06, 0x7b, 0x6c, 0x89, 0xf6, 0x31, 0x35, + 0x5f, 0x7a, 0xf8, 0x75, 0x71, 0x6c, 0x17, 0x5e, 0x29, 0xeb, 0xb7, 0x0a, 0x54, 0xee, 0xb3, 0x22, + 0x23, 0x59, 0x0c, 0x7d, 0x77, 0xf2, 0xc7, 0x79, 0x38, 0x97, 0x50, 0x27, 0x35, 0x7f, 0x00, 0xd5, + 0x3b, 0xa6, 0xb9, 0xe9, 0xb5, 0x6f, 0x60, 0x77, 0x4c, 0xc7, 0x72, 0x8f, 0x10, 0xed, 0xf2, 0xf8, + 0x8b, 0xa2, 0x5d, 0x7e, 0x76, 0xf8, 0xab, 0x2b, 0xb8, 0xe4, 0xfe, 0x08, 0xe6, 0xc4, 0x2a, 0xdf, + 0xa7, 0x9e, 0xf3, 0x52, 0x04, 0xd4, 0x60, 0x3e, 0x9f, 0x41, 0xaa, 0x30, 0x60, 0x41, 0xbc, 0x01, + 0x89, 0xdf, 0xee, 0xd3, 0x37, 0xd9, 0x93, 0x4a, 0xa4, 0x17, 0xa1, 0xd6, 0x8b, 0x44, 0x4a, 0x31, + 0xa1, 0xb6, 0x62, 0x05, 0x2f, 0x5b, 0xcb, 0x25, 0x58, 0xec, 0xc9, 0x12, 0x8b, 0x49, 0x48, 0xce, + 0x5e, 0xd4, 0x4f, 0x50, 0x4c, 0x4f, 0x16, 0x29, 0x86, 0xa4, 0x35, 0xbf, 0x2c, 0x35, 0x97, 0xe1, + 0x62, 0x6f, 0x1a, 0x29, 0xe7, 0x43, 0x19, 0xd8, 0x6f, 0xa7, 0x9f, 0x24, 0x4f, 0x28, 0x6a, 0x67, + 0x61, 0xba, 0x3b, 0xba, 0x64, 0xc7, 0xc9, 0xa8, 0x7e, 0x39, 0x12, 0x16, 0x61, 0xa1, 0x07, 0x85, + 0xd4, 0xb1, 0x05, 0x0b, 0x5c, 0xe7, 0x66, 0xb7, 0x77, 0xd5, 0x13, 0x12, 0x72, 0x11, 0x6a, 0xbd, + 0x38, 0xa4, 0x92, 0x26, 0x5c, 0x8e, 0xe5, 0xbe, 0x4c, 0x39, 0x57, 0xe1, 0xca, 0xa1, 0x44, 0x52, + 0xd3, 0x27, 0x30, 0x1f, 0x2b, 0x3f, 0xe6, 0x56, 0xce, 0x55, 0xd3, 0xe3, 0x36, 0xd1, 0xb1, 0x80, + 0x3d, 0xd8, 0xa5, 0xc4, 0x1f, 0x2b, 0x70, 0x29, 0x33, 0x9d, 0x6f, 0x5d, 0x68, 0xbd, 0x63, 0xe9, + 0xf2, 0xd4, 0xfe, 0x20, 0x39, 0xa5, 0xe3, 0x66, 0x80, 0xe2, 0x42, 0x53, 0x91, 0x98, 0x9b, 0x19, + 0x9e, 0x2b, 0x1d, 0xf3, 0xf9, 0xf6, 0xa5, 0x76, 0x46, 0x69, 0x9e, 0xde, 0x1b, 0xff, 0x52, 0x01, + 0x1e, 0x06, 0xcd, 0x0d, 0x42, 0xf7, 0x2c, 0x83, 0xa0, 0xf7, 0x60, 0x38, 0xf9, 0xd8, 0x8b, 0x16, + 0xd2, 0xef, 0xc5, 0x5d, 0x9e, 0x9e, 0xab, 0xb5, 0x5e, 0x26, 0xb2, 0x82, 0xfc, 0x00, 0x46, 0xd2, + 0x6f, 0x2e, 0x68, 0x31, 0x3d, 0xaa, 0xeb, 0x43, 0x72, 0xf5, 0x62, 0x6f, 0x23, 0x09, 0xbe, 0x0a, + 0xe5, 0xa8, 0x00, 0x47, 0x33, 0xe9, 0x11, 0x99, 0x87, 0x84, 0xea, 0x6c, 0x5e, 0xb7, 0x84, 0x6a, + 0x46, 0x25, 0x60, 0xb2, 0x0e, 0x46, 0x57, 0xb2, 0xa3, 0x72, 0xaa, 0xf4, 0x6a, 0xfd, 0x70, 0xc3, + 0x58, 0x73, 0x54, 0x80, 0x66, 0x35, 0x67, 0xaa, 0xe6, 0xac, 0xe6, 0x6c, 0xdd, 0x8a, 0x34, 0x18, + 0x4a, 0x54, 0x67, 0x68, 0xbe, 0x9b, 0x86, 0x14, 0xe0, 0x42, 0x0f, 0x0b, 0x89, 0x69, 0xc2, 0xb9, + 0x8e, 0xba, 0x0f, 0x5d, 0xce, 0xac, 0x46, 0x4e, 0xd1, 0x59, 0xbd, 0x72, 0xa8, 0x9d, 0x64, 0xf9, + 0x7f, 0x38, 0x9b, 0xba, 0x48, 0xa3, 0x4c, 0x28, 0x75, 0xbb, 0xdd, 0x57, 0x17, 0x7b, 0xda, 0x48, + 0xe4, 0xef, 0xb3, 0x52, 0xb9, 0xe3, 0xa2, 0x8e, 0x3a, 0xd6, 0x27, 0xaf, 0x86, 0xa8, 0x5e, 0x3d, + 0x82, 0x65, 0x92, 0xab, 0xa3, 0x56, 0x41, 0x5d, 0x63, 0xe1, 0x68, 0x5c, 0xb9, 0x85, 0x0f, 0xfa, + 0x24, 0x5d, 0x8f, 0xa7, 0x19, 0x97, 0xf3, 0xfd, 0xde, 0x95, 0xb7, 0x71, 0x64, 0x7b, 0xc9, 0xfe, + 0x00, 0x06, 0xdb, 0x05, 0x04, 0xca, 0x84, 0x65, 0xb6, 0xee, 0xa9, 0xce, 0xe5, 0xf6, 0xc7, 0x7e, + 0xeb, 0x52, 0x1c, 0x64, 0xfd, 0x96, 0x5f, 0x9c, 0x64, 0xfd, 0xd6, 0xa3, 0xd2, 0x40, 0x4f, 0x41, + 0xcd, 0xab, 0x03, 0xd0, 0xb5, 0x6e, 0xee, 0xcf, 0xad, 0x48, 0xaa, 0xcb, 0x47, 0x35, 0x8f, 0xa7, + 0xd9, 0xe5, 0xb9, 0x33, 0x3b, 0xcd, 0xfc, 0x27, 0xda, 0xec, 0x34, 0x7b, 0xbc, 0x9d, 0x22, 0x07, + 0xc6, 0xba, 0x3d, 0x06, 0xa3, 0xae, 0x10, 0x5d, 0x1f, 0xb2, 0xab, 0x4b, 0x47, 0x31, 0x8d, 0xe9, + 0xba, 0xdd, 0x53, 0x51, 0xb7, 0x85, 0xe9, 0x7e, 0x4d, 0xcd, 0xd2, 0xf5, 0xba, 0xf6, 0xb2, 0xe0, + 0xcf, 0xbd, 0x93, 0xa2, 0xdc, 0x65, 0xc9, 0x21, 0x6e, 0x1c, 0xd9, 0x5e, 0xb2, 0xff, 0x10, 0xaa, + 0xf9, 0x15, 0x1c, 0xca, 0xc0, 0x1d, 0x5a, 0x50, 0x56, 0xaf, 0x1f, 0x7d, 0x80, 0x14, 0xf0, 0x5c, + 0x81, 0xa9, 0x1e, 0x75, 0x1b, 0xca, 0x20, 0x1e, 0x5e, 0x48, 0x56, 0x5f, 0x3d, 0xc6, 0x88, 0x84, + 0x88, 0x1e, 0xf5, 0x1a, 0xca, 0x9f, 0x56, 0xce, 0x2d, 0x28, 0x2b, 0xe2, 0x08, 0xc5, 0x20, 0xfa, + 0x54, 0x81, 0xe9, 0x5e, 0x65, 0x1a, 0xea, 0x31, 0xb1, 0x3c, 0x19, 0x37, 0x8e, 0x33, 0x24, 0x0e, + 0x89, 0xfc, 0xda, 0x24, 0x1b, 0x12, 0x87, 0x56, 0x4a, 0xd9, 0x90, 0x38, 0xbc, 0xec, 0x41, 0x3f, + 0x53, 0x92, 0x2f, 0x28, 0xdd, 0x65, 0xdc, 0xca, 0x0b, 0xf4, 0x9e, 0x5a, 0x5e, 0x3b, 0xe6, 0xa8, + 0x78, 0x8b, 0xe6, 0x56, 0x1d, 0xd9, 0x2d, 0x7a, 0x58, 0x71, 0x54, 0x6d, 0x1c, 0xd9, 0x5e, 0xb2, + 0xff, 0x54, 0x81, 0xd9, 0xde, 0xb5, 0x04, 0xba, 0xd9, 0x73, 0x5e, 0x39, 0x42, 0x6e, 0x1d, 0x6f, + 0x50, 0xb7, 0xe8, 0xe8, 0x08, 0xd1, 0xdc, 0xc9, 0xe5, 0x05, 0xe8, 0xf5, 0xa3, 0x0f, 0xc8, 0x8f, + 0x8e, 0x0e, 0x19, 0xbd, 0xa7, 0x96, 0xa7, 0xe5, 0xb5, 0x63, 0x8e, 0x12, 0x82, 0xaa, 0x67, 0x7e, + 0xf4, 0xcd, 0x67, 0x4b, 0xca, 0x5d, 0xed, 0xf3, 0xaf, 0x66, 0x95, 0x2f, 0xbe, 0x9a, 0x55, 0xfe, + 0xf9, 0xd5, 0xac, 0xf2, 0x8b, 0xaf, 0x67, 0x4f, 0x7d, 0xf1, 0xf5, 0xec, 0xa9, 0xbf, 0x7f, 0x3d, + 0x7b, 0xea, 0xc9, 0x1b, 0x47, 0xfc, 0xd9, 0xfa, 0xa0, 0x11, 0xff, 0x59, 0x51, 0xf8, 0xd4, 0x27, + 0xc1, 0x56, 0x3f, 0xff, 0xeb, 0xa1, 0x9b, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x01, 0x56, + 0xd6, 0xf8, 0x34, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4297,6 +4301,22 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.NewParticipantScoreInitializationKappa) > 0 { + for iNdEx := len(m.NewParticipantScoreInitializationKappa) - 1; iNdEx >= 0; iNdEx-- { + { + size := m.NewParticipantScoreInitializationKappa[iNdEx].Size() + i -= size + if _, err := m.NewParticipantScoreInitializationKappa[iNdEx].MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xba + } + } if len(m.InferenceOutlierDetectionAlpha) > 0 { for iNdEx := len(m.InferenceOutlierDetectionAlpha) - 1; iNdEx >= 0; iNdEx-- { { @@ -7403,6 +7423,12 @@ func (m *OptionalParams) Size() (n int) { n += 2 + l + sovTx(uint64(l)) } } + if len(m.NewParticipantScoreInitializationKappa) > 0 { + for _, e := range m.NewParticipantScoreInitializationKappa { + l = e.Size() + n += 2 + l + sovTx(uint64(l)) + } + } return n } @@ -10812,6 +10838,42 @@ func (m *OptionalParams) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 55: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewParticipantScoreInitializationKappa", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var v github_com_allora_network_allora_chain_math.Dec + m.NewParticipantScoreInitializationKappa = append(m.NewParticipantScoreInitializationKappa, v) + if err := m.NewParticipantScoreInitializationKappa[len(m.NewParticipantScoreInitializationKappa)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) From a0ecfa2fc8a1eb6ace7021c2b6bcc77809e0c7d8 Mon Sep 17 00:00:00 2001 From: Kenny Date: Wed, 18 Dec 2024 01:33:39 -0500 Subject: [PATCH 03/19] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d265d836..2b0d256d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * [#694](https://github.com/allora-network/allora-chain/pull/694) Make fuzzer whitelist aware * [#708](https://github.com/allora-network/allora-chain/pull/708) Add Emission Enabled bolean flag to Mint Module * [#703](https://github.com/allora-network/allora-chain/pull/703) Add outlier detection to inferences +* [#714](https://github.com/allora-network/allora-chain/pull/714) Add initialization of actors' EMA scores ### Changed From 707af31367dcda96e3f7a18217ddac34bc2857a5 Mon Sep 17 00:00:00 2001 From: Kenny Date: Wed, 18 Dec 2024 02:03:03 -0500 Subject: [PATCH 04/19] rm unused function; fix lint; fix missing param update; add new param to migration --- test/integration/update_params_test.go | 281 +++++++++--------- x/emissions/keeper/ema_scores.go | 41 --- x/emissions/keeper/keeper_test.go | 97 +++--- .../keeper/msgserver/msg_server_params.go | 3 + .../msgserver/msg_server_params_test.go | 193 ++++++------ .../msg_server_worker_payload_test.go | 190 ++++++------ x/emissions/migrations/v7/migrate.go | 6 +- x/emissions/migrations/v7/migrate_test.go | 1 + x/emissions/module/rewards/rewards_test.go | 89 +++--- x/emissions/types/params.go | 97 +++--- x/emissions/types/params_test.go | 52 ++++ 11 files changed, 539 insertions(+), 511 deletions(-) diff --git a/test/integration/update_params_test.go b/test/integration/update_params_test.go index 286989059..abe773ae3 100644 --- a/test/integration/update_params_test.go +++ b/test/integration/update_params_test.go @@ -46,51 +46,52 @@ func UpdateParamsChecks(m testCommon.TestConfig) { MaxTopReputersToReward: []uint64{24}, MinEpochLength: []int64{1}, // don't update the following fields - Version: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, + Version: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + NewParticipantScoreInitializationKappa: nil, }, } txResp, err := m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) @@ -105,53 +106,54 @@ func UpdateParamsChecks(m testCommon.TestConfig) { Params: &emissionstypes.OptionalParams{ EpsilonReputer: input, // don't update the following fields - Version: nil, - MaxTopReputersToReward: nil, - MinEpochLength: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, + Version: nil, + MaxTopReputersToReward: nil, + MinEpochLength: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + NewParticipantScoreInitializationKappa: nil, }, } _, err = m.Client.BroadcastTx(ctx, m.BobAcc, updateParamRequest) @@ -170,53 +172,54 @@ func UpdateParamsChecks(m testCommon.TestConfig) { Params: &emissionstypes.OptionalParams{ EpsilonReputer: input, // don't update the following fields - Version: nil, - MaxTopReputersToReward: nil, - MinEpochLength: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, + Version: nil, + MaxTopReputersToReward: nil, + MinEpochLength: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + NewParticipantScoreInitializationKappa: nil, }, } txResp, err = m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) diff --git a/x/emissions/keeper/ema_scores.go b/x/emissions/keeper/ema_scores.go index 01c317377..69b198276 100644 --- a/x/emissions/keeper/ema_scores.go +++ b/x/emissions/keeper/ema_scores.go @@ -236,44 +236,3 @@ func (k *Keeper) CalcAndSaveReputerScoreEmaWithLastSavedTopicQuantile( types.EmitNewActorEMAScoresSetEvent(ctx, types.ActorType_ACTOR_TYPE_REPUTER, emaScores, activeArr) return nil } - -// helper function to calculate initial score for new participants -func (k *Keeper) calculateInitialScore( - ctx context.Context, - topicId TopicId, - address ActorId, - lowestScore types.Score, - last25thPercentile alloraMath.Dec, -) (types.Score, error) { - // Get kappa parameter from module params - params, err := k.GetParams(ctx) - if err != nil { - return types.Score{}, errors.Wrapf(err, "error getting module params") - } - kappa := params.NewParticipantScoreInitializationKappa - - // Calculate initial score using formula: (1+kappa)*lowestScore-kappa*last25thPercentile - onePlusKappa, err := alloraMath.NewDecFromInt64(1).Add(kappa) - if err != nil { - return types.Score{}, errors.Wrapf(err, "error creating 1+kappa") - } - lowestScoreMul, err := lowestScore.Score.Mul(onePlusKappa) - if err != nil { - return types.Score{}, errors.Wrapf(err, "error multiplying lowest score by 1+kappa") - } - last25thPercentileMul, err := last25thPercentile.Mul(kappa) - if err != nil { - return types.Score{}, errors.Wrapf(err, "error multiplying last 25th percentile by kappa") - } - initialScore, err := lowestScoreMul.Sub(last25thPercentileMul) - if err != nil { - return types.Score{}, errors.Wrapf(err, "error calculating initial score") - } - - return types.Score{ - TopicId: topicId, - Address: address, - Score: initialScore, - BlockHeight: 0, - }, nil -} diff --git a/x/emissions/keeper/keeper_test.go b/x/emissions/keeper/keeper_test.go index b44546fe1..e4c1eea5c 100644 --- a/x/emissions/keeper/keeper_test.go +++ b/x/emissions/keeper/keeper_test.go @@ -3938,54 +3938,55 @@ func (s *KeeperTestSuite) TestAppendInferenceWithResetActiveWorkers() { func mockUninitializedParams() types.Params { return types.Params{ - Version: "v2", - MinTopicWeight: alloraMath.MustNewDecFromString("0"), - RequiredMinimumStake: cosmosMath.NewInt(0), - RemoveStakeDelayWindow: 0, - MinEpochLength: 1, - BetaEntropy: alloraMath.MustNewDecFromString("0"), - LearningRate: alloraMath.MustNewDecFromString("0.0001"), - GradientDescentMaxIters: uint64(100), - MaxGradientThreshold: alloraMath.MustNewDecFromString("0.0001"), - MinStakeFraction: alloraMath.MustNewDecFromString("0"), - EpsilonReputer: alloraMath.MustNewDecFromString("0.0001"), - EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0001"), - MaxUnfulfilledWorkerRequests: uint64(0), - MaxUnfulfilledReputerRequests: uint64(0), - TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0"), - TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0"), - TopicRewardAlpha: alloraMath.MustNewDecFromString("0.1"), - TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), - ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0"), - MaxSamplesToScaleScores: uint64(10), - MaxTopInferersToReward: uint64(0), - MaxTopForecastersToReward: uint64(0), - MaxTopReputersToReward: uint64(0), - CreateTopicFee: cosmosMath.NewInt(0), - RegistrationFee: cosmosMath.NewInt(0), - DefaultPageLimit: uint64(0), - MaxPageLimit: uint64(0), - MinEpochLengthRecordLimit: int64(0), - MaxSerializedMsgLength: int64(0), - BlocksPerMonth: uint64(864000), - PRewardInference: alloraMath.NewDecFromInt64(1), - PRewardForecast: alloraMath.NewDecFromInt64(1), - PRewardReputer: alloraMath.NewDecFromInt64(1), - CRewardInference: alloraMath.MustNewDecFromString("0.1"), - CRewardForecast: alloraMath.MustNewDecFromString("0.1"), - CNorm: alloraMath.MustNewDecFromString("0.1"), - HalfMaxProcessStakeRemovalsEndBlock: uint64(1), - DataSendingFee: cosmosMath.NewInt(0), - MaxElementsPerForecast: uint64(0), - MaxActiveTopicsPerBlock: uint64(0), - MaxStringLength: uint64(0), - InitialRegretQuantile: alloraMath.ZeroDec(), - PNormSafeDiv: alloraMath.ZeroDec(), - GlobalWhitelistEnabled: true, - TopicCreatorWhitelistEnabled: true, - MinExperiencedWorkerRegrets: uint64(10), - InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), - InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), + Version: "v2", + MinTopicWeight: alloraMath.MustNewDecFromString("0"), + RequiredMinimumStake: cosmosMath.NewInt(0), + RemoveStakeDelayWindow: 0, + MinEpochLength: 1, + BetaEntropy: alloraMath.MustNewDecFromString("0"), + LearningRate: alloraMath.MustNewDecFromString("0.0001"), + GradientDescentMaxIters: uint64(100), + MaxGradientThreshold: alloraMath.MustNewDecFromString("0.0001"), + MinStakeFraction: alloraMath.MustNewDecFromString("0"), + EpsilonReputer: alloraMath.MustNewDecFromString("0.0001"), + EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0001"), + MaxUnfulfilledWorkerRequests: uint64(0), + MaxUnfulfilledReputerRequests: uint64(0), + TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0"), + TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0"), + TopicRewardAlpha: alloraMath.MustNewDecFromString("0.1"), + TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), + ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0"), + MaxSamplesToScaleScores: uint64(10), + MaxTopInferersToReward: uint64(0), + MaxTopForecastersToReward: uint64(0), + MaxTopReputersToReward: uint64(0), + CreateTopicFee: cosmosMath.NewInt(0), + RegistrationFee: cosmosMath.NewInt(0), + DefaultPageLimit: uint64(0), + MaxPageLimit: uint64(0), + MinEpochLengthRecordLimit: int64(0), + MaxSerializedMsgLength: int64(0), + BlocksPerMonth: uint64(864000), + PRewardInference: alloraMath.NewDecFromInt64(1), + PRewardForecast: alloraMath.NewDecFromInt64(1), + PRewardReputer: alloraMath.NewDecFromInt64(1), + CRewardInference: alloraMath.MustNewDecFromString("0.1"), + CRewardForecast: alloraMath.MustNewDecFromString("0.1"), + CNorm: alloraMath.MustNewDecFromString("0.1"), + HalfMaxProcessStakeRemovalsEndBlock: uint64(1), + DataSendingFee: cosmosMath.NewInt(0), + MaxElementsPerForecast: uint64(0), + MaxActiveTopicsPerBlock: uint64(0), + MaxStringLength: uint64(0), + InitialRegretQuantile: alloraMath.ZeroDec(), + PNormSafeDiv: alloraMath.ZeroDec(), + GlobalWhitelistEnabled: true, + TopicCreatorWhitelistEnabled: true, + MinExperiencedWorkerRegrets: uint64(10), + InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), + InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), + NewParticipantScoreInitializationKappa: alloraMath.MustNewDecFromString("0.1"), } } diff --git a/x/emissions/keeper/msgserver/msg_server_params.go b/x/emissions/keeper/msgserver/msg_server_params.go index 8634c4c71..37d7bcd5a 100644 --- a/x/emissions/keeper/msgserver/msg_server_params.go +++ b/x/emissions/keeper/msgserver/msg_server_params.go @@ -171,6 +171,9 @@ func (ms msgServer) UpdateParams(ctx context.Context, msg *types.UpdateParamsReq if len(newParams.InferenceOutlierDetectionAlpha) == 1 { existingParams.InferenceOutlierDetectionAlpha = newParams.InferenceOutlierDetectionAlpha[0] } + if len(newParams.NewParticipantScoreInitializationKappa) == 1 { + existingParams.NewParticipantScoreInitializationKappa = newParams.NewParticipantScoreInitializationKappa[0] + } err = existingParams.Validate() if err != nil { return nil, err diff --git a/x/emissions/keeper/msgserver/msg_server_params_test.go b/x/emissions/keeper/msgserver/msg_server_params_test.go index e988a0bb9..712ba9971 100644 --- a/x/emissions/keeper/msgserver/msg_server_params_test.go +++ b/x/emissions/keeper/msgserver/msg_server_params_test.go @@ -20,54 +20,55 @@ func (s *MsgServerTestSuite) TestUpdateAllParams() { require.NoError(err) newParams := &types.OptionalParams{ - Version: []string{"1234"}, - MinTopicWeight: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - RequiredMinimumStake: []cosmosMath.Int{cosmosMath.NewInt(1234)}, - RemoveStakeDelayWindow: []int64{1234}, - MinEpochLength: []int64{1234}, - BetaEntropy: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - LearningRate: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - GradientDescentMaxIters: []uint64{1234}, - MaxGradientThreshold: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - MinStakeFraction: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - EpsilonReputer: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - MaxUnfulfilledWorkerRequests: []uint64{1234}, - MaxUnfulfilledReputerRequests: []uint64{1234}, - TopicRewardStakeImportance: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - TopicRewardFeeRevenueImportance: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - TopicRewardAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - TaskRewardAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - ValidatorsVsAlloraPercentReward: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - MaxSamplesToScaleScores: []uint64{1234}, - MaxTopInferersToReward: []uint64{1234}, - MaxTopForecastersToReward: []uint64{1234}, - MaxTopReputersToReward: []uint64{1234}, - CreateTopicFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, - RegistrationFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, - DefaultPageLimit: []uint64{1234}, - MaxPageLimit: []uint64{1234}, - MinEpochLengthRecordLimit: []int64{1234}, - MaxSerializedMsgLength: []int64{1234}, - PRewardInference: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - PRewardForecast: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - PRewardReputer: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - CRewardInference: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - CRewardForecast: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - CNorm: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - BlocksPerMonth: []uint64{1234}, - HalfMaxProcessStakeRemovalsEndBlock: []uint64{1234}, - DataSendingFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, - EpsilonSafeDiv: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - MaxElementsPerForecast: []uint64{1234}, - MaxActiveTopicsPerBlock: []uint64{1234}, - MaxStringLength: []uint64{1234}, - InitialRegretQuantile: []alloraMath.Dec{alloraMath.ZeroDec()}, - PNormSafeDiv: []alloraMath.Dec{alloraMath.ZeroDec()}, - GlobalWhitelistEnabled: []bool{true}, - TopicCreatorWhitelistEnabled: []bool{true}, - MinExperiencedWorkerRegrets: []uint64{1234}, - InferenceOutlierDetectionThreshold: []alloraMath.Dec{alloraMath.MustNewDecFromString("11")}, - InferenceOutlierDetectionAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString("0.2")}, + Version: []string{"1234"}, + MinTopicWeight: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + RequiredMinimumStake: []cosmosMath.Int{cosmosMath.NewInt(1234)}, + RemoveStakeDelayWindow: []int64{1234}, + MinEpochLength: []int64{1234}, + BetaEntropy: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + LearningRate: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + GradientDescentMaxIters: []uint64{1234}, + MaxGradientThreshold: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + MinStakeFraction: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + EpsilonReputer: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + MaxUnfulfilledWorkerRequests: []uint64{1234}, + MaxUnfulfilledReputerRequests: []uint64{1234}, + TopicRewardStakeImportance: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + TopicRewardFeeRevenueImportance: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + TopicRewardAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + TaskRewardAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + ValidatorsVsAlloraPercentReward: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + MaxSamplesToScaleScores: []uint64{1234}, + MaxTopInferersToReward: []uint64{1234}, + MaxTopForecastersToReward: []uint64{1234}, + MaxTopReputersToReward: []uint64{1234}, + CreateTopicFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, + RegistrationFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, + DefaultPageLimit: []uint64{1234}, + MaxPageLimit: []uint64{1234}, + MinEpochLengthRecordLimit: []int64{1234}, + MaxSerializedMsgLength: []int64{1234}, + PRewardInference: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + PRewardForecast: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + PRewardReputer: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + CRewardInference: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + CRewardForecast: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + CNorm: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + BlocksPerMonth: []uint64{1234}, + HalfMaxProcessStakeRemovalsEndBlock: []uint64{1234}, + DataSendingFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, + EpsilonSafeDiv: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + MaxElementsPerForecast: []uint64{1234}, + MaxActiveTopicsPerBlock: []uint64{1234}, + MaxStringLength: []uint64{1234}, + InitialRegretQuantile: []alloraMath.Dec{alloraMath.ZeroDec()}, + PNormSafeDiv: []alloraMath.Dec{alloraMath.ZeroDec()}, + GlobalWhitelistEnabled: []bool{true}, + TopicCreatorWhitelistEnabled: []bool{true}, + MinExperiencedWorkerRegrets: []uint64{1234}, + InferenceOutlierDetectionThreshold: []alloraMath.Dec{alloraMath.MustNewDecFromString("11")}, + InferenceOutlierDetectionAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString("0.2")}, + NewParticipantScoreInitializationKappa: []alloraMath.Dec{alloraMath.MustNewDecFromString("1")}, } updateMsg := &types.UpdateParamsRequest{ @@ -130,6 +131,7 @@ func (s *MsgServerTestSuite) TestUpdateAllParams() { require.Equal(newParams.MinExperiencedWorkerRegrets[0], updatedParams.MinExperiencedWorkerRegrets) require.Equal(newParams.InferenceOutlierDetectionThreshold[0], updatedParams.InferenceOutlierDetectionThreshold) require.Equal(newParams.InferenceOutlierDetectionAlpha[0], updatedParams.InferenceOutlierDetectionAlpha) + require.Equal(newParams.NewParticipantScoreInitializationKappa[0], updatedParams.NewParticipantScoreInitializationKappa) } func (s *MsgServerTestSuite) TestUpdateParamsNonWhitelistedUser() { @@ -144,53 +146,54 @@ func (s *MsgServerTestSuite) TestUpdateParamsNonWhitelistedUser() { newParams := &types.OptionalParams{ Version: []string{"2.0"}, // example of changing the version // don't update the following params - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - MinEpochLength: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - MaxTopReputersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - EpsilonReputer: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + MinEpochLength: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + MaxTopReputersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + EpsilonReputer: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + NewParticipantScoreInitializationKappa: nil, } // Creating the UpdateParamsRequest message with a non-whitelisted user diff --git a/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go b/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go index 621d52e5a..b735aa569 100644 --- a/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go +++ b/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go @@ -319,53 +319,54 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithFewTopElementsPerFore newParams := &types.OptionalParams{ MaxElementsPerForecast: []uint64{3}, // not updated - Version: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - MinEpochLength: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - MaxTopReputersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - EpsilonReputer: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, + Version: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + MinEpochLength: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + MaxTopReputersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + EpsilonReputer: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + NewParticipantScoreInitializationKappa: nil, } updateMsg := &types.UpdateParamsRequest{ @@ -721,53 +722,54 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithLowScoreForecastsAreR newParams := &types.OptionalParams{ MaxElementsPerForecast: []uint64{3}, // not updated - Version: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - MinEpochLength: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - MaxTopReputersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - EpsilonReputer: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, + Version: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + MinEpochLength: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + MaxTopReputersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + EpsilonReputer: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + NewParticipantScoreInitializationKappa: nil, } updateMsg := &types.UpdateParamsRequest{ diff --git a/x/emissions/migrations/v7/migrate.go b/x/emissions/migrations/v7/migrate.go index 1dc2a3441..e7e0df4aa 100644 --- a/x/emissions/migrations/v7/migrate.go +++ b/x/emissions/migrations/v7/migrate.go @@ -55,6 +55,7 @@ func MigrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCo // ADDED: // InferenceOutlierDetectionAlpha // InferenceOutlierDetectionThreshold + // NewParticipantScoreInitializationKappa newParams := emissionstypes.Params{ //nolint: exhaustruct Version: oldParams.Version, MaxSerializedMsgLength: oldParams.MaxSerializedMsgLength, @@ -103,8 +104,9 @@ func MigrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCo TopicCreatorWhitelistEnabled: oldParams.TopicCreatorWhitelistEnabled, MinExperiencedWorkerRegrets: oldParams.MinExperiencedWorkerRegrets, // NEW PARAMS - InferenceOutlierDetectionThreshold: defaultParams.InferenceOutlierDetectionThreshold, - InferenceOutlierDetectionAlpha: defaultParams.InferenceOutlierDetectionAlpha, + InferenceOutlierDetectionThreshold: defaultParams.InferenceOutlierDetectionThreshold, + InferenceOutlierDetectionAlpha: defaultParams.InferenceOutlierDetectionAlpha, + NewParticipantScoreInitializationKappa: defaultParams.NewParticipantScoreInitializationKappa, } ctx.Logger().Info(fmt.Sprintf("MIGRATED PARAMS: %+v", newParams)) diff --git a/x/emissions/migrations/v7/migrate_test.go b/x/emissions/migrations/v7/migrate_test.go index 111325ed4..a97ea63f3 100644 --- a/x/emissions/migrations/v7/migrate_test.go +++ b/x/emissions/migrations/v7/migrate_test.go @@ -184,4 +184,5 @@ func (s *EmissionsV6MigrationTestSuite) TestMigrateParams() { s.Require().Equal(paramsExpected.MinExperiencedWorkerRegrets, params.MinExperiencedWorkerRegrets) s.Require().Equal(paramsExpected.InferenceOutlierDetectionThreshold, params.InferenceOutlierDetectionThreshold) s.Require().Equal(paramsExpected.InferenceOutlierDetectionAlpha, params.InferenceOutlierDetectionAlpha) + s.Require().Equal(paramsExpected.NewParticipantScoreInitializationKappa, params.NewParticipantScoreInitializationKappa) } diff --git a/x/emissions/module/rewards/rewards_test.go b/x/emissions/module/rewards/rewards_test.go index a2303e2bd..c613b23f5 100644 --- a/x/emissions/module/rewards/rewards_test.go +++ b/x/emissions/module/rewards/rewards_test.go @@ -2175,50 +2175,51 @@ func (s *RewardsTestSuite) SetParamsForTest() { RegistrationFee: []cosmosMath.Int{cosmosMath.NewInt(6)}, MaxActiveTopicsPerBlock: []uint64{2}, // the following fields are not set - Version: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopForecastersToReward: nil, - MaxTopReputersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - EpsilonReputer: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, + Version: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopForecastersToReward: nil, + MaxTopReputersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + EpsilonReputer: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + NewParticipantScoreInitializationKappa: nil, } updateMsg := &types.UpdateParamsRequest{ diff --git a/x/emissions/types/params.go b/x/emissions/types/params.go index b967dd516..6b6998855 100644 --- a/x/emissions/types/params.go +++ b/x/emissions/types/params.go @@ -12,54 +12,55 @@ import ( // DefaultParams returns default module parameters. func DefaultParams() Params { return Params{ - Version: "v2", // version of the protocol should be in lockstep with github release tag version - MinTopicWeight: alloraMath.MustNewDecFromString("100"), // total weight for a topic < this => don't run inference solicatation or loss update - RequiredMinimumStake: cosmosMath.NewInt(10000), // minimum stake required to be a worker or reputer - RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), // ~approx 3 weeks assuming 3 second block time, number of blocks to wait before finalizing a stake withdrawal - MinEpochLength: 12, // shortest number of blocks per epoch topics are allowed to set as their cadence - BetaEntropy: alloraMath.MustNewDecFromString("0.25"), // controls resilience of reward payouts against copycat workers - LearningRate: alloraMath.MustNewDecFromString("0.05"), // speed of gradient descent - GradientDescentMaxIters: uint64(10), // max iterations on gradient descent - MaxGradientThreshold: alloraMath.MustNewDecFromString("0.001"), // gradient descent stops when gradient falls below this - MinStakeFraction: alloraMath.MustNewDecFromString("0.5"), // minimum fraction of stake that should be listened to when setting consensus listening coefficients - EpsilonReputer: alloraMath.MustNewDecFromString("0.01"), // a small tolerance quantity used to cap reputer scores at infinitesimally close proximities - EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0000001"), // a small tolerance quantity used to cap division by zero - MaxUnfulfilledWorkerRequests: uint64(100), // maximum number of outstanding nonces for worker requests per topic from the chain; needs to be bigger to account for varying topic ground truth lag - MaxUnfulfilledReputerRequests: uint64(100), // maximum number of outstanding nonces for reputer requests per topic from the chain; needs to be bigger to account for varying topic ground truth lag - TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0.5"), // importance of stake in determining rewards for a topic - TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0.5"), // importance of fee revenue in determining rewards for a topic - TopicRewardAlpha: alloraMath.MustNewDecFromString("0.5"), // alpha for topic reward calculation; coupled with blocktime, or how often rewards are calculated - TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), // alpha for task reward calculation used to calculate ~U_ij, ~V_ik, ~W_im - ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0.25"), // 25% rewards go to cosmos network validators - MaxSamplesToScaleScores: uint64(10), // maximum number of previous scores to store and use for standard deviation calculation - MaxTopInferersToReward: uint64(32), // max this many top inferers by score are rewarded for a topic - MaxTopForecastersToReward: uint64(6), // max this many top forecasters by score are rewarded for a topic - MaxTopReputersToReward: uint64(6), // max this many top reputers by score are rewarded for a topic - CreateTopicFee: cosmosMath.NewInt(75000), // topic registration fee - RegistrationFee: cosmosMath.NewInt(200), // how much workers and reputers must pay to register per topic - DefaultPageLimit: uint64(100), // how many topics to return per page during churn of requests - MaxPageLimit: uint64(1000), // max limit for pagination - MinEpochLengthRecordLimit: int64(3), // minimum number of epochs to keep records for a topic - MaxSerializedMsgLength: int64(1000 * 1000), // maximum size of data to msg and query server in bytes - BlocksPerMonth: uint64(864000), // ~3 seconds block time, assuming 30 days in a month 60 * 60 * 24 * 30 / 3 - PRewardInference: alloraMath.NewDecFromInt64(3), // fiducial value for rewards calculation - PRewardForecast: alloraMath.NewDecFromInt64(3), // fiducial value for rewards calculation - PRewardReputer: alloraMath.NewDecFromInt64(1), // fiducial value for rewards calculation - CRewardInference: alloraMath.MustNewDecFromString("0.75"), // fiducial value for rewards calculation - CRewardForecast: alloraMath.MustNewDecFromString("0.75"), // fiducial value for rewards calculation - CNorm: alloraMath.MustNewDecFromString("0.75"), // fiducial value for inference synthesis - HalfMaxProcessStakeRemovalsEndBlock: uint64(40), // half of the max number of stake removals to process at the end of the block, set this too big and blocks require too much time to process, slowing down consensus - DataSendingFee: cosmosMath.NewInt(10), // how much workers and reputers must pay to send payload - MaxElementsPerForecast: uint64(12), // top forecast elements by score - MaxActiveTopicsPerBlock: uint64(1), // maximum number of active topics per block - MaxStringLength: uint64(255), // maximum length of strings uploaded to the chain - InitialRegretQuantile: alloraMath.MustNewDecFromString("0.25"), // quantile value for getting initial regret during network regret calculation - PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), // pnorm divide value to calculate offset with cnorm - GlobalWhitelistEnabled: true, // global whitelist enabled => all global whitelisted actors can create topics and participate in all topics as workers and reputers - TopicCreatorWhitelistEnabled: true, // topic creator whitelist enabled => all topic creator whitelisted actors can create topics - MinExperiencedWorkerRegrets: uint64(10), // minimum number of experienced workers required to use their regrets for calculating the topic initial regret - InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), // threshold for inference outlier detection - InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), // alpha for inference outlier detection + Version: "v2", // version of the protocol should be in lockstep with github release tag version + MinTopicWeight: alloraMath.MustNewDecFromString("100"), // total weight for a topic < this => don't run inference solicatation or loss update + RequiredMinimumStake: cosmosMath.NewInt(10000), // minimum stake required to be a worker or reputer + RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), // ~approx 3 weeks assuming 3 second block time, number of blocks to wait before finalizing a stake withdrawal + MinEpochLength: 12, // shortest number of blocks per epoch topics are allowed to set as their cadence + BetaEntropy: alloraMath.MustNewDecFromString("0.25"), // controls resilience of reward payouts against copycat workers + LearningRate: alloraMath.MustNewDecFromString("0.05"), // speed of gradient descent + GradientDescentMaxIters: uint64(10), // max iterations on gradient descent + MaxGradientThreshold: alloraMath.MustNewDecFromString("0.001"), // gradient descent stops when gradient falls below this + MinStakeFraction: alloraMath.MustNewDecFromString("0.5"), // minimum fraction of stake that should be listened to when setting consensus listening coefficients + EpsilonReputer: alloraMath.MustNewDecFromString("0.01"), // a small tolerance quantity used to cap reputer scores at infinitesimally close proximities + EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0000001"), // a small tolerance quantity used to cap division by zero + MaxUnfulfilledWorkerRequests: uint64(100), // maximum number of outstanding nonces for worker requests per topic from the chain; needs to be bigger to account for varying topic ground truth lag + MaxUnfulfilledReputerRequests: uint64(100), // maximum number of outstanding nonces for reputer requests per topic from the chain; needs to be bigger to account for varying topic ground truth lag + TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0.5"), // importance of stake in determining rewards for a topic + TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0.5"), // importance of fee revenue in determining rewards for a topic + TopicRewardAlpha: alloraMath.MustNewDecFromString("0.5"), // alpha for topic reward calculation; coupled with blocktime, or how often rewards are calculated + TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), // alpha for task reward calculation used to calculate ~U_ij, ~V_ik, ~W_im + ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0.25"), // 25% rewards go to cosmos network validators + MaxSamplesToScaleScores: uint64(10), // maximum number of previous scores to store and use for standard deviation calculation + MaxTopInferersToReward: uint64(32), // max this many top inferers by score are rewarded for a topic + MaxTopForecastersToReward: uint64(6), // max this many top forecasters by score are rewarded for a topic + MaxTopReputersToReward: uint64(6), // max this many top reputers by score are rewarded for a topic + CreateTopicFee: cosmosMath.NewInt(75000), // topic registration fee + RegistrationFee: cosmosMath.NewInt(200), // how much workers and reputers must pay to register per topic + DefaultPageLimit: uint64(100), // how many topics to return per page during churn of requests + MaxPageLimit: uint64(1000), // max limit for pagination + MinEpochLengthRecordLimit: int64(3), // minimum number of epochs to keep records for a topic + MaxSerializedMsgLength: int64(1000 * 1000), // maximum size of data to msg and query server in bytes + BlocksPerMonth: uint64(864000), // ~3 seconds block time, assuming 30 days in a month 60 * 60 * 24 * 30 / 3 + PRewardInference: alloraMath.NewDecFromInt64(3), // fiducial value for rewards calculation + PRewardForecast: alloraMath.NewDecFromInt64(3), // fiducial value for rewards calculation + PRewardReputer: alloraMath.NewDecFromInt64(1), // fiducial value for rewards calculation + CRewardInference: alloraMath.MustNewDecFromString("0.75"), // fiducial value for rewards calculation + CRewardForecast: alloraMath.MustNewDecFromString("0.75"), // fiducial value for rewards calculation + CNorm: alloraMath.MustNewDecFromString("0.75"), // fiducial value for inference synthesis + HalfMaxProcessStakeRemovalsEndBlock: uint64(40), // half of the max number of stake removals to process at the end of the block, set this too big and blocks require too much time to process, slowing down consensus + DataSendingFee: cosmosMath.NewInt(10), // how much workers and reputers must pay to send payload + MaxElementsPerForecast: uint64(12), // top forecast elements by score + MaxActiveTopicsPerBlock: uint64(1), // maximum number of active topics per block + MaxStringLength: uint64(255), // maximum length of strings uploaded to the chain + InitialRegretQuantile: alloraMath.MustNewDecFromString("0.25"), // quantile value for getting initial regret during network regret calculation + PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), // pnorm divide value to calculate offset with cnorm + GlobalWhitelistEnabled: true, // global whitelist enabled => all global whitelisted actors can create topics and participate in all topics as workers and reputers + TopicCreatorWhitelistEnabled: true, // topic creator whitelist enabled => all topic creator whitelisted actors can create topics + MinExperiencedWorkerRegrets: uint64(10), // minimum number of experienced workers required to use their regrets for calculating the topic initial regret + InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), // threshold for inference outlier detection + InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), // alpha for inference outlier detection + NewParticipantScoreInitializationKappa: alloraMath.MustNewDecFromString("0.01"), // kappa for new participant score initialization } } diff --git a/x/emissions/types/params_test.go b/x/emissions/types/params_test.go index b0fe877df..9e8e5a7ed 100644 --- a/x/emissions/types/params_test.go +++ b/x/emissions/types/params_test.go @@ -10,6 +10,7 @@ import ( func TestDefaultParams(t *testing.T) { expectedParams := Params{ +<<<<<<< HEAD Version: "v2", MinTopicWeight: alloraMath.MustNewDecFromString("100"), RequiredMinimumStake: cosmosMath.NewInt(10000), @@ -58,6 +59,57 @@ func TestDefaultParams(t *testing.T) { MinExperiencedWorkerRegrets: uint64(10), InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), +======= + Version: "v2", + MinTopicWeight: alloraMath.MustNewDecFromString("100"), + RequiredMinimumStake: cosmosMath.NewInt(10000), + RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), + MinEpochLength: 12, + BetaEntropy: alloraMath.MustNewDecFromString("0.25"), + LearningRate: alloraMath.MustNewDecFromString("0.05"), + GradientDescentMaxIters: uint64(10), + MaxGradientThreshold: alloraMath.MustNewDecFromString("0.001"), + MinStakeFraction: alloraMath.MustNewDecFromString("0.5"), + EpsilonReputer: alloraMath.MustNewDecFromString("0.01"), + EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0000001"), + MaxUnfulfilledWorkerRequests: uint64(100), + MaxUnfulfilledReputerRequests: uint64(100), + TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0.5"), + TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0.5"), + TopicRewardAlpha: alloraMath.MustNewDecFromString("0.5"), + TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), + ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0.25"), + MaxSamplesToScaleScores: uint64(10), + MaxTopInferersToReward: uint64(32), + MaxTopForecastersToReward: uint64(6), + MaxTopReputersToReward: uint64(6), + CreateTopicFee: cosmosMath.NewInt(75000), + RegistrationFee: cosmosMath.NewInt(200), + DefaultPageLimit: uint64(100), + MaxPageLimit: uint64(1000), + MinEpochLengthRecordLimit: int64(3), + MaxSerializedMsgLength: int64(1000 * 1000), + BlocksPerMonth: uint64(864000), + PRewardInference: alloraMath.NewDecFromInt64(1), + PRewardForecast: alloraMath.NewDecFromInt64(3), + PRewardReputer: alloraMath.NewDecFromInt64(3), + CRewardInference: alloraMath.MustNewDecFromString("0.75"), + CRewardForecast: alloraMath.MustNewDecFromString("0.75"), + CNorm: alloraMath.MustNewDecFromString("0.75"), + HalfMaxProcessStakeRemovalsEndBlock: uint64(40), + DataSendingFee: cosmosMath.NewInt(10), + MaxElementsPerForecast: uint64(12), + MaxActiveTopicsPerBlock: uint64(1), + MaxStringLength: uint64(255), + InitialRegretQuantile: alloraMath.MustNewDecFromString("0.25"), + PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), + GlobalWhitelistEnabled: true, + TopicCreatorWhitelistEnabled: true, + MinExperiencedWorkerRegrets: uint64(10), + InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), + InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), + NewParticipantScoreInitializationKappa: alloraMath.MustNewDecFromString("0.01"), +>>>>>>> dd8c6419 (rm unused function; fix lint; fix missing param update; add new param to migration) } params := DefaultParams() From 866e2f109920f0fe4b601d624458f20ddbc237fc Mon Sep 17 00:00:00 2001 From: Kenny Date: Wed, 18 Dec 2024 02:57:54 -0500 Subject: [PATCH 05/19] missing merge conf resolution --- x/emissions/types/params_test.go | 55 ++------------------------------ 1 file changed, 2 insertions(+), 53 deletions(-) diff --git a/x/emissions/types/params_test.go b/x/emissions/types/params_test.go index 9e8e5a7ed..82d6888c8 100644 --- a/x/emissions/types/params_test.go +++ b/x/emissions/types/params_test.go @@ -10,56 +10,6 @@ import ( func TestDefaultParams(t *testing.T) { expectedParams := Params{ -<<<<<<< HEAD - Version: "v2", - MinTopicWeight: alloraMath.MustNewDecFromString("100"), - RequiredMinimumStake: cosmosMath.NewInt(10000), - RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), - MinEpochLength: 12, - BetaEntropy: alloraMath.MustNewDecFromString("0.25"), - LearningRate: alloraMath.MustNewDecFromString("0.05"), - GradientDescentMaxIters: uint64(10), - MaxGradientThreshold: alloraMath.MustNewDecFromString("0.001"), - MinStakeFraction: alloraMath.MustNewDecFromString("0.5"), - EpsilonReputer: alloraMath.MustNewDecFromString("0.01"), - EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0000001"), - MaxUnfulfilledWorkerRequests: uint64(100), - MaxUnfulfilledReputerRequests: uint64(100), - TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0.5"), - TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0.5"), - TopicRewardAlpha: alloraMath.MustNewDecFromString("0.5"), - TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), - ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0.25"), - MaxSamplesToScaleScores: uint64(10), - MaxTopInferersToReward: uint64(32), - MaxTopForecastersToReward: uint64(6), - MaxTopReputersToReward: uint64(6), - CreateTopicFee: cosmosMath.NewInt(75000), - RegistrationFee: cosmosMath.NewInt(200), - DefaultPageLimit: uint64(100), - MaxPageLimit: uint64(1000), - MinEpochLengthRecordLimit: int64(3), - MaxSerializedMsgLength: int64(1000 * 1000), - BlocksPerMonth: uint64(864000), - PRewardInference: alloraMath.NewDecFromInt64(3), - PRewardForecast: alloraMath.NewDecFromInt64(3), - PRewardReputer: alloraMath.NewDecFromInt64(1), - CRewardInference: alloraMath.MustNewDecFromString("0.75"), - CRewardForecast: alloraMath.MustNewDecFromString("0.75"), - CNorm: alloraMath.MustNewDecFromString("0.75"), - HalfMaxProcessStakeRemovalsEndBlock: uint64(40), - DataSendingFee: cosmosMath.NewInt(10), - MaxElementsPerForecast: uint64(12), - MaxActiveTopicsPerBlock: uint64(1), - MaxStringLength: uint64(255), - InitialRegretQuantile: alloraMath.MustNewDecFromString("0.25"), - PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), - GlobalWhitelistEnabled: true, - TopicCreatorWhitelistEnabled: true, - MinExperiencedWorkerRegrets: uint64(10), - InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), - InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), -======= Version: "v2", MinTopicWeight: alloraMath.MustNewDecFromString("100"), RequiredMinimumStake: cosmosMath.NewInt(10000), @@ -90,9 +40,9 @@ func TestDefaultParams(t *testing.T) { MinEpochLengthRecordLimit: int64(3), MaxSerializedMsgLength: int64(1000 * 1000), BlocksPerMonth: uint64(864000), - PRewardInference: alloraMath.NewDecFromInt64(1), + PRewardInference: alloraMath.NewDecFromInt64(3), PRewardForecast: alloraMath.NewDecFromInt64(3), - PRewardReputer: alloraMath.NewDecFromInt64(3), + PRewardReputer: alloraMath.NewDecFromInt64(1), CRewardInference: alloraMath.MustNewDecFromString("0.75"), CRewardForecast: alloraMath.MustNewDecFromString("0.75"), CNorm: alloraMath.MustNewDecFromString("0.75"), @@ -109,7 +59,6 @@ func TestDefaultParams(t *testing.T) { InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), NewParticipantScoreInitializationKappa: alloraMath.MustNewDecFromString("0.01"), ->>>>>>> dd8c6419 (rm unused function; fix lint; fix missing param update; add new param to migration) } params := DefaultParams() From e7d4f3157d56251fd02e47bfe90831df3aa4c506 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 12:39:13 -0300 Subject: [PATCH 06/19] Add new lambda param --- test/integration/update_params_test.go | 6 +- x/emissions/api/emissions/v7/params.pulsar.go | 222 ++- x/emissions/api/emissions/v7/tx.pulsar.go | 1342 ++++++++--------- .../keeper/msgserver/msg_server_params.go | 4 +- .../msgserver/msg_server_params_test.go | 196 +-- x/emissions/migrations/v7/migrate.go | 6 +- x/emissions/migrations/v7/migrate_test.go | 2 +- x/emissions/module/rewards/rewards_test.go | 90 +- x/emissions/proto/emissions/v7/params.proto | 3 +- x/emissions/proto/emissions/v7/tx.proto | 2 +- x/emissions/types/params.pb.go | 214 +-- x/emissions/types/tx.pb.go | 522 ++++--- 12 files changed, 1302 insertions(+), 1307 deletions(-) diff --git a/test/integration/update_params_test.go b/test/integration/update_params_test.go index abe773ae3..f1b3b325c 100644 --- a/test/integration/update_params_test.go +++ b/test/integration/update_params_test.go @@ -91,7 +91,7 @@ func UpdateParamsChecks(m testCommon.TestConfig) { MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - NewParticipantScoreInitializationKappa: nil, + SortitionLambdaPenalty: nil, }, } txResp, err := m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) @@ -153,7 +153,7 @@ func UpdateParamsChecks(m testCommon.TestConfig) { MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - NewParticipantScoreInitializationKappa: nil, + SortitionLambdaPenalty: nil, }, } _, err = m.Client.BroadcastTx(ctx, m.BobAcc, updateParamRequest) @@ -219,7 +219,7 @@ func UpdateParamsChecks(m testCommon.TestConfig) { MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - NewParticipantScoreInitializationKappa: nil, + SortitionLambdaPenalty: nil, }, } txResp, err = m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) diff --git a/x/emissions/api/emissions/v7/params.pulsar.go b/x/emissions/api/emissions/v7/params.pulsar.go index 8310ae19e..e8f036b59 100644 --- a/x/emissions/api/emissions/v7/params.pulsar.go +++ b/x/emissions/api/emissions/v7/params.pulsar.go @@ -16,56 +16,56 @@ import ( ) var ( - md_Params protoreflect.MessageDescriptor - fd_Params_version protoreflect.FieldDescriptor - fd_Params_max_serialized_msg_length protoreflect.FieldDescriptor - fd_Params_min_topic_weight protoreflect.FieldDescriptor - fd_Params_required_minimum_stake protoreflect.FieldDescriptor - fd_Params_remove_stake_delay_window protoreflect.FieldDescriptor - fd_Params_min_epoch_length protoreflect.FieldDescriptor - fd_Params_beta_entropy protoreflect.FieldDescriptor - fd_Params_learning_rate protoreflect.FieldDescriptor - fd_Params_max_gradient_threshold protoreflect.FieldDescriptor - fd_Params_min_stake_fraction protoreflect.FieldDescriptor - fd_Params_max_unfulfilled_worker_requests protoreflect.FieldDescriptor - fd_Params_max_unfulfilled_reputer_requests protoreflect.FieldDescriptor - fd_Params_topic_reward_stake_importance protoreflect.FieldDescriptor - fd_Params_topic_reward_fee_revenue_importance protoreflect.FieldDescriptor - fd_Params_topic_reward_alpha protoreflect.FieldDescriptor - fd_Params_task_reward_alpha protoreflect.FieldDescriptor - fd_Params_validators_vs_allora_percent_reward protoreflect.FieldDescriptor - fd_Params_max_samples_to_scale_scores protoreflect.FieldDescriptor - fd_Params_max_top_inferers_to_reward protoreflect.FieldDescriptor - fd_Params_max_top_forecasters_to_reward protoreflect.FieldDescriptor - fd_Params_max_top_reputers_to_reward protoreflect.FieldDescriptor - fd_Params_create_topic_fee protoreflect.FieldDescriptor - fd_Params_gradient_descent_max_iters protoreflect.FieldDescriptor - fd_Params_registration_fee protoreflect.FieldDescriptor - fd_Params_default_page_limit protoreflect.FieldDescriptor - fd_Params_max_page_limit protoreflect.FieldDescriptor - fd_Params_min_epoch_length_record_limit protoreflect.FieldDescriptor - fd_Params_blocks_per_month protoreflect.FieldDescriptor - fd_Params_p_reward_inference protoreflect.FieldDescriptor - fd_Params_p_reward_forecast protoreflect.FieldDescriptor - fd_Params_p_reward_reputer protoreflect.FieldDescriptor - fd_Params_c_reward_inference protoreflect.FieldDescriptor - fd_Params_c_reward_forecast protoreflect.FieldDescriptor - fd_Params_c_norm protoreflect.FieldDescriptor - fd_Params_epsilon_reputer protoreflect.FieldDescriptor - fd_Params_half_max_process_stake_removals_end_block protoreflect.FieldDescriptor - fd_Params_epsilon_safe_div protoreflect.FieldDescriptor - fd_Params_data_sending_fee protoreflect.FieldDescriptor - fd_Params_max_elements_per_forecast protoreflect.FieldDescriptor - fd_Params_max_active_topics_per_block protoreflect.FieldDescriptor - fd_Params_max_string_length protoreflect.FieldDescriptor - fd_Params_initial_regret_quantile protoreflect.FieldDescriptor - fd_Params_p_norm_safe_div protoreflect.FieldDescriptor - fd_Params_global_whitelist_enabled protoreflect.FieldDescriptor - fd_Params_topic_creator_whitelist_enabled protoreflect.FieldDescriptor - fd_Params_min_experienced_worker_regrets protoreflect.FieldDescriptor - fd_Params_inference_outlier_detection_threshold protoreflect.FieldDescriptor - fd_Params_inference_outlier_detection_alpha protoreflect.FieldDescriptor - fd_Params_new_participant_score_initialization_kappa protoreflect.FieldDescriptor + md_Params protoreflect.MessageDescriptor + fd_Params_version protoreflect.FieldDescriptor + fd_Params_max_serialized_msg_length protoreflect.FieldDescriptor + fd_Params_min_topic_weight protoreflect.FieldDescriptor + fd_Params_required_minimum_stake protoreflect.FieldDescriptor + fd_Params_remove_stake_delay_window protoreflect.FieldDescriptor + fd_Params_min_epoch_length protoreflect.FieldDescriptor + fd_Params_beta_entropy protoreflect.FieldDescriptor + fd_Params_learning_rate protoreflect.FieldDescriptor + fd_Params_max_gradient_threshold protoreflect.FieldDescriptor + fd_Params_min_stake_fraction protoreflect.FieldDescriptor + fd_Params_max_unfulfilled_worker_requests protoreflect.FieldDescriptor + fd_Params_max_unfulfilled_reputer_requests protoreflect.FieldDescriptor + fd_Params_topic_reward_stake_importance protoreflect.FieldDescriptor + fd_Params_topic_reward_fee_revenue_importance protoreflect.FieldDescriptor + fd_Params_topic_reward_alpha protoreflect.FieldDescriptor + fd_Params_task_reward_alpha protoreflect.FieldDescriptor + fd_Params_validators_vs_allora_percent_reward protoreflect.FieldDescriptor + fd_Params_max_samples_to_scale_scores protoreflect.FieldDescriptor + fd_Params_max_top_inferers_to_reward protoreflect.FieldDescriptor + fd_Params_max_top_forecasters_to_reward protoreflect.FieldDescriptor + fd_Params_max_top_reputers_to_reward protoreflect.FieldDescriptor + fd_Params_create_topic_fee protoreflect.FieldDescriptor + fd_Params_gradient_descent_max_iters protoreflect.FieldDescriptor + fd_Params_registration_fee protoreflect.FieldDescriptor + fd_Params_default_page_limit protoreflect.FieldDescriptor + fd_Params_max_page_limit protoreflect.FieldDescriptor + fd_Params_min_epoch_length_record_limit protoreflect.FieldDescriptor + fd_Params_blocks_per_month protoreflect.FieldDescriptor + fd_Params_p_reward_inference protoreflect.FieldDescriptor + fd_Params_p_reward_forecast protoreflect.FieldDescriptor + fd_Params_p_reward_reputer protoreflect.FieldDescriptor + fd_Params_c_reward_inference protoreflect.FieldDescriptor + fd_Params_c_reward_forecast protoreflect.FieldDescriptor + fd_Params_c_norm protoreflect.FieldDescriptor + fd_Params_epsilon_reputer protoreflect.FieldDescriptor + fd_Params_half_max_process_stake_removals_end_block protoreflect.FieldDescriptor + fd_Params_epsilon_safe_div protoreflect.FieldDescriptor + fd_Params_data_sending_fee protoreflect.FieldDescriptor + fd_Params_max_elements_per_forecast protoreflect.FieldDescriptor + fd_Params_max_active_topics_per_block protoreflect.FieldDescriptor + fd_Params_max_string_length protoreflect.FieldDescriptor + fd_Params_initial_regret_quantile protoreflect.FieldDescriptor + fd_Params_p_norm_safe_div protoreflect.FieldDescriptor + fd_Params_global_whitelist_enabled protoreflect.FieldDescriptor + fd_Params_topic_creator_whitelist_enabled protoreflect.FieldDescriptor + fd_Params_min_experienced_worker_regrets protoreflect.FieldDescriptor + fd_Params_inference_outlier_detection_threshold protoreflect.FieldDescriptor + fd_Params_inference_outlier_detection_alpha protoreflect.FieldDescriptor + fd_Params_sortition_lambda_penalty protoreflect.FieldDescriptor ) func init() { @@ -119,7 +119,7 @@ func init() { fd_Params_min_experienced_worker_regrets = md_Params.Fields().ByName("min_experienced_worker_regrets") fd_Params_inference_outlier_detection_threshold = md_Params.Fields().ByName("inference_outlier_detection_threshold") fd_Params_inference_outlier_detection_alpha = md_Params.Fields().ByName("inference_outlier_detection_alpha") - fd_Params_new_participant_score_initialization_kappa = md_Params.Fields().ByName("new_participant_score_initialization_kappa") + fd_Params_sortition_lambda_penalty = md_Params.Fields().ByName("sortition_lambda_penalty") } var _ protoreflect.Message = (*fastReflection_Params)(nil) @@ -475,9 +475,9 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto return } } - if x.NewParticipantScoreInitializationKappa != "" { - value := protoreflect.ValueOfString(x.NewParticipantScoreInitializationKappa) - if !f(fd_Params_new_participant_score_initialization_kappa, value) { + if x.SortitionLambdaPenalty != "" { + value := protoreflect.ValueOfString(x.SortitionLambdaPenalty) + if !f(fd_Params_sortition_lambda_penalty, value) { return } } @@ -592,8 +592,8 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { return x.InferenceOutlierDetectionThreshold != "" case "emissions.v7.Params.inference_outlier_detection_alpha": return x.InferenceOutlierDetectionAlpha != "" - case "emissions.v7.Params.new_participant_score_initialization_kappa": - return x.NewParticipantScoreInitializationKappa != "" + case "emissions.v7.Params.sortition_lambda_penalty": + return x.SortitionLambdaPenalty != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -706,8 +706,8 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { x.InferenceOutlierDetectionThreshold = "" case "emissions.v7.Params.inference_outlier_detection_alpha": x.InferenceOutlierDetectionAlpha = "" - case "emissions.v7.Params.new_participant_score_initialization_kappa": - x.NewParticipantScoreInitializationKappa = "" + case "emissions.v7.Params.sortition_lambda_penalty": + x.SortitionLambdaPenalty = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -868,8 +868,8 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro case "emissions.v7.Params.inference_outlier_detection_alpha": value := x.InferenceOutlierDetectionAlpha return protoreflect.ValueOfString(value) - case "emissions.v7.Params.new_participant_score_initialization_kappa": - value := x.NewParticipantScoreInitializationKappa + case "emissions.v7.Params.sortition_lambda_penalty": + value := x.SortitionLambdaPenalty return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { @@ -987,8 +987,8 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto x.InferenceOutlierDetectionThreshold = value.Interface().(string) case "emissions.v7.Params.inference_outlier_detection_alpha": x.InferenceOutlierDetectionAlpha = value.Interface().(string) - case "emissions.v7.Params.new_participant_score_initialization_kappa": - x.NewParticipantScoreInitializationKappa = value.Interface().(string) + case "emissions.v7.Params.sortition_lambda_penalty": + x.SortitionLambdaPenalty = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -1105,8 +1105,8 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore panic(fmt.Errorf("field inference_outlier_detection_threshold of message emissions.v7.Params is not mutable")) case "emissions.v7.Params.inference_outlier_detection_alpha": panic(fmt.Errorf("field inference_outlier_detection_alpha of message emissions.v7.Params is not mutable")) - case "emissions.v7.Params.new_participant_score_initialization_kappa": - panic(fmt.Errorf("field new_participant_score_initialization_kappa of message emissions.v7.Params is not mutable")) + case "emissions.v7.Params.sortition_lambda_penalty": + panic(fmt.Errorf("field sortition_lambda_penalty of message emissions.v7.Params is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -1216,7 +1216,7 @@ func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protor return protoreflect.ValueOfString("") case "emissions.v7.Params.inference_outlier_detection_alpha": return protoreflect.ValueOfString("") - case "emissions.v7.Params.new_participant_score_initialization_kappa": + case "emissions.v7.Params.sortition_lambda_penalty": return protoreflect.ValueOfString("") default: if fd.IsExtension() { @@ -1458,7 +1458,7 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) } - l = len(x.NewParticipantScoreInitializationKappa) + l = len(x.SortitionLambdaPenalty) if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) } @@ -1491,10 +1491,10 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.NewParticipantScoreInitializationKappa) > 0 { - i -= len(x.NewParticipantScoreInitializationKappa) - copy(dAtA[i:], x.NewParticipantScoreInitializationKappa) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewParticipantScoreInitializationKappa))) + if len(x.SortitionLambdaPenalty) > 0 { + i -= len(x.SortitionLambdaPenalty) + copy(dAtA[i:], x.SortitionLambdaPenalty) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.SortitionLambdaPenalty))) i-- dAtA[i] = 0x3 i-- @@ -3190,7 +3190,7 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { iNdEx = postIndex case 55: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewParticipantScoreInitializationKappa", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SortitionLambdaPenalty", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3218,7 +3218,7 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.NewParticipantScoreInitializationKappa = string(dAtA[iNdEx:postIndex]) + x.SortitionLambdaPenalty = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3339,9 +3339,10 @@ type Params struct { TopicCreatorWhitelistEnabled bool `protobuf:"varint,51,opt,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` // topic creator whitelist enabled => only topic creator whitelisted actors can create topics MinExperiencedWorkerRegrets uint64 `protobuf:"varint,52,opt,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` // minimum number of experienced workers required to use their regrets // for calculating the topic initial regret - InferenceOutlierDetectionThreshold string `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` - InferenceOutlierDetectionAlpha string `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` - NewParticipantScoreInitializationKappa string `protobuf:"bytes,55,opt,name=new_participant_score_initialization_kappa,json=newParticipantScoreInitializationKappa,proto3" json:"new_participant_score_initialization_kappa,omitempty"` + InferenceOutlierDetectionThreshold string `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` + InferenceOutlierDetectionAlpha string `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` + // Constant used to determine the penalty for non-live actors + SortitionLambdaPenalty string `protobuf:"bytes,55,opt,name=sortition_lambda_penalty,json=sortitionLambdaPenalty,proto3" json:"sortition_lambda_penalty,omitempty"` } func (x *Params) Reset() { @@ -3700,9 +3701,9 @@ func (x *Params) GetInferenceOutlierDetectionAlpha() string { return "" } -func (x *Params) GetNewParticipantScoreInitializationKappa() string { +func (x *Params) GetSortitionLambdaPenalty() string { if x != nil { - return x.NewParticipantScoreInitializationKappa + return x.SortitionLambdaPenalty } return "" } @@ -3716,7 +3717,7 @@ var file_emissions_v7_params_proto_rawDesc = []byte{ 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x22, + 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf2, 0x21, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, @@ -3969,41 +3970,38 @@ var file_emissions_v7_params_proto_rawDesc = []byte{ 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x1e, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x93, 0x01, 0x0a, 0x2a, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, - 0x61, 0x70, 0x70, 0x61, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, - 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, - 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, - 0x44, 0x65, 0x63, 0x52, 0x26, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x61, 0x70, 0x70, 0x61, 0x4a, 0x04, 0x08, 0x04, 0x10, - 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, - 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, - 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, + 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x71, 0x0a, 0x18, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, + 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, + 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, + 0x52, 0x16, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x6d, 0x62, 0x64, + 0x61, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, + 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, + 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, + 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, + 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, + 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, - 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, - 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, - 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, - 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x42, 0xc1, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x42, 0x0b, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, - 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, - 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, - 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x42, 0xc1, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x42, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, + 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, + 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/x/emissions/api/emissions/v7/tx.pulsar.go b/x/emissions/api/emissions/v7/tx.pulsar.go index 08eb1f9cc..763962d16 100644 --- a/x/emissions/api/emissions/v7/tx.pulsar.go +++ b/x/emissions/api/emissions/v7/tx.pulsar.go @@ -2255,7 +2255,7 @@ func (x *_OptionalParams_55_list) Append(value protoreflect.Value) { } func (x *_OptionalParams_55_list) AppendMutable() protoreflect.Value { - panic(fmt.Errorf("AppendMutable can not be called on message OptionalParams at list field NewParticipantScoreInitializationKappa as it is not of Message kind")) + panic(fmt.Errorf("AppendMutable can not be called on message OptionalParams at list field SortitionLambdaPenalty as it is not of Message kind")) } func (x *_OptionalParams_55_list) Truncate(n int) { @@ -2272,56 +2272,56 @@ func (x *_OptionalParams_55_list) IsValid() bool { } var ( - md_OptionalParams protoreflect.MessageDescriptor - fd_OptionalParams_version protoreflect.FieldDescriptor - fd_OptionalParams_max_serialized_msg_length protoreflect.FieldDescriptor - fd_OptionalParams_min_topic_weight protoreflect.FieldDescriptor - fd_OptionalParams_required_minimum_stake protoreflect.FieldDescriptor - fd_OptionalParams_remove_stake_delay_window protoreflect.FieldDescriptor - fd_OptionalParams_min_epoch_length protoreflect.FieldDescriptor - fd_OptionalParams_beta_entropy protoreflect.FieldDescriptor - fd_OptionalParams_learning_rate protoreflect.FieldDescriptor - fd_OptionalParams_max_gradient_threshold protoreflect.FieldDescriptor - fd_OptionalParams_min_stake_fraction protoreflect.FieldDescriptor - fd_OptionalParams_max_unfulfilled_worker_requests protoreflect.FieldDescriptor - fd_OptionalParams_max_unfulfilled_reputer_requests protoreflect.FieldDescriptor - fd_OptionalParams_topic_reward_stake_importance protoreflect.FieldDescriptor - fd_OptionalParams_topic_reward_fee_revenue_importance protoreflect.FieldDescriptor - fd_OptionalParams_topic_reward_alpha protoreflect.FieldDescriptor - fd_OptionalParams_task_reward_alpha protoreflect.FieldDescriptor - fd_OptionalParams_validators_vs_allora_percent_reward protoreflect.FieldDescriptor - fd_OptionalParams_max_samples_to_scale_scores protoreflect.FieldDescriptor - fd_OptionalParams_max_top_inferers_to_reward protoreflect.FieldDescriptor - fd_OptionalParams_max_top_forecasters_to_reward protoreflect.FieldDescriptor - fd_OptionalParams_max_top_reputers_to_reward protoreflect.FieldDescriptor - fd_OptionalParams_create_topic_fee protoreflect.FieldDescriptor - fd_OptionalParams_gradient_descent_max_iters protoreflect.FieldDescriptor - fd_OptionalParams_registration_fee protoreflect.FieldDescriptor - fd_OptionalParams_default_page_limit protoreflect.FieldDescriptor - fd_OptionalParams_max_page_limit protoreflect.FieldDescriptor - fd_OptionalParams_min_epoch_length_record_limit protoreflect.FieldDescriptor - fd_OptionalParams_blocks_per_month protoreflect.FieldDescriptor - fd_OptionalParams_p_reward_inference protoreflect.FieldDescriptor - fd_OptionalParams_p_reward_forecast protoreflect.FieldDescriptor - fd_OptionalParams_p_reward_reputer protoreflect.FieldDescriptor - fd_OptionalParams_c_reward_inference protoreflect.FieldDescriptor - fd_OptionalParams_c_reward_forecast protoreflect.FieldDescriptor - fd_OptionalParams_c_norm protoreflect.FieldDescriptor - fd_OptionalParams_epsilon_reputer protoreflect.FieldDescriptor - fd_OptionalParams_half_max_process_stake_removals_end_block protoreflect.FieldDescriptor - fd_OptionalParams_data_sending_fee protoreflect.FieldDescriptor - fd_OptionalParams_epsilon_safe_div protoreflect.FieldDescriptor - fd_OptionalParams_max_elements_per_forecast protoreflect.FieldDescriptor - fd_OptionalParams_max_active_topics_per_block protoreflect.FieldDescriptor - fd_OptionalParams_max_string_length protoreflect.FieldDescriptor - fd_OptionalParams_initial_regret_quantile protoreflect.FieldDescriptor - fd_OptionalParams_p_norm_safe_div protoreflect.FieldDescriptor - fd_OptionalParams_global_whitelist_enabled protoreflect.FieldDescriptor - fd_OptionalParams_topic_creator_whitelist_enabled protoreflect.FieldDescriptor - fd_OptionalParams_min_experienced_worker_regrets protoreflect.FieldDescriptor - fd_OptionalParams_inference_outlier_detection_threshold protoreflect.FieldDescriptor - fd_OptionalParams_inference_outlier_detection_alpha protoreflect.FieldDescriptor - fd_OptionalParams_new_participant_score_initialization_kappa protoreflect.FieldDescriptor + md_OptionalParams protoreflect.MessageDescriptor + fd_OptionalParams_version protoreflect.FieldDescriptor + fd_OptionalParams_max_serialized_msg_length protoreflect.FieldDescriptor + fd_OptionalParams_min_topic_weight protoreflect.FieldDescriptor + fd_OptionalParams_required_minimum_stake protoreflect.FieldDescriptor + fd_OptionalParams_remove_stake_delay_window protoreflect.FieldDescriptor + fd_OptionalParams_min_epoch_length protoreflect.FieldDescriptor + fd_OptionalParams_beta_entropy protoreflect.FieldDescriptor + fd_OptionalParams_learning_rate protoreflect.FieldDescriptor + fd_OptionalParams_max_gradient_threshold protoreflect.FieldDescriptor + fd_OptionalParams_min_stake_fraction protoreflect.FieldDescriptor + fd_OptionalParams_max_unfulfilled_worker_requests protoreflect.FieldDescriptor + fd_OptionalParams_max_unfulfilled_reputer_requests protoreflect.FieldDescriptor + fd_OptionalParams_topic_reward_stake_importance protoreflect.FieldDescriptor + fd_OptionalParams_topic_reward_fee_revenue_importance protoreflect.FieldDescriptor + fd_OptionalParams_topic_reward_alpha protoreflect.FieldDescriptor + fd_OptionalParams_task_reward_alpha protoreflect.FieldDescriptor + fd_OptionalParams_validators_vs_allora_percent_reward protoreflect.FieldDescriptor + fd_OptionalParams_max_samples_to_scale_scores protoreflect.FieldDescriptor + fd_OptionalParams_max_top_inferers_to_reward protoreflect.FieldDescriptor + fd_OptionalParams_max_top_forecasters_to_reward protoreflect.FieldDescriptor + fd_OptionalParams_max_top_reputers_to_reward protoreflect.FieldDescriptor + fd_OptionalParams_create_topic_fee protoreflect.FieldDescriptor + fd_OptionalParams_gradient_descent_max_iters protoreflect.FieldDescriptor + fd_OptionalParams_registration_fee protoreflect.FieldDescriptor + fd_OptionalParams_default_page_limit protoreflect.FieldDescriptor + fd_OptionalParams_max_page_limit protoreflect.FieldDescriptor + fd_OptionalParams_min_epoch_length_record_limit protoreflect.FieldDescriptor + fd_OptionalParams_blocks_per_month protoreflect.FieldDescriptor + fd_OptionalParams_p_reward_inference protoreflect.FieldDescriptor + fd_OptionalParams_p_reward_forecast protoreflect.FieldDescriptor + fd_OptionalParams_p_reward_reputer protoreflect.FieldDescriptor + fd_OptionalParams_c_reward_inference protoreflect.FieldDescriptor + fd_OptionalParams_c_reward_forecast protoreflect.FieldDescriptor + fd_OptionalParams_c_norm protoreflect.FieldDescriptor + fd_OptionalParams_epsilon_reputer protoreflect.FieldDescriptor + fd_OptionalParams_half_max_process_stake_removals_end_block protoreflect.FieldDescriptor + fd_OptionalParams_data_sending_fee protoreflect.FieldDescriptor + fd_OptionalParams_epsilon_safe_div protoreflect.FieldDescriptor + fd_OptionalParams_max_elements_per_forecast protoreflect.FieldDescriptor + fd_OptionalParams_max_active_topics_per_block protoreflect.FieldDescriptor + fd_OptionalParams_max_string_length protoreflect.FieldDescriptor + fd_OptionalParams_initial_regret_quantile protoreflect.FieldDescriptor + fd_OptionalParams_p_norm_safe_div protoreflect.FieldDescriptor + fd_OptionalParams_global_whitelist_enabled protoreflect.FieldDescriptor + fd_OptionalParams_topic_creator_whitelist_enabled protoreflect.FieldDescriptor + fd_OptionalParams_min_experienced_worker_regrets protoreflect.FieldDescriptor + fd_OptionalParams_inference_outlier_detection_threshold protoreflect.FieldDescriptor + fd_OptionalParams_inference_outlier_detection_alpha protoreflect.FieldDescriptor + fd_OptionalParams_sortition_lambda_penalty protoreflect.FieldDescriptor ) func init() { @@ -2375,7 +2375,7 @@ func init() { fd_OptionalParams_min_experienced_worker_regrets = md_OptionalParams.Fields().ByName("min_experienced_worker_regrets") fd_OptionalParams_inference_outlier_detection_threshold = md_OptionalParams.Fields().ByName("inference_outlier_detection_threshold") fd_OptionalParams_inference_outlier_detection_alpha = md_OptionalParams.Fields().ByName("inference_outlier_detection_alpha") - fd_OptionalParams_new_participant_score_initialization_kappa = md_OptionalParams.Fields().ByName("new_participant_score_initialization_kappa") + fd_OptionalParams_sortition_lambda_penalty = md_OptionalParams.Fields().ByName("sortition_lambda_penalty") } var _ protoreflect.Message = (*fastReflection_OptionalParams)(nil) @@ -2731,9 +2731,9 @@ func (x *fastReflection_OptionalParams) Range(f func(protoreflect.FieldDescripto return } } - if len(x.NewParticipantScoreInitializationKappa) != 0 { - value := protoreflect.ValueOfList(&_OptionalParams_55_list{list: &x.NewParticipantScoreInitializationKappa}) - if !f(fd_OptionalParams_new_participant_score_initialization_kappa, value) { + if len(x.SortitionLambdaPenalty) != 0 { + value := protoreflect.ValueOfList(&_OptionalParams_55_list{list: &x.SortitionLambdaPenalty}) + if !f(fd_OptionalParams_sortition_lambda_penalty, value) { return } } @@ -2848,8 +2848,8 @@ func (x *fastReflection_OptionalParams) Has(fd protoreflect.FieldDescriptor) boo return len(x.InferenceOutlierDetectionThreshold) != 0 case "emissions.v7.OptionalParams.inference_outlier_detection_alpha": return len(x.InferenceOutlierDetectionAlpha) != 0 - case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": - return len(x.NewParticipantScoreInitializationKappa) != 0 + case "emissions.v7.OptionalParams.sortition_lambda_penalty": + return len(x.SortitionLambdaPenalty) != 0 default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -2962,8 +2962,8 @@ func (x *fastReflection_OptionalParams) Clear(fd protoreflect.FieldDescriptor) { x.InferenceOutlierDetectionThreshold = nil case "emissions.v7.OptionalParams.inference_outlier_detection_alpha": x.InferenceOutlierDetectionAlpha = nil - case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": - x.NewParticipantScoreInitializationKappa = nil + case "emissions.v7.OptionalParams.sortition_lambda_penalty": + x.SortitionLambdaPenalty = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -3268,11 +3268,11 @@ func (x *fastReflection_OptionalParams) Get(descriptor protoreflect.FieldDescrip } listValue := &_OptionalParams_54_list{list: &x.InferenceOutlierDetectionAlpha} return protoreflect.ValueOfList(listValue) - case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": - if len(x.NewParticipantScoreInitializationKappa) == 0 { + case "emissions.v7.OptionalParams.sortition_lambda_penalty": + if len(x.SortitionLambdaPenalty) == 0 { return protoreflect.ValueOfList(&_OptionalParams_55_list{}) } - listValue := &_OptionalParams_55_list{list: &x.NewParticipantScoreInitializationKappa} + listValue := &_OptionalParams_55_list{list: &x.SortitionLambdaPenalty} return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { @@ -3486,10 +3486,10 @@ func (x *fastReflection_OptionalParams) Set(fd protoreflect.FieldDescriptor, val lv := value.List() clv := lv.(*_OptionalParams_54_list) x.InferenceOutlierDetectionAlpha = *clv.list - case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": + case "emissions.v7.OptionalParams.sortition_lambda_penalty": lv := value.List() clv := lv.(*_OptionalParams_55_list) - x.NewParticipantScoreInitializationKappa = *clv.list + x.SortitionLambdaPenalty = *clv.list default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -3798,11 +3798,11 @@ func (x *fastReflection_OptionalParams) Mutable(fd protoreflect.FieldDescriptor) } value := &_OptionalParams_54_list{list: &x.InferenceOutlierDetectionAlpha} return protoreflect.ValueOfList(value) - case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": - if x.NewParticipantScoreInitializationKappa == nil { - x.NewParticipantScoreInitializationKappa = []string{} + case "emissions.v7.OptionalParams.sortition_lambda_penalty": + if x.SortitionLambdaPenalty == nil { + x.SortitionLambdaPenalty = []string{} } - value := &_OptionalParams_55_list{list: &x.NewParticipantScoreInitializationKappa} + value := &_OptionalParams_55_list{list: &x.SortitionLambdaPenalty} return protoreflect.ValueOfList(value) default: if fd.IsExtension() { @@ -3961,7 +3961,7 @@ func (x *fastReflection_OptionalParams) NewField(fd protoreflect.FieldDescriptor case "emissions.v7.OptionalParams.inference_outlier_detection_alpha": list := []string{} return protoreflect.ValueOfList(&_OptionalParams_54_list{list: &list}) - case "emissions.v7.OptionalParams.new_participant_score_initialization_kappa": + case "emissions.v7.OptionalParams.sortition_lambda_penalty": list := []string{} return protoreflect.ValueOfList(&_OptionalParams_55_list{list: &list}) default: @@ -4334,8 +4334,8 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { n += 2 + l + runtime.Sov(uint64(l)) } } - if len(x.NewParticipantScoreInitializationKappa) > 0 { - for _, s := range x.NewParticipantScoreInitializationKappa { + if len(x.SortitionLambdaPenalty) > 0 { + for _, s := range x.SortitionLambdaPenalty { l = len(s) n += 2 + l + runtime.Sov(uint64(l)) } @@ -4369,11 +4369,11 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.NewParticipantScoreInitializationKappa) > 0 { - for iNdEx := len(x.NewParticipantScoreInitializationKappa) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.NewParticipantScoreInitializationKappa[iNdEx]) - copy(dAtA[i:], x.NewParticipantScoreInitializationKappa[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewParticipantScoreInitializationKappa[iNdEx]))) + if len(x.SortitionLambdaPenalty) > 0 { + for iNdEx := len(x.SortitionLambdaPenalty) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.SortitionLambdaPenalty[iNdEx]) + copy(dAtA[i:], x.SortitionLambdaPenalty[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.SortitionLambdaPenalty[iNdEx]))) i-- dAtA[i] = 0x3 i-- @@ -7602,7 +7602,7 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { iNdEx = postIndex case 55: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewParticipantScoreInitializationKappa", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SortitionLambdaPenalty", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7630,7 +7630,7 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.NewParticipantScoreInitializationKappa = append(x.NewParticipantScoreInitializationKappa, string(dAtA[iNdEx:postIndex])) + x.SortitionLambdaPenalty = append(x.SortitionLambdaPenalty, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -33148,55 +33148,55 @@ type OptionalParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Version []string `protobuf:"bytes,1,rep,name=version,proto3" json:"version,omitempty"` - MaxSerializedMsgLength []int64 `protobuf:"varint,2,rep,packed,name=max_serialized_msg_length,json=maxSerializedMsgLength,proto3" json:"max_serialized_msg_length,omitempty"` - MinTopicWeight []string `protobuf:"bytes,3,rep,name=min_topic_weight,json=minTopicWeight,proto3" json:"min_topic_weight,omitempty"` - RequiredMinimumStake []string `protobuf:"bytes,5,rep,name=required_minimum_stake,json=requiredMinimumStake,proto3" json:"required_minimum_stake,omitempty"` - RemoveStakeDelayWindow []int64 `protobuf:"varint,6,rep,packed,name=remove_stake_delay_window,json=removeStakeDelayWindow,proto3" json:"remove_stake_delay_window,omitempty"` - MinEpochLength []int64 `protobuf:"varint,7,rep,packed,name=min_epoch_length,json=minEpochLength,proto3" json:"min_epoch_length,omitempty"` - BetaEntropy []string `protobuf:"bytes,8,rep,name=beta_entropy,json=betaEntropy,proto3" json:"beta_entropy,omitempty"` - LearningRate []string `protobuf:"bytes,9,rep,name=learning_rate,json=learningRate,proto3" json:"learning_rate,omitempty"` - MaxGradientThreshold []string `protobuf:"bytes,10,rep,name=max_gradient_threshold,json=maxGradientThreshold,proto3" json:"max_gradient_threshold,omitempty"` - MinStakeFraction []string `protobuf:"bytes,11,rep,name=min_stake_fraction,json=minStakeFraction,proto3" json:"min_stake_fraction,omitempty"` - MaxUnfulfilledWorkerRequests []uint64 `protobuf:"varint,13,rep,packed,name=max_unfulfilled_worker_requests,json=maxUnfulfilledWorkerRequests,proto3" json:"max_unfulfilled_worker_requests,omitempty"` - MaxUnfulfilledReputerRequests []uint64 `protobuf:"varint,14,rep,packed,name=max_unfulfilled_reputer_requests,json=maxUnfulfilledReputerRequests,proto3" json:"max_unfulfilled_reputer_requests,omitempty"` - TopicRewardStakeImportance []string `protobuf:"bytes,15,rep,name=topic_reward_stake_importance,json=topicRewardStakeImportance,proto3" json:"topic_reward_stake_importance,omitempty"` - TopicRewardFeeRevenueImportance []string `protobuf:"bytes,16,rep,name=topic_reward_fee_revenue_importance,json=topicRewardFeeRevenueImportance,proto3" json:"topic_reward_fee_revenue_importance,omitempty"` - TopicRewardAlpha []string `protobuf:"bytes,17,rep,name=topic_reward_alpha,json=topicRewardAlpha,proto3" json:"topic_reward_alpha,omitempty"` - TaskRewardAlpha []string `protobuf:"bytes,18,rep,name=task_reward_alpha,json=taskRewardAlpha,proto3" json:"task_reward_alpha,omitempty"` - ValidatorsVsAlloraPercentReward []string `protobuf:"bytes,19,rep,name=validators_vs_allora_percent_reward,json=validatorsVsAlloraPercentReward,proto3" json:"validators_vs_allora_percent_reward,omitempty"` - MaxSamplesToScaleScores []uint64 `protobuf:"varint,20,rep,packed,name=max_samples_to_scale_scores,json=maxSamplesToScaleScores,proto3" json:"max_samples_to_scale_scores,omitempty"` - MaxTopInferersToReward []uint64 `protobuf:"varint,21,rep,packed,name=max_top_inferers_to_reward,json=maxTopInferersToReward,proto3" json:"max_top_inferers_to_reward,omitempty"` - MaxTopForecastersToReward []uint64 `protobuf:"varint,22,rep,packed,name=max_top_forecasters_to_reward,json=maxTopForecastersToReward,proto3" json:"max_top_forecasters_to_reward,omitempty"` - MaxTopReputersToReward []uint64 `protobuf:"varint,23,rep,packed,name=max_top_reputers_to_reward,json=maxTopReputersToReward,proto3" json:"max_top_reputers_to_reward,omitempty"` - CreateTopicFee []string `protobuf:"bytes,24,rep,name=create_topic_fee,json=createTopicFee,proto3" json:"create_topic_fee,omitempty"` - GradientDescentMaxIters []uint64 `protobuf:"varint,25,rep,packed,name=gradient_descent_max_iters,json=gradientDescentMaxIters,proto3" json:"gradient_descent_max_iters,omitempty"` - RegistrationFee []string `protobuf:"bytes,28,rep,name=registration_fee,json=registrationFee,proto3" json:"registration_fee,omitempty"` - DefaultPageLimit []uint64 `protobuf:"varint,29,rep,packed,name=default_page_limit,json=defaultPageLimit,proto3" json:"default_page_limit,omitempty"` - MaxPageLimit []uint64 `protobuf:"varint,30,rep,packed,name=max_page_limit,json=maxPageLimit,proto3" json:"max_page_limit,omitempty"` - MinEpochLengthRecordLimit []int64 `protobuf:"varint,31,rep,packed,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` - BlocksPerMonth []uint64 `protobuf:"varint,32,rep,packed,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` - PRewardInference []string `protobuf:"bytes,33,rep,name=p_reward_inference,json=pRewardInference,proto3" json:"p_reward_inference,omitempty"` - PRewardForecast []string `protobuf:"bytes,34,rep,name=p_reward_forecast,json=pRewardForecast,proto3" json:"p_reward_forecast,omitempty"` - PRewardReputer []string `protobuf:"bytes,35,rep,name=p_reward_reputer,json=pRewardReputer,proto3" json:"p_reward_reputer,omitempty"` - CRewardInference []string `protobuf:"bytes,36,rep,name=c_reward_inference,json=cRewardInference,proto3" json:"c_reward_inference,omitempty"` - CRewardForecast []string `protobuf:"bytes,37,rep,name=c_reward_forecast,json=cRewardForecast,proto3" json:"c_reward_forecast,omitempty"` - CNorm []string `protobuf:"bytes,38,rep,name=c_norm,json=cNorm,proto3" json:"c_norm,omitempty"` - EpsilonReputer []string `protobuf:"bytes,40,rep,name=epsilon_reputer,json=epsilonReputer,proto3" json:"epsilon_reputer,omitempty"` - HalfMaxProcessStakeRemovalsEndBlock []uint64 `protobuf:"varint,42,rep,packed,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` - DataSendingFee []string `protobuf:"bytes,43,rep,name=data_sending_fee,json=dataSendingFee,proto3" json:"data_sending_fee,omitempty"` - EpsilonSafeDiv []string `protobuf:"bytes,44,rep,name=epsilon_safe_div,json=epsilonSafeDiv,proto3" json:"epsilon_safe_div,omitempty"` - MaxElementsPerForecast []uint64 `protobuf:"varint,45,rep,packed,name=max_elements_per_forecast,json=maxElementsPerForecast,proto3" json:"max_elements_per_forecast,omitempty"` - MaxActiveTopicsPerBlock []uint64 `protobuf:"varint,46,rep,packed,name=max_active_topics_per_block,json=maxActiveTopicsPerBlock,proto3" json:"max_active_topics_per_block,omitempty"` - MaxStringLength []uint64 `protobuf:"varint,47,rep,packed,name=max_string_length,json=maxStringLength,proto3" json:"max_string_length,omitempty"` - InitialRegretQuantile []string `protobuf:"bytes,48,rep,name=initial_regret_quantile,json=initialRegretQuantile,proto3" json:"initial_regret_quantile,omitempty"` - PNormSafeDiv []string `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3" json:"p_norm_safe_div,omitempty"` - GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` - TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` - MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` - InferenceOutlierDetectionThreshold []string `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` - InferenceOutlierDetectionAlpha []string `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` - NewParticipantScoreInitializationKappa []string `protobuf:"bytes,55,rep,name=new_participant_score_initialization_kappa,json=newParticipantScoreInitializationKappa,proto3" json:"new_participant_score_initialization_kappa,omitempty"` + Version []string `protobuf:"bytes,1,rep,name=version,proto3" json:"version,omitempty"` + MaxSerializedMsgLength []int64 `protobuf:"varint,2,rep,packed,name=max_serialized_msg_length,json=maxSerializedMsgLength,proto3" json:"max_serialized_msg_length,omitempty"` + MinTopicWeight []string `protobuf:"bytes,3,rep,name=min_topic_weight,json=minTopicWeight,proto3" json:"min_topic_weight,omitempty"` + RequiredMinimumStake []string `protobuf:"bytes,5,rep,name=required_minimum_stake,json=requiredMinimumStake,proto3" json:"required_minimum_stake,omitempty"` + RemoveStakeDelayWindow []int64 `protobuf:"varint,6,rep,packed,name=remove_stake_delay_window,json=removeStakeDelayWindow,proto3" json:"remove_stake_delay_window,omitempty"` + MinEpochLength []int64 `protobuf:"varint,7,rep,packed,name=min_epoch_length,json=minEpochLength,proto3" json:"min_epoch_length,omitempty"` + BetaEntropy []string `protobuf:"bytes,8,rep,name=beta_entropy,json=betaEntropy,proto3" json:"beta_entropy,omitempty"` + LearningRate []string `protobuf:"bytes,9,rep,name=learning_rate,json=learningRate,proto3" json:"learning_rate,omitempty"` + MaxGradientThreshold []string `protobuf:"bytes,10,rep,name=max_gradient_threshold,json=maxGradientThreshold,proto3" json:"max_gradient_threshold,omitempty"` + MinStakeFraction []string `protobuf:"bytes,11,rep,name=min_stake_fraction,json=minStakeFraction,proto3" json:"min_stake_fraction,omitempty"` + MaxUnfulfilledWorkerRequests []uint64 `protobuf:"varint,13,rep,packed,name=max_unfulfilled_worker_requests,json=maxUnfulfilledWorkerRequests,proto3" json:"max_unfulfilled_worker_requests,omitempty"` + MaxUnfulfilledReputerRequests []uint64 `protobuf:"varint,14,rep,packed,name=max_unfulfilled_reputer_requests,json=maxUnfulfilledReputerRequests,proto3" json:"max_unfulfilled_reputer_requests,omitempty"` + TopicRewardStakeImportance []string `protobuf:"bytes,15,rep,name=topic_reward_stake_importance,json=topicRewardStakeImportance,proto3" json:"topic_reward_stake_importance,omitempty"` + TopicRewardFeeRevenueImportance []string `protobuf:"bytes,16,rep,name=topic_reward_fee_revenue_importance,json=topicRewardFeeRevenueImportance,proto3" json:"topic_reward_fee_revenue_importance,omitempty"` + TopicRewardAlpha []string `protobuf:"bytes,17,rep,name=topic_reward_alpha,json=topicRewardAlpha,proto3" json:"topic_reward_alpha,omitempty"` + TaskRewardAlpha []string `protobuf:"bytes,18,rep,name=task_reward_alpha,json=taskRewardAlpha,proto3" json:"task_reward_alpha,omitempty"` + ValidatorsVsAlloraPercentReward []string `protobuf:"bytes,19,rep,name=validators_vs_allora_percent_reward,json=validatorsVsAlloraPercentReward,proto3" json:"validators_vs_allora_percent_reward,omitempty"` + MaxSamplesToScaleScores []uint64 `protobuf:"varint,20,rep,packed,name=max_samples_to_scale_scores,json=maxSamplesToScaleScores,proto3" json:"max_samples_to_scale_scores,omitempty"` + MaxTopInferersToReward []uint64 `protobuf:"varint,21,rep,packed,name=max_top_inferers_to_reward,json=maxTopInferersToReward,proto3" json:"max_top_inferers_to_reward,omitempty"` + MaxTopForecastersToReward []uint64 `protobuf:"varint,22,rep,packed,name=max_top_forecasters_to_reward,json=maxTopForecastersToReward,proto3" json:"max_top_forecasters_to_reward,omitempty"` + MaxTopReputersToReward []uint64 `protobuf:"varint,23,rep,packed,name=max_top_reputers_to_reward,json=maxTopReputersToReward,proto3" json:"max_top_reputers_to_reward,omitempty"` + CreateTopicFee []string `protobuf:"bytes,24,rep,name=create_topic_fee,json=createTopicFee,proto3" json:"create_topic_fee,omitempty"` + GradientDescentMaxIters []uint64 `protobuf:"varint,25,rep,packed,name=gradient_descent_max_iters,json=gradientDescentMaxIters,proto3" json:"gradient_descent_max_iters,omitempty"` + RegistrationFee []string `protobuf:"bytes,28,rep,name=registration_fee,json=registrationFee,proto3" json:"registration_fee,omitempty"` + DefaultPageLimit []uint64 `protobuf:"varint,29,rep,packed,name=default_page_limit,json=defaultPageLimit,proto3" json:"default_page_limit,omitempty"` + MaxPageLimit []uint64 `protobuf:"varint,30,rep,packed,name=max_page_limit,json=maxPageLimit,proto3" json:"max_page_limit,omitempty"` + MinEpochLengthRecordLimit []int64 `protobuf:"varint,31,rep,packed,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` + BlocksPerMonth []uint64 `protobuf:"varint,32,rep,packed,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` + PRewardInference []string `protobuf:"bytes,33,rep,name=p_reward_inference,json=pRewardInference,proto3" json:"p_reward_inference,omitempty"` + PRewardForecast []string `protobuf:"bytes,34,rep,name=p_reward_forecast,json=pRewardForecast,proto3" json:"p_reward_forecast,omitempty"` + PRewardReputer []string `protobuf:"bytes,35,rep,name=p_reward_reputer,json=pRewardReputer,proto3" json:"p_reward_reputer,omitempty"` + CRewardInference []string `protobuf:"bytes,36,rep,name=c_reward_inference,json=cRewardInference,proto3" json:"c_reward_inference,omitempty"` + CRewardForecast []string `protobuf:"bytes,37,rep,name=c_reward_forecast,json=cRewardForecast,proto3" json:"c_reward_forecast,omitempty"` + CNorm []string `protobuf:"bytes,38,rep,name=c_norm,json=cNorm,proto3" json:"c_norm,omitempty"` + EpsilonReputer []string `protobuf:"bytes,40,rep,name=epsilon_reputer,json=epsilonReputer,proto3" json:"epsilon_reputer,omitempty"` + HalfMaxProcessStakeRemovalsEndBlock []uint64 `protobuf:"varint,42,rep,packed,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` + DataSendingFee []string `protobuf:"bytes,43,rep,name=data_sending_fee,json=dataSendingFee,proto3" json:"data_sending_fee,omitempty"` + EpsilonSafeDiv []string `protobuf:"bytes,44,rep,name=epsilon_safe_div,json=epsilonSafeDiv,proto3" json:"epsilon_safe_div,omitempty"` + MaxElementsPerForecast []uint64 `protobuf:"varint,45,rep,packed,name=max_elements_per_forecast,json=maxElementsPerForecast,proto3" json:"max_elements_per_forecast,omitempty"` + MaxActiveTopicsPerBlock []uint64 `protobuf:"varint,46,rep,packed,name=max_active_topics_per_block,json=maxActiveTopicsPerBlock,proto3" json:"max_active_topics_per_block,omitempty"` + MaxStringLength []uint64 `protobuf:"varint,47,rep,packed,name=max_string_length,json=maxStringLength,proto3" json:"max_string_length,omitempty"` + InitialRegretQuantile []string `protobuf:"bytes,48,rep,name=initial_regret_quantile,json=initialRegretQuantile,proto3" json:"initial_regret_quantile,omitempty"` + PNormSafeDiv []string `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3" json:"p_norm_safe_div,omitempty"` + GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` + TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` + MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` + InferenceOutlierDetectionThreshold []string `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` + InferenceOutlierDetectionAlpha []string `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` + SortitionLambdaPenalty []string `protobuf:"bytes,55,rep,name=sortition_lambda_penalty,json=sortitionLambdaPenalty,proto3" json:"sortition_lambda_penalty,omitempty"` } func (x *OptionalParams) Reset() { @@ -33555,9 +33555,9 @@ func (x *OptionalParams) GetInferenceOutlierDetectionAlpha() []string { return nil } -func (x *OptionalParams) GetNewParticipantScoreInitializationKappa() []string { +func (x *OptionalParams) GetSortitionLambdaPenalty() []string { if x != nil { - return x.NewParticipantScoreInitializationKappa + return x.SortitionLambdaPenalty } return nil } @@ -35802,7 +35802,7 @@ var file_emissions_v7_tx_proto_rawDesc = []byte{ 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, - 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x22, 0x0a, 0x0e, 0x4f, 0x70, + 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfa, 0x21, 0x0a, 0x0e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, @@ -36055,597 +36055,595 @@ var file_emissions_v7_tx_proto_rawDesc = []byte{ 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x1e, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x93, 0x01, 0x0a, 0x2a, 0x6e, 0x65, - 0x77, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6b, 0x61, 0x70, 0x70, 0x61, 0x18, 0x37, 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x71, 0x0a, 0x18, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x5f, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x37, 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, + 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, + 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, + 0x2e, 0x44, 0x65, 0x63, 0x52, 0x16, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x61, 0x6d, 0x62, 0x64, 0x61, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x4a, 0x04, 0x08, 0x04, + 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, + 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, + 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, + 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, + 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, + 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, + 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xb5, 0x09, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, + 0x72, 0x75, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x74, 0x68, 0x4c, 0x61, 0x67, 0x12, 0x4e, + 0x0a, 0x06, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, - 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x26, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x61, 0x70, 0x70, 0x61, 0x4a, - 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, - 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, - 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, - 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, - 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, - 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x13, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x0b, - 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xb5, 0x09, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, - 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x5f, 0x74, 0x72, 0x75, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x74, 0x68, 0x4c, 0x61, - 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x05, 0x70, 0x4e, 0x6f, 0x72, - 0x6d, 0x12, 0x5a, 0x0a, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, - 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, - 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, - 0x52, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x25, 0x0a, - 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4e, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, - 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x07, - 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x12, 0x6b, 0x0a, 0x15, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x05, 0x70, 0x4e, 0x6f, 0x72, 0x6d, 0x12, 0x5a, + 0x0a, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0b, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x12, 0x51, 0x0a, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x07, 0x65, 0x70, 0x73, + 0x69, 0x6c, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x6b, + 0x0a, 0x15, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, + 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x13, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x53, 0x6f, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x6f, 0x0a, 0x17, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, + 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, + 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, + 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x75, 0x0a, 0x1a, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x13, 0x6d, 0x65, 0x72, 0x69, 0x74, - 0x53, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x6f, - 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, - 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, - 0x75, 0x0a, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x18, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, - 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, - 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, - 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, - 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, - 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, - 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, - 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x10, 0x69, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0b, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x22, 0x33, 0x0a, 0x16, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x22, 0x96, 0x01, 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, - 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x49, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x1a, 0x49, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x4c, 0x0a, 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, - 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x49, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x0f, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, - 0x0b, 0x6c, 0x69, 0x62, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x52, 0x0d, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x46, 0x0a, 0x10, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 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, 0x7a, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, - 0x50, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 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, 0x9b, 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, + 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, + 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x0a, 0x6c, 0x6f, + 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x22, 0x33, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x22, 0x96, 0x01, + 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x1a, 0x49, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, - 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, - 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, - 0x12, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, - 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x0a, 0x18, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4c, 0x0a, + 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, + 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0b, 0x6c, 0x69, + 0x62, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x52, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x46, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 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, 0x7a, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, + 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, + 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x50, 0x0a, 0x1a, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 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, 0x9b, + 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, + 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, + 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, + 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x12, 0x0a, 0x10, + 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x9e, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x1a, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, - 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, - 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, - 0x20, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, - 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, - 0x0a, 0x1a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x72, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xba, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, - 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1a, 0x41, 0x64, 0x64, - 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x17, + 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, + 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, + 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x20, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x1a, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, - 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x0a, 0x21, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x22, 0x24, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, - 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, + 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, + 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, + 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x60, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x0a, 0x21, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, + 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, - 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x44, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x65, 0x0a, 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x26, 0x0a, 0x24, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x5c, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, + 0x22, 0x64, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, + 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x22, 0x26, 0x0a, 0x24, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1b, + 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, + 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x41, 0x64, + 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x20, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, - 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, - 0x1c, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, - 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x22, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, - 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, - 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x67, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, - 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x7c, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, + 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x62, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x23, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, - 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 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, 0x19, 0x0a, 0x08, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x26, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x26, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, + 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x7c, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, - 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf0, 0x18, 0x0a, 0x0a, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, + 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 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, + 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, + 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf0, 0x18, 0x0a, 0x0a, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x12, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x49, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x20, 0x2e, 0x65, 0x6d, 0x69, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x23, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x64, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x12, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, + 0x08, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x11, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x12, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, + 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, + 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x12, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x79, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2d, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x49, 0x6e, + 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, + 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x46, + 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x46, + 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x6a, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x18, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, + 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x28, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x29, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, - 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, - 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, + 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x7f, 0x0a, 0x1a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, - 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x31, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x1c, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, + 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, + 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, + 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x54, 0x6f, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, - 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbd, 0x01, 0x0a, - 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, - 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, - 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, - 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, + 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, + 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbd, 0x01, 0x0a, 0x10, 0x63, 0x6f, + 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x42, 0x07, + 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, + 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, + 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, + 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/x/emissions/keeper/msgserver/msg_server_params.go b/x/emissions/keeper/msgserver/msg_server_params.go index 37d7bcd5a..97a68bea1 100644 --- a/x/emissions/keeper/msgserver/msg_server_params.go +++ b/x/emissions/keeper/msgserver/msg_server_params.go @@ -171,8 +171,8 @@ func (ms msgServer) UpdateParams(ctx context.Context, msg *types.UpdateParamsReq if len(newParams.InferenceOutlierDetectionAlpha) == 1 { existingParams.InferenceOutlierDetectionAlpha = newParams.InferenceOutlierDetectionAlpha[0] } - if len(newParams.NewParticipantScoreInitializationKappa) == 1 { - existingParams.NewParticipantScoreInitializationKappa = newParams.NewParticipantScoreInitializationKappa[0] + if len(newParams.SortitionLambdaPenalty) == 1 { + existingParams.SortitionLambdaPenalty = newParams.SortitionLambdaPenalty[0] } err = existingParams.Validate() if err != nil { diff --git a/x/emissions/keeper/msgserver/msg_server_params_test.go b/x/emissions/keeper/msgserver/msg_server_params_test.go index 712ba9971..73ade5671 100644 --- a/x/emissions/keeper/msgserver/msg_server_params_test.go +++ b/x/emissions/keeper/msgserver/msg_server_params_test.go @@ -20,55 +20,55 @@ func (s *MsgServerTestSuite) TestUpdateAllParams() { require.NoError(err) newParams := &types.OptionalParams{ - Version: []string{"1234"}, - MinTopicWeight: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - RequiredMinimumStake: []cosmosMath.Int{cosmosMath.NewInt(1234)}, - RemoveStakeDelayWindow: []int64{1234}, - MinEpochLength: []int64{1234}, - BetaEntropy: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - LearningRate: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - GradientDescentMaxIters: []uint64{1234}, - MaxGradientThreshold: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - MinStakeFraction: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - EpsilonReputer: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - MaxUnfulfilledWorkerRequests: []uint64{1234}, - MaxUnfulfilledReputerRequests: []uint64{1234}, - TopicRewardStakeImportance: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - TopicRewardFeeRevenueImportance: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - TopicRewardAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - TaskRewardAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - ValidatorsVsAlloraPercentReward: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - MaxSamplesToScaleScores: []uint64{1234}, - MaxTopInferersToReward: []uint64{1234}, - MaxTopForecastersToReward: []uint64{1234}, - MaxTopReputersToReward: []uint64{1234}, - CreateTopicFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, - RegistrationFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, - DefaultPageLimit: []uint64{1234}, - MaxPageLimit: []uint64{1234}, - MinEpochLengthRecordLimit: []int64{1234}, - MaxSerializedMsgLength: []int64{1234}, - PRewardInference: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - PRewardForecast: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - PRewardReputer: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - CRewardInference: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - CRewardForecast: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - CNorm: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, - BlocksPerMonth: []uint64{1234}, - HalfMaxProcessStakeRemovalsEndBlock: []uint64{1234}, - DataSendingFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, - EpsilonSafeDiv: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, - MaxElementsPerForecast: []uint64{1234}, - MaxActiveTopicsPerBlock: []uint64{1234}, - MaxStringLength: []uint64{1234}, - InitialRegretQuantile: []alloraMath.Dec{alloraMath.ZeroDec()}, - PNormSafeDiv: []alloraMath.Dec{alloraMath.ZeroDec()}, - GlobalWhitelistEnabled: []bool{true}, - TopicCreatorWhitelistEnabled: []bool{true}, - MinExperiencedWorkerRegrets: []uint64{1234}, - InferenceOutlierDetectionThreshold: []alloraMath.Dec{alloraMath.MustNewDecFromString("11")}, - InferenceOutlierDetectionAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString("0.2")}, - NewParticipantScoreInitializationKappa: []alloraMath.Dec{alloraMath.MustNewDecFromString("1")}, + Version: []string{"1234"}, + MinTopicWeight: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + RequiredMinimumStake: []cosmosMath.Int{cosmosMath.NewInt(1234)}, + RemoveStakeDelayWindow: []int64{1234}, + MinEpochLength: []int64{1234}, + BetaEntropy: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + LearningRate: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + GradientDescentMaxIters: []uint64{1234}, + MaxGradientThreshold: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + MinStakeFraction: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + EpsilonReputer: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + MaxUnfulfilledWorkerRequests: []uint64{1234}, + MaxUnfulfilledReputerRequests: []uint64{1234}, + TopicRewardStakeImportance: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + TopicRewardFeeRevenueImportance: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + TopicRewardAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + TaskRewardAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + ValidatorsVsAlloraPercentReward: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + MaxSamplesToScaleScores: []uint64{1234}, + MaxTopInferersToReward: []uint64{1234}, + MaxTopForecastersToReward: []uint64{1234}, + MaxTopReputersToReward: []uint64{1234}, + CreateTopicFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, + RegistrationFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, + DefaultPageLimit: []uint64{1234}, + MaxPageLimit: []uint64{1234}, + MinEpochLengthRecordLimit: []int64{1234}, + MaxSerializedMsgLength: []int64{1234}, + PRewardInference: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + PRewardForecast: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + PRewardReputer: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + CRewardInference: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + CRewardForecast: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + CNorm: []alloraMath.Dec{alloraMath.NewDecFromInt64(1234)}, + BlocksPerMonth: []uint64{1234}, + HalfMaxProcessStakeRemovalsEndBlock: []uint64{1234}, + DataSendingFee: []cosmosMath.Int{cosmosMath.NewInt(1234)}, + EpsilonSafeDiv: []alloraMath.Dec{alloraMath.MustNewDecFromString(".1234")}, + MaxElementsPerForecast: []uint64{1234}, + MaxActiveTopicsPerBlock: []uint64{1234}, + MaxStringLength: []uint64{1234}, + InitialRegretQuantile: []alloraMath.Dec{alloraMath.ZeroDec()}, + PNormSafeDiv: []alloraMath.Dec{alloraMath.ZeroDec()}, + GlobalWhitelistEnabled: []bool{true}, + TopicCreatorWhitelistEnabled: []bool{true}, + MinExperiencedWorkerRegrets: []uint64{1234}, + InferenceOutlierDetectionThreshold: []alloraMath.Dec{alloraMath.MustNewDecFromString("11")}, + InferenceOutlierDetectionAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString("0.2")}, + SortitionLambdaPenalty: []alloraMath.Dec{alloraMath.MustNewDecFromString("1")}, } updateMsg := &types.UpdateParamsRequest{ @@ -131,7 +131,7 @@ func (s *MsgServerTestSuite) TestUpdateAllParams() { require.Equal(newParams.MinExperiencedWorkerRegrets[0], updatedParams.MinExperiencedWorkerRegrets) require.Equal(newParams.InferenceOutlierDetectionThreshold[0], updatedParams.InferenceOutlierDetectionThreshold) require.Equal(newParams.InferenceOutlierDetectionAlpha[0], updatedParams.InferenceOutlierDetectionAlpha) - require.Equal(newParams.NewParticipantScoreInitializationKappa[0], updatedParams.NewParticipantScoreInitializationKappa) + require.Equal(newParams.SortitionLambdaPenalty[0], updatedParams.SortitionLambdaPenalty) } func (s *MsgServerTestSuite) TestUpdateParamsNonWhitelistedUser() { @@ -146,54 +146,54 @@ func (s *MsgServerTestSuite) TestUpdateParamsNonWhitelistedUser() { newParams := &types.OptionalParams{ Version: []string{"2.0"}, // example of changing the version // don't update the following params - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - MinEpochLength: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - MaxTopReputersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - EpsilonReputer: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, - NewParticipantScoreInitializationKappa: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + MinEpochLength: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + MaxTopReputersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + EpsilonReputer: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + SortitionLambdaPenalty: nil, } // Creating the UpdateParamsRequest message with a non-whitelisted user diff --git a/x/emissions/migrations/v7/migrate.go b/x/emissions/migrations/v7/migrate.go index e7e0df4aa..ece1b69bb 100644 --- a/x/emissions/migrations/v7/migrate.go +++ b/x/emissions/migrations/v7/migrate.go @@ -104,9 +104,9 @@ func MigrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCo TopicCreatorWhitelistEnabled: oldParams.TopicCreatorWhitelistEnabled, MinExperiencedWorkerRegrets: oldParams.MinExperiencedWorkerRegrets, // NEW PARAMS - InferenceOutlierDetectionThreshold: defaultParams.InferenceOutlierDetectionThreshold, - InferenceOutlierDetectionAlpha: defaultParams.InferenceOutlierDetectionAlpha, - NewParticipantScoreInitializationKappa: defaultParams.NewParticipantScoreInitializationKappa, + InferenceOutlierDetectionThreshold: defaultParams.InferenceOutlierDetectionThreshold, + InferenceOutlierDetectionAlpha: defaultParams.InferenceOutlierDetectionAlpha, + SortitionLambdaPenalty: defaultParams.SortitionLambdaPenalty, } ctx.Logger().Info(fmt.Sprintf("MIGRATED PARAMS: %+v", newParams)) diff --git a/x/emissions/migrations/v7/migrate_test.go b/x/emissions/migrations/v7/migrate_test.go index a97ea63f3..c3253dda0 100644 --- a/x/emissions/migrations/v7/migrate_test.go +++ b/x/emissions/migrations/v7/migrate_test.go @@ -184,5 +184,5 @@ func (s *EmissionsV6MigrationTestSuite) TestMigrateParams() { s.Require().Equal(paramsExpected.MinExperiencedWorkerRegrets, params.MinExperiencedWorkerRegrets) s.Require().Equal(paramsExpected.InferenceOutlierDetectionThreshold, params.InferenceOutlierDetectionThreshold) s.Require().Equal(paramsExpected.InferenceOutlierDetectionAlpha, params.InferenceOutlierDetectionAlpha) - s.Require().Equal(paramsExpected.NewParticipantScoreInitializationKappa, params.NewParticipantScoreInitializationKappa) + s.Require().Equal(paramsExpected.SortitionLambdaPenalty, params.SortitionLambdaPenalty) } diff --git a/x/emissions/module/rewards/rewards_test.go b/x/emissions/module/rewards/rewards_test.go index c613b23f5..1afc1ab6f 100644 --- a/x/emissions/module/rewards/rewards_test.go +++ b/x/emissions/module/rewards/rewards_test.go @@ -2175,51 +2175,51 @@ func (s *RewardsTestSuite) SetParamsForTest() { RegistrationFee: []cosmosMath.Int{cosmosMath.NewInt(6)}, MaxActiveTopicsPerBlock: []uint64{2}, // the following fields are not set - Version: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopForecastersToReward: nil, - MaxTopReputersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - EpsilonReputer: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, - NewParticipantScoreInitializationKappa: nil, + Version: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopForecastersToReward: nil, + MaxTopReputersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + EpsilonReputer: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + SortitionLambdaPenalty: nil, } updateMsg := &types.UpdateParamsRequest{ diff --git a/x/emissions/proto/emissions/v7/params.proto b/x/emissions/proto/emissions/v7/params.proto index d2058de90..0e02e124b 100644 --- a/x/emissions/proto/emissions/v7/params.proto +++ b/x/emissions/proto/emissions/v7/params.proto @@ -165,7 +165,8 @@ message Params { (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; - string new_participant_score_initialization_kappa = 55 [ + // Constant used to determine the penalty for non-live actors + string sortition_lambda_penalty = 55 [ (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; diff --git a/x/emissions/proto/emissions/v7/tx.proto b/x/emissions/proto/emissions/v7/tx.proto index 33bb01326..76c660bba 100644 --- a/x/emissions/proto/emissions/v7/tx.proto +++ b/x/emissions/proto/emissions/v7/tx.proto @@ -217,7 +217,7 @@ message OptionalParams { (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; - repeated string new_participant_score_initialization_kappa = 55 [ + repeated string sortition_lambda_penalty = 55 [ (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; diff --git a/x/emissions/types/params.pb.go b/x/emissions/types/params.pb.go index e7c832134..668315e8d 100644 --- a/x/emissions/types/params.pb.go +++ b/x/emissions/types/params.pb.go @@ -94,9 +94,10 @@ type Params struct { TopicCreatorWhitelistEnabled bool `protobuf:"varint,51,opt,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` MinExperiencedWorkerRegrets uint64 `protobuf:"varint,52,opt,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` // for calculating the topic initial regret - InferenceOutlierDetectionThreshold github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` - InferenceOutlierDetectionAlpha github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` - NewParticipantScoreInitializationKappa github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,opt,name=new_participant_score_initialization_kappa,json=newParticipantScoreInitializationKappa,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"new_participant_score_initialization_kappa"` + InferenceOutlierDetectionThreshold github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` + InferenceOutlierDetectionAlpha github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` + // Constant used to determine the penalty for non-live actors + SortitionLambdaPenalty github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,opt,name=sortition_lambda_penalty,json=sortitionLambdaPenalty,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"sortition_lambda_penalty"` } func (m *Params) Reset() { *m = Params{} } @@ -293,106 +294,105 @@ func init() { func init() { proto.RegisterFile("emissions/v7/params.proto", fileDescriptor_8c07ddd983414a3f) } var fileDescriptor_8c07ddd983414a3f = []byte{ - // 1570 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4b, 0x6f, 0x14, 0xc7, - 0x16, 0xf6, 0x5c, 0x8c, 0x31, 0x85, 0xb1, 0xc7, 0x7d, 0x8d, 0x69, 0xbf, 0xc6, 0xc6, 0x06, 0xee, - 0xe0, 0x0b, 0x1e, 0x12, 0x92, 0x98, 0x3c, 0x16, 0x01, 0x6c, 0x23, 0x3b, 0x98, 0x38, 0x6d, 0x07, - 0x4b, 0x24, 0x4a, 0xa5, 0xdc, 0x7d, 0x66, 0xa6, 0xe4, 0xee, 0xaa, 0xa6, 0xaa, 0xe6, 0x61, 0x96, - 0x91, 0xb2, 0xc9, 0x2a, 0x52, 0x94, 0xff, 0x90, 0x65, 0x16, 0xf9, 0x11, 0x2c, 0x51, 0x56, 0x51, - 0x16, 0x28, 0x82, 0x45, 0xfe, 0x46, 0x54, 0x8f, 0x9e, 0x07, 0x26, 0x28, 0xa2, 0xb3, 0xb1, 0xdc, - 0x5d, 0xe7, 0x7c, 0xdf, 0xe9, 0xaf, 0x4e, 0x9d, 0x73, 0x6a, 0xd0, 0x14, 0x24, 0x54, 0x4a, 0xca, - 0x99, 0xac, 0x34, 0x57, 0x2b, 0x29, 0x11, 0x24, 0x91, 0x2b, 0xa9, 0xe0, 0x8a, 0x7b, 0x23, 0x9d, - 0xa5, 0x95, 0xe6, 0xea, 0xf4, 0x38, 0x49, 0x28, 0xe3, 0x15, 0xf3, 0xd7, 0x1a, 0x4c, 0x4f, 0x85, - 0x5c, 0x26, 0x5c, 0x62, 0xf3, 0x54, 0xb1, 0x0f, 0x6e, 0x69, 0xa2, 0xc6, 0x6b, 0xdc, 0xbe, 0xd7, - 0xff, 0xd9, 0xb7, 0x8b, 0x3f, 0x2e, 0xa2, 0xa1, 0x1d, 0x43, 0xe1, 0xf9, 0xe8, 0x54, 0x13, 0x84, - 0x46, 0xf7, 0x0b, 0x0b, 0x85, 0xf2, 0xe9, 0x20, 0x7b, 0xf4, 0xde, 0x47, 0x53, 0x09, 0x69, 0x63, - 0x09, 0x82, 0x92, 0x98, 0x3e, 0x86, 0x08, 0x27, 0xb2, 0x86, 0x63, 0x60, 0x35, 0x55, 0xf7, 0xff, - 0xb3, 0x50, 0x28, 0x9f, 0x08, 0x26, 0x13, 0xd2, 0xde, 0xed, 0xac, 0x6f, 0xcb, 0xda, 0x3d, 0xb3, - 0xea, 0x11, 0x54, 0x4c, 0x28, 0xc3, 0x8a, 0xa7, 0x34, 0xc4, 0x2d, 0xa0, 0xb5, 0xba, 0xf2, 0x4f, - 0x68, 0xf4, 0xdb, 0xab, 0x4f, 0x9e, 0xcd, 0x0f, 0xfc, 0xfe, 0x6c, 0xbe, 0x52, 0xa3, 0xaa, 0xde, - 0x38, 0x58, 0x09, 0x79, 0x52, 0x21, 0x71, 0xcc, 0x05, 0xb9, 0xc6, 0x40, 0xb5, 0xb8, 0x38, 0xcc, - 0x1e, 0xc3, 0x3a, 0xa1, 0xac, 0x92, 0x10, 0x55, 0x5f, 0x59, 0x83, 0x30, 0x18, 0x4d, 0x28, 0xdb, - 0xd3, 0x78, 0xfb, 0x06, 0xce, 0xab, 0xa2, 0x49, 0x01, 0x8f, 0x1a, 0x54, 0xe8, 0xb8, 0x28, 0xa3, - 0x49, 0x23, 0xc1, 0x52, 0x91, 0x43, 0xf0, 0x4f, 0x1a, 0xa2, 0xeb, 0x8e, 0xe8, 0x9c, 0x95, 0x43, - 0x46, 0x87, 0x2b, 0x94, 0x5b, 0xb8, 0x4d, 0xa6, 0x7e, 0xfd, 0xe5, 0x1a, 0x72, 0x3a, 0x6d, 0x32, - 0xf5, 0xd3, 0x9f, 0x3f, 0x2f, 0x17, 0x82, 0x89, 0x0c, 0x6f, 0xdb, 0xc2, 0xed, 0x6a, 0x34, 0xad, - 0x82, 0x80, 0x84, 0x37, 0xc1, 0xa2, 0xe3, 0x08, 0x62, 0x72, 0x84, 0x5b, 0x94, 0x45, 0xbc, 0xe5, - 0x0f, 0x59, 0x15, 0xac, 0x81, 0xb1, 0x5f, 0xd3, 0xcb, 0xfb, 0x66, 0xd5, 0x2b, 0x5b, 0x15, 0x20, - 0xe5, 0x61, 0x3d, 0xd3, 0xed, 0x94, 0xf1, 0xd0, 0x1f, 0xb3, 0xae, 0x5f, 0x3b, 0xbd, 0x1e, 0xa2, - 0x91, 0x03, 0x50, 0x04, 0x03, 0x53, 0x82, 0xa7, 0x47, 0xfe, 0x70, 0x3e, 0xad, 0xce, 0x68, 0xb0, - 0x75, 0x8b, 0xe5, 0x7d, 0x89, 0xce, 0xc6, 0x40, 0x04, 0xa3, 0xac, 0x86, 0x05, 0x51, 0xe0, 0x9f, - 0xce, 0x07, 0x3e, 0x92, 0xa1, 0x05, 0x44, 0x81, 0x97, 0x20, 0x9d, 0x03, 0xb8, 0x26, 0x48, 0x44, - 0x81, 0x29, 0xac, 0xea, 0x02, 0x64, 0x9d, 0xc7, 0x91, 0x8f, 0xf2, 0xd1, 0x4c, 0x24, 0xa4, 0x7d, - 0xd7, 0xa1, 0xee, 0x65, 0xa0, 0x1e, 0x20, 0x4f, 0x4b, 0x6a, 0xb7, 0xa2, 0x2a, 0x48, 0xa8, 0x74, - 0xe2, 0x9e, 0xc9, 0x47, 0xa5, 0x77, 0xc9, 0x6c, 0xde, 0x86, 0x03, 0xf4, 0xd6, 0xd1, 0xbc, 0xfe, - 0xaa, 0x06, 0xab, 0x36, 0xe2, 0x2a, 0x8d, 0x63, 0x88, 0xb0, 0xf6, 0x07, 0x81, 0x75, 0x8e, 0x80, - 0x54, 0xd2, 0x3f, 0xbb, 0x50, 0x28, 0x0f, 0x06, 0xb3, 0x09, 0x69, 0x7f, 0xde, 0xb5, 0xda, 0x37, - 0x46, 0x81, 0xb3, 0xf1, 0xee, 0xa2, 0x85, 0x97, 0x61, 0x04, 0xa4, 0x0d, 0xd5, 0x8b, 0x33, 0x6a, - 0x70, 0xe6, 0xfa, 0x71, 0x02, 0x6b, 0xd5, 0x01, 0x7a, 0x8c, 0xe6, 0xec, 0x59, 0x12, 0xd0, 0x22, - 0x22, 0x72, 0xdf, 0x4f, 0x93, 0x94, 0x0b, 0x45, 0x58, 0x08, 0xfe, 0x58, 0x3e, 0x05, 0xa6, 0x0d, - 0x7a, 0x60, 0xc0, 0x8d, 0x12, 0x9b, 0x1d, 0x68, 0xef, 0xdb, 0x02, 0x5a, 0xea, 0x23, 0xaf, 0x02, - 0x60, 0x01, 0x4d, 0x60, 0x8d, 0xbe, 0x10, 0x8a, 0xf9, 0x42, 0x98, 0xef, 0x09, 0x61, 0x03, 0x20, - 0xb0, 0x04, 0x3d, 0x71, 0x00, 0xf2, 0xfa, 0xc2, 0x20, 0x71, 0x5a, 0x27, 0xfe, 0x78, 0xce, 0xad, - 0xef, 0x61, 0xbd, 0xa5, 0x01, 0xbd, 0x10, 0x8d, 0x2b, 0x22, 0x0f, 0xfb, 0x59, 0xbc, 0x7c, 0x2c, - 0x63, 0x1a, 0xb1, 0x97, 0x44, 0x6b, 0xda, 0x24, 0x31, 0x8d, 0x88, 0xe2, 0x42, 0xe2, 0xa6, 0xc4, - 0xd6, 0x11, 0xa7, 0x20, 0x42, 0x7d, 0x8c, 0x2c, 0xbb, 0xff, 0xdf, 0x9c, 0x9a, 0x76, 0x39, 0x1e, - 0xc8, 0x5b, 0xc6, 0x64, 0xc7, 0x12, 0xd8, 0x60, 0xbc, 0x8f, 0xd0, 0x8c, 0x29, 0xf1, 0x24, 0x49, + // 1553 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4d, 0x6f, 0x14, 0x47, + 0x13, 0xf6, 0xbe, 0x18, 0x63, 0x1a, 0x63, 0xaf, 0xe7, 0x35, 0x66, 0xfc, 0xb5, 0x36, 0x18, 0x92, + 0xc5, 0x01, 0x2f, 0x09, 0x49, 0x4c, 0x3e, 0x0e, 0x01, 0x6c, 0x23, 0x5b, 0x98, 0x38, 0x63, 0x07, + 0x4b, 0x24, 0x4a, 0xa7, 0x3d, 0x53, 0xbb, 0xdb, 0xf2, 0x4c, 0xf7, 0xd0, 0xdd, 0xbb, 0x5e, 0x73, + 0x8c, 0x94, 0x4b, 0x4e, 0xf9, 0x19, 0x39, 0xe6, 0x90, 0x1f, 0xc1, 0x11, 0xe5, 0x14, 0xe5, 0x80, + 0x22, 0x38, 0xe4, 0x9e, 0x5f, 0x10, 0xf5, 0xc7, 0xcc, 0xee, 0x62, 0x82, 0x22, 0x26, 0x17, 0xcb, + 0x33, 0x5d, 0xf5, 0x3c, 0x35, 0x4f, 0x57, 0x57, 0x55, 0x2f, 0x9a, 0x82, 0x84, 0x4a, 0x49, 0x39, + 0x93, 0xb5, 0xf6, 0x4a, 0x2d, 0x25, 0x82, 0x24, 0x72, 0x39, 0x15, 0x5c, 0x71, 0x6f, 0x24, 0x5f, + 0x5a, 0x6e, 0xaf, 0x4c, 0x8f, 0x93, 0x84, 0x32, 0x5e, 0x33, 0x7f, 0xad, 0xc1, 0xf4, 0x54, 0xc8, + 0x65, 0xc2, 0x25, 0x36, 0x4f, 0x35, 0xfb, 0xe0, 0x96, 0x26, 0x1a, 0xbc, 0xc1, 0xed, 0x7b, 0xfd, + 0x9f, 0x7d, 0x7b, 0xf1, 0xaf, 0x0b, 0x68, 0x68, 0xdb, 0x50, 0x78, 0x3e, 0x3a, 0xd5, 0x06, 0xa1, + 0xd1, 0xfd, 0xd2, 0x42, 0xa9, 0x7a, 0x3a, 0xc8, 0x1e, 0xbd, 0x8f, 0xd0, 0x54, 0x42, 0x3a, 0x58, + 0x82, 0xa0, 0x24, 0xa6, 0x8f, 0x21, 0xc2, 0x89, 0x6c, 0xe0, 0x18, 0x58, 0x43, 0x35, 0xfd, 0xff, + 0x2d, 0x94, 0xaa, 0x27, 0x82, 0xc9, 0x84, 0x74, 0x76, 0xf2, 0xf5, 0x2d, 0xd9, 0xb8, 0x67, 0x56, + 0x3d, 0x82, 0xca, 0x09, 0x65, 0x58, 0xf1, 0x94, 0x86, 0xf8, 0x10, 0x68, 0xa3, 0xa9, 0xfc, 0x13, + 0x1a, 0xfd, 0xf6, 0xca, 0x93, 0x67, 0xf3, 0x03, 0xbf, 0x3f, 0x9b, 0xaf, 0x35, 0xa8, 0x6a, 0xb6, + 0xf6, 0x97, 0x43, 0x9e, 0xd4, 0x48, 0x1c, 0x73, 0x41, 0xae, 0x31, 0x50, 0x87, 0x5c, 0x1c, 0x64, + 0x8f, 0x61, 0x93, 0x50, 0x56, 0x4b, 0x88, 0x6a, 0x2e, 0xaf, 0x42, 0x18, 0x8c, 0x26, 0x94, 0xed, + 0x6a, 0xbc, 0x3d, 0x03, 0xe7, 0xd5, 0xd1, 0xa4, 0x80, 0x47, 0x2d, 0x2a, 0x74, 0x5c, 0x94, 0xd1, + 0xa4, 0x95, 0x60, 0xa9, 0xc8, 0x01, 0xf8, 0x27, 0x0d, 0xd1, 0x75, 0x47, 0x74, 0xce, 0xca, 0x21, + 0xa3, 0x83, 0x65, 0xca, 0x2d, 0xdc, 0x06, 0x53, 0xbf, 0xfe, 0x72, 0x0d, 0x39, 0x9d, 0x36, 0x98, + 0xfa, 0xe9, 0xcf, 0x9f, 0x97, 0x4a, 0xc1, 0x44, 0x86, 0xb7, 0x65, 0xe1, 0x76, 0x34, 0x9a, 0x56, + 0x41, 0x40, 0xc2, 0xdb, 0x60, 0xd1, 0x71, 0x04, 0x31, 0x39, 0xc2, 0x87, 0x94, 0x45, 0xfc, 0xd0, + 0x1f, 0xb2, 0x2a, 0x58, 0x03, 0x63, 0xbf, 0xaa, 0x97, 0xf7, 0xcc, 0xaa, 0x57, 0xb5, 0x2a, 0x40, + 0xca, 0xc3, 0x66, 0xa6, 0xdb, 0x29, 0xe3, 0xa1, 0x3f, 0x66, 0x4d, 0xbf, 0x76, 0x7a, 0x3d, 0x44, + 0x23, 0xfb, 0xa0, 0x08, 0x06, 0xa6, 0x04, 0x4f, 0x8f, 0xfc, 0xe1, 0x62, 0x5a, 0x9d, 0xd1, 0x60, + 0x6b, 0x16, 0xcb, 0xfb, 0x1a, 0x9d, 0x8d, 0x81, 0x08, 0x46, 0x59, 0x03, 0x0b, 0xa2, 0xc0, 0x3f, + 0x5d, 0x0c, 0x7c, 0x24, 0x43, 0x0b, 0x88, 0x02, 0x2f, 0x41, 0x3a, 0x07, 0x70, 0x43, 0x90, 0x88, + 0x02, 0x53, 0x58, 0x35, 0x05, 0xc8, 0x26, 0x8f, 0x23, 0x1f, 0x15, 0xa3, 0x99, 0x48, 0x48, 0xe7, + 0xae, 0x43, 0xdd, 0xcd, 0x40, 0x3d, 0x40, 0x9e, 0x96, 0xd4, 0x6e, 0x45, 0x5d, 0x90, 0x50, 0xe9, + 0xc4, 0x3d, 0x53, 0x8c, 0x4a, 0xef, 0x92, 0xd9, 0xbc, 0x75, 0x07, 0xe8, 0xad, 0xa1, 0x79, 0xfd, + 0x55, 0x2d, 0x56, 0x6f, 0xc5, 0x75, 0x1a, 0xc7, 0x10, 0x61, 0xed, 0x0f, 0x02, 0xeb, 0x1c, 0x01, + 0xa9, 0xa4, 0x7f, 0x76, 0xa1, 0x54, 0x1d, 0x0c, 0x66, 0x13, 0xd2, 0xf9, 0xb2, 0x6b, 0xb5, 0x67, + 0x8c, 0x02, 0x67, 0xe3, 0xdd, 0x45, 0x0b, 0x2f, 0xc3, 0x08, 0x48, 0x5b, 0xaa, 0x17, 0x67, 0xd4, + 0xe0, 0xcc, 0xf5, 0xe3, 0x04, 0xd6, 0x2a, 0x07, 0x7a, 0x8c, 0xe6, 0xec, 0x59, 0x12, 0x70, 0x48, + 0x44, 0xe4, 0xbe, 0x9f, 0x26, 0x29, 0x17, 0x8a, 0xb0, 0x10, 0xfc, 0xb1, 0x62, 0x0a, 0x4c, 0x1b, + 0xf4, 0xc0, 0x80, 0x1b, 0x25, 0x36, 0x72, 0x68, 0xef, 0xfb, 0x12, 0x5a, 0xec, 0x23, 0xaf, 0x03, + 0x60, 0x01, 0x6d, 0x60, 0xad, 0xbe, 0x10, 0xca, 0xc5, 0x42, 0x98, 0xef, 0x09, 0x61, 0x1d, 0x20, + 0xb0, 0x04, 0x3d, 0x71, 0x00, 0xf2, 0xfa, 0xc2, 0x20, 0x71, 0xda, 0x24, 0xfe, 0x78, 0xc1, 0xad, + 0xef, 0x61, 0xbd, 0xa5, 0x01, 0xbd, 0x10, 0x8d, 0x2b, 0x22, 0x0f, 0xfa, 0x59, 0xbc, 0x62, 0x2c, + 0x63, 0x1a, 0xb1, 0x97, 0x44, 0x6b, 0xda, 0x26, 0x31, 0x8d, 0x88, 0xe2, 0x42, 0xe2, 0xb6, 0xc4, + 0xd6, 0x11, 0xa7, 0x20, 0x42, 0x7d, 0x8c, 0x2c, 0xbb, 0xff, 0xff, 0x82, 0x9a, 0x76, 0x39, 0x1e, + 0xc8, 0x5b, 0xc6, 0x64, 0xdb, 0x12, 0xd8, 0x60, 0xbc, 0x4f, 0xd1, 0x8c, 0x29, 0xf1, 0x24, 0x49, 0x63, 0x90, 0x58, 0x71, 0x2c, 0x43, 0x12, 0x03, 0x96, 0x21, 0x17, 0x20, 0xfd, 0x09, 0x93, 0x9b, - 0xe7, 0x75, 0x91, 0xb7, 0x16, 0x7b, 0x7c, 0x57, 0xaf, 0xef, 0x9a, 0x65, 0xef, 0x03, 0x34, 0xad, - 0xbd, 0x15, 0x4f, 0x31, 0x65, 0x55, 0x10, 0x20, 0x0c, 0x84, 0x8b, 0xfd, 0x9c, 0x71, 0xd6, 0xd5, - 0x61, 0x8f, 0xa7, 0x9b, 0x6e, 0x7d, 0x8f, 0x3b, 0xe6, 0x8f, 0xd1, 0x5c, 0xe6, 0x5b, 0xe5, 0x02, - 0x42, 0x22, 0x55, 0xbf, 0xfb, 0xa4, 0x71, 0x9f, 0xb2, 0xee, 0x1b, 0x5d, 0x93, 0x0e, 0x42, 0x0f, - 0xbb, 0x3b, 0x54, 0xbd, 0xee, 0xe7, 0x7b, 0xd9, 0xdd, 0x71, 0xea, 0xfa, 0x3e, 0x44, 0xc5, 0x50, - 0x00, 0x51, 0xe0, 0x5a, 0x54, 0x15, 0xc0, 0xf7, 0xdf, 0xb0, 0x6d, 0x8c, 0x5a, 0x24, 0xd3, 0x9b, - 0x36, 0x00, 0xbc, 0x0f, 0xd1, 0x74, 0xa7, 0x1a, 0x46, 0x20, 0xcd, 0x76, 0xea, 0x40, 0xa9, 0x8e, - 0xc0, 0x9f, 0xb2, 0x92, 0x66, 0x16, 0x6b, 0xd6, 0x60, 0x9b, 0xb4, 0x37, 0xf5, 0xb2, 0xf7, 0x05, - 0x2a, 0x0a, 0xa8, 0x51, 0xa9, 0x04, 0xd1, 0x85, 0xc8, 0x04, 0x36, 0xfb, 0x86, 0x81, 0x8d, 0xf5, - 0x22, 0xe9, 0xc8, 0xae, 0x22, 0x2f, 0x82, 0x2a, 0x69, 0xc4, 0x0a, 0xa7, 0xa4, 0x06, 0x38, 0xa6, - 0x09, 0x55, 0xfe, 0x9c, 0x89, 0xa8, 0xe8, 0x56, 0x76, 0x48, 0x0d, 0xee, 0xe9, 0xf7, 0xde, 0x45, - 0x34, 0xaa, 0xc3, 0xee, 0xb1, 0x2c, 0x19, 0xcb, 0x91, 0x84, 0xb4, 0xbb, 0x56, 0x7a, 0x1f, 0x5f, - 0xea, 0x71, 0x58, 0x40, 0xc8, 0x45, 0xe4, 0x9c, 0xe6, 0x4d, 0xc3, 0x9b, 0xea, 0x6f, 0x78, 0x81, - 0xb1, 0xb0, 0x08, 0x65, 0x54, 0x3c, 0x88, 0x79, 0x78, 0x28, 0x75, 0xf2, 0xe3, 0x84, 0x33, 0x55, - 0xf7, 0x17, 0x0c, 0xd3, 0xa8, 0x7d, 0xbf, 0x03, 0x62, 0x5b, 0xbf, 0xd5, 0x15, 0x20, 0xcd, 0xce, - 0xa5, 0x4d, 0x38, 0x5d, 0x77, 0x2e, 0xe4, 0xac, 0x00, 0xa9, 0xcd, 0x89, 0xcd, 0x0c, 0x50, 0x57, - 0x80, 0x0e, 0x4d, 0x96, 0x9b, 0xfe, 0x62, 0xce, 0x0a, 0xe0, 0x58, 0xb2, 0x44, 0xd6, 0x13, 0x52, - 0x87, 0xc4, 0xa5, 0xaf, 0xbf, 0x94, 0x73, 0x42, 0x72, 0x1c, 0x2e, 0xdb, 0xb5, 0x5c, 0xe1, 0x71, - 0xb9, 0x2e, 0xe6, 0x94, 0x2b, 0x7c, 0x85, 0x5c, 0xe1, 0x31, 0xb9, 0x2e, 0xe5, 0x94, 0x2b, 0x7c, - 0x49, 0xae, 0xfb, 0x68, 0x28, 0xc4, 0x8c, 0x8b, 0xc4, 0xbf, 0x9c, 0x0f, 0xf9, 0x64, 0x78, 0x9f, - 0x8b, 0xc4, 0xfb, 0x1a, 0x8d, 0x41, 0x2a, 0x69, 0xcc, 0x59, 0x47, 0xfd, 0x72, 0x4e, 0xf5, 0x1d, - 0x5e, 0xa6, 0xfe, 0x03, 0x74, 0xa5, 0x4e, 0xe2, 0xaa, 0x39, 0xfa, 0xa9, 0xe0, 0x21, 0x48, 0xe9, - 0xda, 0xb6, 0x99, 0x16, 0x49, 0x2c, 0x31, 0xb0, 0x08, 0x9b, 0x14, 0xf7, 0x97, 0x4d, 0xbe, 0x2f, - 0x69, 0x87, 0x6d, 0xd2, 0xde, 0xb1, 0xe6, 0xa6, 0x11, 0x07, 0xce, 0x78, 0x9d, 0x45, 0xb7, 0xb5, - 0xa9, 0x4e, 0x9c, 0x2c, 0x72, 0x49, 0xaa, 0x80, 0x23, 0xda, 0xf4, 0xff, 0xff, 0xef, 0x84, 0xbe, - 0x4b, 0xaa, 0xb0, 0x46, 0x9b, 0xba, 0x3a, 0x46, 0x44, 0x11, 0x2c, 0x81, 0x45, 0x7a, 0x6a, 0xd4, - 0x45, 0xe8, 0xea, 0x9b, 0x56, 0x47, 0x8d, 0xb4, 0x6b, 0x81, 0x74, 0x0d, 0x72, 0x97, 0x0a, 0x88, - 0x21, 0x01, 0xa6, 0xec, 0x99, 0xef, 0x64, 0xcd, 0xb5, 0x4e, 0xd1, 0x5e, 0x77, 0xeb, 0x3b, 0x20, - 0x3a, 0x39, 0xe0, 0x9a, 0x95, 0x1e, 0xd1, 0x9a, 0xae, 0x70, 0x5b, 0x7f, 0xab, 0xe1, 0x4a, 0xa7, - 0x59, 0xdd, 0x32, 0x16, 0xa6, 0x20, 0x6b, 0x00, 0xab, 0xdb, 0x32, 0x1a, 0x37, 0xad, 0x4e, 0x09, - 0xfd, 0x49, 0x6e, 0x1a, 0xaf, 0x18, 0x9f, 0x31, 0xdd, 0xe0, 0xcc, 0x7b, 0x37, 0x8e, 0x73, 0x74, - 0x9e, 0x32, 0xaa, 0x28, 0x89, 0xb1, 0x80, 0x9a, 0x00, 0x85, 0x1f, 0x35, 0x08, 0x53, 0x34, 0x06, - 0xff, 0x7a, 0x3e, 0xa9, 0xcf, 0x39, 0xdc, 0xc0, 0xc0, 0x7e, 0xe6, 0x50, 0xbd, 0xaf, 0xd0, 0x58, - 0x6a, 0xd2, 0xbb, 0xbb, 0xa7, 0x6f, 0xe5, 0x9c, 0xd2, 0x53, 0x9d, 0xe7, 0xd9, 0x8e, 0xde, 0x44, - 0x7e, 0x2d, 0xe6, 0x07, 0x24, 0xc6, 0xad, 0x3a, 0x55, 0x10, 0x53, 0xa9, 0x30, 0x30, 0x72, 0x10, - 0x43, 0xe4, 0xbf, 0xbd, 0x50, 0x28, 0x0f, 0x07, 0x93, 0x76, 0x7d, 0x3f, 0x5b, 0x5e, 0xb7, 0xab, - 0x7a, 0x12, 0xb6, 0x2d, 0xd2, 0x74, 0x39, 0x2e, 0x5e, 0x01, 0x70, 0xc3, 0x00, 0xcc, 0x1a, 0xb3, - 0x3b, 0xd6, 0xea, 0x18, 0xcc, 0x1d, 0x54, 0x32, 0x6d, 0xa2, 0x9d, 0x82, 0xa0, 0xba, 0x6c, 0xf4, - 0x0c, 0xd4, 0x5a, 0x09, 0xe9, 0xbf, 0x63, 0xb6, 0x62, 0x46, 0xf7, 0x89, 0xae, 0x51, 0x36, 0x4f, - 0x1b, 0x13, 0xef, 0xbb, 0x02, 0xba, 0xd4, 0x29, 0x64, 0x98, 0x37, 0x54, 0x4c, 0x41, 0xe0, 0x08, - 0x14, 0x98, 0xa9, 0xbd, 0xe7, 0xee, 0xf1, 0x6e, 0x3e, 0xf1, 0x16, 0x3b, 0x2c, 0x9f, 0x5a, 0x92, - 0xb5, 0x8c, 0xa3, 0x7b, 0x13, 0xf9, 0xa6, 0x80, 0x2e, 0xbc, 0x2e, 0x18, 0x3b, 0x38, 0xbe, 0x97, - 0x2f, 0x90, 0xd2, 0xdf, 0x06, 0x62, 0xe7, 0xc8, 0x1f, 0x0a, 0x68, 0x99, 0x41, 0x0b, 0xa7, 0x44, - 0x28, 0x1a, 0xd2, 0x94, 0x30, 0x65, 0x67, 0x37, 0xec, 0xf2, 0x8c, 0x3e, 0xb6, 0x73, 0xc4, 0x21, - 0x49, 0x53, 0xe2, 0xaf, 0xe6, 0x8b, 0xe6, 0x32, 0x83, 0xd6, 0x4e, 0x97, 0xc9, 0x4c, 0x81, 0x9b, - 0x7d, 0x3c, 0x9f, 0x68, 0x9a, 0xad, 0xc1, 0xe1, 0xc1, 0xe2, 0xc9, 0xad, 0xc1, 0xe1, 0xe9, 0xe2, - 0xcc, 0xd6, 0xe0, 0xf0, 0x4c, 0x71, 0x76, 0x6b, 0x70, 0xf8, 0x7f, 0xc5, 0xf2, 0xd6, 0xe0, 0xf0, - 0x95, 0xe2, 0xb2, 0xb9, 0xd8, 0x1d, 0x3b, 0xbd, 0x66, 0xe3, 0x31, 0x54, 0xab, 0xd0, 0x73, 0xba, - 0xb3, 0x5b, 0x46, 0xb0, 0xa4, 0x5d, 0x04, 0x28, 0x41, 0xed, 0x90, 0x6a, 0xef, 0x49, 0x98, 0x71, - 0x16, 0x82, 0x74, 0x89, 0xe4, 0x12, 0xb0, 0xef, 0x76, 0x12, 0x41, 0x48, 0x8e, 0xcc, 0xa5, 0x37, - 0xb8, 0xf8, 0x5a, 0x08, 0xd7, 0x03, 0x6e, 0x07, 0x4f, 0x9e, 0x97, 0x0a, 0x4f, 0x9f, 0x97, 0x0a, - 0x7f, 0x3c, 0x2f, 0x15, 0xbe, 0x7f, 0x51, 0x1a, 0x78, 0xfa, 0xa2, 0x34, 0xf0, 0xdb, 0x8b, 0xd2, - 0xc0, 0xc3, 0x9b, 0xff, 0x50, 0xac, 0x76, 0xa5, 0xfb, 0x3b, 0x8e, 0x3a, 0x4a, 0x41, 0x1e, 0x0c, - 0x99, 0x9f, 0x5c, 0x6e, 0xfc, 0x15, 0x00, 0x00, 0xff, 0xff, 0xdc, 0xd9, 0x52, 0x6a, 0xe1, 0x11, - 0x00, 0x00, + 0xe7, 0x75, 0x91, 0xb7, 0x16, 0xbb, 0x7c, 0x47, 0xaf, 0xef, 0x98, 0x65, 0xef, 0x63, 0x34, 0xad, + 0xbd, 0x15, 0x4f, 0x31, 0x65, 0x75, 0x10, 0x20, 0x0c, 0x84, 0x8b, 0xfd, 0x9c, 0x71, 0xd6, 0xd5, + 0x61, 0x97, 0xa7, 0x1b, 0x6e, 0x7d, 0x97, 0x3b, 0xe6, 0xcf, 0xd0, 0x5c, 0xe6, 0x5b, 0xe7, 0x02, + 0x42, 0x22, 0x55, 0xbf, 0xfb, 0xa4, 0x71, 0x9f, 0xb2, 0xee, 0xeb, 0x5d, 0x93, 0x1c, 0xa1, 0x87, + 0xdd, 0x1d, 0xaa, 0x5e, 0xf7, 0xf3, 0xbd, 0xec, 0xee, 0x38, 0x75, 0x7d, 0x1f, 0xa2, 0x72, 0x28, + 0x80, 0x28, 0x70, 0x2d, 0xaa, 0x0e, 0xe0, 0xfb, 0x6f, 0xd8, 0x36, 0x46, 0x2d, 0x92, 0xe9, 0x4d, + 0xeb, 0x00, 0xde, 0x27, 0x68, 0x3a, 0xaf, 0x86, 0x11, 0x48, 0xb3, 0x9d, 0x3a, 0x50, 0xaa, 0x23, + 0xf0, 0xa7, 0xac, 0xa4, 0x99, 0xc5, 0xaa, 0x35, 0xd8, 0x22, 0x9d, 0x0d, 0xbd, 0xec, 0x7d, 0x85, + 0xca, 0x02, 0x1a, 0x54, 0x2a, 0x41, 0x74, 0x21, 0x32, 0x81, 0xcd, 0xbe, 0x61, 0x60, 0x63, 0xbd, + 0x48, 0x3a, 0xb2, 0xab, 0xc8, 0x8b, 0xa0, 0x4e, 0x5a, 0xb1, 0xc2, 0x29, 0x69, 0x00, 0x8e, 0x69, + 0x42, 0x95, 0x3f, 0x67, 0x22, 0x2a, 0xbb, 0x95, 0x6d, 0xd2, 0x80, 0x7b, 0xfa, 0xbd, 0x77, 0x09, + 0x8d, 0xea, 0xb0, 0x7b, 0x2c, 0x2b, 0xc6, 0x72, 0x24, 0x21, 0x9d, 0xae, 0x95, 0xde, 0xc7, 0x97, + 0x7a, 0x1c, 0x16, 0x10, 0x72, 0x11, 0x39, 0xa7, 0x79, 0xd3, 0xf0, 0xa6, 0xfa, 0x1b, 0x5e, 0x60, + 0x2c, 0x2c, 0x42, 0x15, 0x95, 0xf7, 0x63, 0x1e, 0x1e, 0x48, 0x9d, 0xfc, 0x38, 0xe1, 0x4c, 0x35, + 0xfd, 0x05, 0xc3, 0x34, 0x6a, 0xdf, 0x6f, 0x83, 0xd8, 0xd2, 0x6f, 0x75, 0x05, 0x48, 0xb3, 0x73, + 0x69, 0x13, 0x4e, 0xd7, 0x9d, 0x0b, 0x05, 0x2b, 0x40, 0x6a, 0x73, 0x62, 0x23, 0x03, 0xd4, 0x15, + 0x20, 0xa7, 0xc9, 0x72, 0xd3, 0xbf, 0x58, 0xb0, 0x02, 0x38, 0x96, 0x2c, 0x91, 0xf5, 0x84, 0x94, + 0x93, 0xb8, 0xf4, 0xf5, 0x17, 0x0b, 0x4e, 0x48, 0x8e, 0xc3, 0x65, 0xbb, 0x96, 0x2b, 0x3c, 0x2e, + 0xd7, 0xa5, 0x82, 0x72, 0x85, 0xaf, 0x90, 0x2b, 0x3c, 0x26, 0xd7, 0xe5, 0x82, 0x72, 0x85, 0x2f, + 0xc9, 0x75, 0x1f, 0x0d, 0x85, 0x98, 0x71, 0x91, 0xf8, 0x6f, 0x15, 0x43, 0x3e, 0x19, 0xde, 0xe7, + 0x22, 0xf1, 0xbe, 0x45, 0x63, 0x90, 0x4a, 0x1a, 0x73, 0x96, 0xab, 0x5f, 0x2d, 0xa8, 0xbe, 0xc3, + 0xcb, 0xd4, 0x7f, 0x80, 0xae, 0x34, 0x49, 0x5c, 0x37, 0x47, 0x3f, 0x15, 0x3c, 0x04, 0x29, 0x5d, + 0xdb, 0x36, 0xd3, 0x22, 0x89, 0x25, 0x06, 0x16, 0x61, 0x93, 0xe2, 0xfe, 0x92, 0xc9, 0xf7, 0x45, + 0xed, 0xb0, 0x45, 0x3a, 0xdb, 0xd6, 0xdc, 0x34, 0xe2, 0xc0, 0x19, 0xaf, 0xb1, 0xe8, 0xb6, 0x36, + 0xd5, 0x89, 0x93, 0x45, 0x2e, 0x49, 0x1d, 0x70, 0x44, 0xdb, 0xfe, 0x3b, 0xff, 0x4d, 0xe8, 0x3b, + 0xa4, 0x0e, 0xab, 0xb4, 0xad, 0xab, 0x63, 0x44, 0x14, 0xc1, 0x12, 0x58, 0xa4, 0xa7, 0x46, 0x5d, + 0x84, 0xae, 0xbe, 0x69, 0x75, 0xd4, 0x48, 0x3b, 0x16, 0x48, 0xd7, 0x20, 0x77, 0xa9, 0x80, 0x18, + 0x12, 0x60, 0xca, 0x9e, 0xf9, 0x3c, 0x6b, 0xae, 0xe5, 0x45, 0x7b, 0xcd, 0xad, 0x6f, 0x83, 0xc8, + 0x73, 0xc0, 0x35, 0x2b, 0x3d, 0xa2, 0xb5, 0x5d, 0xe1, 0xb6, 0xfe, 0x56, 0xc3, 0xe5, 0xbc, 0x59, + 0xdd, 0x32, 0x16, 0xa6, 0x20, 0x6b, 0x00, 0xab, 0xdb, 0x12, 0x1a, 0x37, 0xad, 0x4e, 0x09, 0xfd, + 0x49, 0x6e, 0x1a, 0xaf, 0x19, 0x9f, 0x31, 0xdd, 0xe0, 0xcc, 0x7b, 0x37, 0x8e, 0x73, 0x74, 0x9e, + 0x32, 0xaa, 0x28, 0x89, 0xb1, 0x80, 0x86, 0x00, 0x85, 0x1f, 0xb5, 0x08, 0x53, 0x34, 0x06, 0xff, + 0x7a, 0x31, 0xa9, 0xcf, 0x39, 0xdc, 0xc0, 0xc0, 0x7e, 0xe1, 0x50, 0xbd, 0x6f, 0xd0, 0x58, 0x6a, + 0xd2, 0xbb, 0xbb, 0xa7, 0xef, 0x16, 0x9c, 0xd2, 0x53, 0x9d, 0xe7, 0xd9, 0x8e, 0xde, 0x44, 0x7e, + 0x23, 0xe6, 0xfb, 0x24, 0xc6, 0x87, 0x4d, 0xaa, 0x20, 0xa6, 0x52, 0x61, 0x60, 0x64, 0x3f, 0x86, + 0xc8, 0x7f, 0x6f, 0xa1, 0x54, 0x1d, 0x0e, 0x26, 0xed, 0xfa, 0x5e, 0xb6, 0xbc, 0x66, 0x57, 0xf5, + 0x24, 0x6c, 0x5b, 0xa4, 0xe9, 0x72, 0x5c, 0xbc, 0x02, 0xe0, 0x86, 0x01, 0x98, 0x35, 0x66, 0x77, + 0xac, 0xd5, 0x31, 0x98, 0x3b, 0xa8, 0x62, 0xda, 0x44, 0x27, 0x05, 0x41, 0x75, 0xd9, 0xe8, 0x19, + 0xa8, 0xb5, 0x12, 0xd2, 0x7f, 0xdf, 0x6c, 0xc5, 0x8c, 0xee, 0x13, 0x5d, 0xa3, 0x6c, 0x9e, 0x36, + 0x26, 0xde, 0x0f, 0x25, 0x74, 0x39, 0x2f, 0x64, 0x98, 0xb7, 0x54, 0x4c, 0x41, 0xe0, 0x08, 0x14, + 0x98, 0xa9, 0xbd, 0xe7, 0xee, 0xf1, 0x41, 0x31, 0xf1, 0x2e, 0xe6, 0x2c, 0x9f, 0x5b, 0x92, 0xd5, + 0x8c, 0xa3, 0x7b, 0x13, 0xf9, 0xae, 0x84, 0x2e, 0xbc, 0x2e, 0x18, 0x3b, 0x38, 0x7e, 0x58, 0x2c, + 0x90, 0xca, 0x3f, 0x06, 0x62, 0xe7, 0xc8, 0x47, 0xc8, 0x97, 0x5c, 0x28, 0x6a, 0x18, 0x63, 0x92, + 0xec, 0x47, 0x7a, 0x84, 0x64, 0x24, 0x56, 0x47, 0xfe, 0x4a, 0x31, 0xea, 0xc9, 0x1c, 0xf8, 0x9e, + 0xc1, 0xdd, 0xb6, 0xb0, 0x9b, 0x83, 0xc3, 0x83, 0xe5, 0x93, 0x9b, 0x83, 0xc3, 0xd3, 0xe5, 0x99, + 0xcd, 0xc1, 0xe1, 0x99, 0xf2, 0xec, 0xe6, 0xe0, 0xf0, 0xdb, 0xe5, 0xea, 0xe6, 0xe0, 0xf0, 0x95, + 0xf2, 0x92, 0xb9, 0xb5, 0x1d, 0x3b, 0x9a, 0x66, 0x57, 0x31, 0xd4, 0xeb, 0xd0, 0x73, 0x74, 0xb3, + 0x2b, 0x44, 0xb0, 0xa8, 0x5d, 0x04, 0x28, 0x41, 0xed, 0x04, 0x6a, 0x2f, 0x41, 0x98, 0x71, 0x16, + 0x82, 0x74, 0x59, 0xe2, 0xb2, 0xab, 0xef, 0xea, 0x11, 0x41, 0x48, 0x8e, 0xcc, 0x8d, 0x36, 0xb8, + 0xf4, 0x5a, 0x08, 0x57, 0xe0, 0x6f, 0x07, 0x4f, 0x9e, 0x57, 0x4a, 0x4f, 0x9f, 0x57, 0x4a, 0x7f, + 0x3c, 0xaf, 0x94, 0x7e, 0x7c, 0x51, 0x19, 0x78, 0xfa, 0xa2, 0x32, 0xf0, 0xdb, 0x8b, 0xca, 0xc0, + 0xc3, 0x9b, 0xff, 0x52, 0x9c, 0x4e, 0xad, 0xfb, 0x23, 0x8d, 0x3a, 0x4a, 0x41, 0xee, 0x0f, 0x99, + 0xdf, 0x53, 0x6e, 0xfc, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x9b, 0xb5, 0xed, 0xbe, 0x11, 0x00, + 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -416,9 +416,9 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l { - size := m.NewParticipantScoreInitializationKappa.Size() + size := m.SortitionLambdaPenalty.Size() i -= size - if _, err := m.NewParticipantScoreInitializationKappa.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.SortitionLambdaPenalty.MarshalTo(dAtA[i:]); err != nil { return 0, err } i = encodeVarintParams(dAtA, i, uint64(size)) @@ -1018,7 +1018,7 @@ func (m *Params) Size() (n int) { n += 2 + l + sovParams(uint64(l)) l = m.InferenceOutlierDetectionAlpha.Size() n += 2 + l + sovParams(uint64(l)) - l = m.NewParticipantScoreInitializationKappa.Size() + l = m.SortitionLambdaPenalty.Size() n += 2 + l + sovParams(uint64(l)) return n } @@ -2377,7 +2377,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 55: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NewParticipantScoreInitializationKappa", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SortitionLambdaPenalty", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2405,7 +2405,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.NewParticipantScoreInitializationKappa.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SortitionLambdaPenalty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/emissions/types/tx.pb.go b/x/emissions/types/tx.pb.go index c4e6c3db6..7ae3ccf75 100644 --- a/x/emissions/types/tx.pb.go +++ b/x/emissions/types/tx.pb.go @@ -40,55 +40,55 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // optional field and if the repeated field is empty, it is considered to be the // same as if the field was not set type OptionalParams struct { - Version []string `protobuf:"bytes,1,rep,name=version,proto3" json:"version,omitempty"` - MaxSerializedMsgLength []int64 `protobuf:"varint,2,rep,packed,name=max_serialized_msg_length,json=maxSerializedMsgLength,proto3" json:"max_serialized_msg_length,omitempty"` - MinTopicWeight []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,3,rep,name=min_topic_weight,json=minTopicWeight,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"min_topic_weight"` - RequiredMinimumStake []cosmossdk_io_math.Int `protobuf:"bytes,5,rep,name=required_minimum_stake,json=requiredMinimumStake,proto3,customtype=cosmossdk.io/math.Int" json:"required_minimum_stake"` - RemoveStakeDelayWindow []int64 `protobuf:"varint,6,rep,packed,name=remove_stake_delay_window,json=removeStakeDelayWindow,proto3" json:"remove_stake_delay_window,omitempty"` - MinEpochLength []int64 `protobuf:"varint,7,rep,packed,name=min_epoch_length,json=minEpochLength,proto3" json:"min_epoch_length,omitempty"` - BetaEntropy []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,8,rep,name=beta_entropy,json=betaEntropy,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"beta_entropy"` - LearningRate []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,9,rep,name=learning_rate,json=learningRate,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"learning_rate"` - MaxGradientThreshold []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,10,rep,name=max_gradient_threshold,json=maxGradientThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"max_gradient_threshold"` - MinStakeFraction []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,11,rep,name=min_stake_fraction,json=minStakeFraction,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"min_stake_fraction"` - MaxUnfulfilledWorkerRequests []uint64 `protobuf:"varint,13,rep,packed,name=max_unfulfilled_worker_requests,json=maxUnfulfilledWorkerRequests,proto3" json:"max_unfulfilled_worker_requests,omitempty"` - MaxUnfulfilledReputerRequests []uint64 `protobuf:"varint,14,rep,packed,name=max_unfulfilled_reputer_requests,json=maxUnfulfilledReputerRequests,proto3" json:"max_unfulfilled_reputer_requests,omitempty"` - TopicRewardStakeImportance []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,15,rep,name=topic_reward_stake_importance,json=topicRewardStakeImportance,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_stake_importance"` - TopicRewardFeeRevenueImportance []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,16,rep,name=topic_reward_fee_revenue_importance,json=topicRewardFeeRevenueImportance,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_fee_revenue_importance"` - TopicRewardAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,17,rep,name=topic_reward_alpha,json=topicRewardAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_alpha"` - TaskRewardAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,18,rep,name=task_reward_alpha,json=taskRewardAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"task_reward_alpha"` - ValidatorsVsAlloraPercentReward []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,19,rep,name=validators_vs_allora_percent_reward,json=validatorsVsAlloraPercentReward,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"validators_vs_allora_percent_reward"` - MaxSamplesToScaleScores []uint64 `protobuf:"varint,20,rep,packed,name=max_samples_to_scale_scores,json=maxSamplesToScaleScores,proto3" json:"max_samples_to_scale_scores,omitempty"` - MaxTopInferersToReward []uint64 `protobuf:"varint,21,rep,packed,name=max_top_inferers_to_reward,json=maxTopInferersToReward,proto3" json:"max_top_inferers_to_reward,omitempty"` - MaxTopForecastersToReward []uint64 `protobuf:"varint,22,rep,packed,name=max_top_forecasters_to_reward,json=maxTopForecastersToReward,proto3" json:"max_top_forecasters_to_reward,omitempty"` - MaxTopReputersToReward []uint64 `protobuf:"varint,23,rep,packed,name=max_top_reputers_to_reward,json=maxTopReputersToReward,proto3" json:"max_top_reputers_to_reward,omitempty"` - CreateTopicFee []cosmossdk_io_math.Int `protobuf:"bytes,24,rep,name=create_topic_fee,json=createTopicFee,proto3,customtype=cosmossdk.io/math.Int" json:"create_topic_fee"` - GradientDescentMaxIters []uint64 `protobuf:"varint,25,rep,packed,name=gradient_descent_max_iters,json=gradientDescentMaxIters,proto3" json:"gradient_descent_max_iters,omitempty"` - RegistrationFee []cosmossdk_io_math.Int `protobuf:"bytes,28,rep,name=registration_fee,json=registrationFee,proto3,customtype=cosmossdk.io/math.Int" json:"registration_fee"` - DefaultPageLimit []uint64 `protobuf:"varint,29,rep,packed,name=default_page_limit,json=defaultPageLimit,proto3" json:"default_page_limit,omitempty"` - MaxPageLimit []uint64 `protobuf:"varint,30,rep,packed,name=max_page_limit,json=maxPageLimit,proto3" json:"max_page_limit,omitempty"` - MinEpochLengthRecordLimit []int64 `protobuf:"varint,31,rep,packed,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` - BlocksPerMonth []uint64 `protobuf:"varint,32,rep,packed,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` - PRewardInference []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,33,rep,name=p_reward_inference,json=pRewardInference,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_inference"` - PRewardForecast []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,34,rep,name=p_reward_forecast,json=pRewardForecast,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_forecast"` - PRewardReputer []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,35,rep,name=p_reward_reputer,json=pRewardReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_reputer"` - CRewardInference []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,36,rep,name=c_reward_inference,json=cRewardInference,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_reward_inference"` - CRewardForecast []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,37,rep,name=c_reward_forecast,json=cRewardForecast,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_reward_forecast"` - CNorm []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,38,rep,name=c_norm,json=cNorm,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_norm"` - EpsilonReputer []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,40,rep,name=epsilon_reputer,json=epsilonReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_reputer"` - HalfMaxProcessStakeRemovalsEndBlock []uint64 `protobuf:"varint,42,rep,packed,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` - DataSendingFee []cosmossdk_io_math.Int `protobuf:"bytes,43,rep,name=data_sending_fee,json=dataSendingFee,proto3,customtype=cosmossdk.io/math.Int" json:"data_sending_fee"` - EpsilonSafeDiv []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,44,rep,name=epsilon_safe_div,json=epsilonSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_safe_div"` - MaxElementsPerForecast []uint64 `protobuf:"varint,45,rep,packed,name=max_elements_per_forecast,json=maxElementsPerForecast,proto3" json:"max_elements_per_forecast,omitempty"` - MaxActiveTopicsPerBlock []uint64 `protobuf:"varint,46,rep,packed,name=max_active_topics_per_block,json=maxActiveTopicsPerBlock,proto3" json:"max_active_topics_per_block,omitempty"` - MaxStringLength []uint64 `protobuf:"varint,47,rep,packed,name=max_string_length,json=maxStringLength,proto3" json:"max_string_length,omitempty"` - InitialRegretQuantile []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,48,rep,name=initial_regret_quantile,json=initialRegretQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"initial_regret_quantile"` - PNormSafeDiv []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_norm_safe_div"` - GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` - TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` - MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` - InferenceOutlierDetectionThreshold []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` - InferenceOutlierDetectionAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` - NewParticipantScoreInitializationKappa []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,rep,name=new_participant_score_initialization_kappa,json=newParticipantScoreInitializationKappa,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"new_participant_score_initialization_kappa"` + Version []string `protobuf:"bytes,1,rep,name=version,proto3" json:"version,omitempty"` + MaxSerializedMsgLength []int64 `protobuf:"varint,2,rep,packed,name=max_serialized_msg_length,json=maxSerializedMsgLength,proto3" json:"max_serialized_msg_length,omitempty"` + MinTopicWeight []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,3,rep,name=min_topic_weight,json=minTopicWeight,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"min_topic_weight"` + RequiredMinimumStake []cosmossdk_io_math.Int `protobuf:"bytes,5,rep,name=required_minimum_stake,json=requiredMinimumStake,proto3,customtype=cosmossdk.io/math.Int" json:"required_minimum_stake"` + RemoveStakeDelayWindow []int64 `protobuf:"varint,6,rep,packed,name=remove_stake_delay_window,json=removeStakeDelayWindow,proto3" json:"remove_stake_delay_window,omitempty"` + MinEpochLength []int64 `protobuf:"varint,7,rep,packed,name=min_epoch_length,json=minEpochLength,proto3" json:"min_epoch_length,omitempty"` + BetaEntropy []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,8,rep,name=beta_entropy,json=betaEntropy,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"beta_entropy"` + LearningRate []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,9,rep,name=learning_rate,json=learningRate,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"learning_rate"` + MaxGradientThreshold []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,10,rep,name=max_gradient_threshold,json=maxGradientThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"max_gradient_threshold"` + MinStakeFraction []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,11,rep,name=min_stake_fraction,json=minStakeFraction,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"min_stake_fraction"` + MaxUnfulfilledWorkerRequests []uint64 `protobuf:"varint,13,rep,packed,name=max_unfulfilled_worker_requests,json=maxUnfulfilledWorkerRequests,proto3" json:"max_unfulfilled_worker_requests,omitempty"` + MaxUnfulfilledReputerRequests []uint64 `protobuf:"varint,14,rep,packed,name=max_unfulfilled_reputer_requests,json=maxUnfulfilledReputerRequests,proto3" json:"max_unfulfilled_reputer_requests,omitempty"` + TopicRewardStakeImportance []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,15,rep,name=topic_reward_stake_importance,json=topicRewardStakeImportance,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_stake_importance"` + TopicRewardFeeRevenueImportance []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,16,rep,name=topic_reward_fee_revenue_importance,json=topicRewardFeeRevenueImportance,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_fee_revenue_importance"` + TopicRewardAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,17,rep,name=topic_reward_alpha,json=topicRewardAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_reward_alpha"` + TaskRewardAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,18,rep,name=task_reward_alpha,json=taskRewardAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"task_reward_alpha"` + ValidatorsVsAlloraPercentReward []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,19,rep,name=validators_vs_allora_percent_reward,json=validatorsVsAlloraPercentReward,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"validators_vs_allora_percent_reward"` + MaxSamplesToScaleScores []uint64 `protobuf:"varint,20,rep,packed,name=max_samples_to_scale_scores,json=maxSamplesToScaleScores,proto3" json:"max_samples_to_scale_scores,omitempty"` + MaxTopInferersToReward []uint64 `protobuf:"varint,21,rep,packed,name=max_top_inferers_to_reward,json=maxTopInferersToReward,proto3" json:"max_top_inferers_to_reward,omitempty"` + MaxTopForecastersToReward []uint64 `protobuf:"varint,22,rep,packed,name=max_top_forecasters_to_reward,json=maxTopForecastersToReward,proto3" json:"max_top_forecasters_to_reward,omitempty"` + MaxTopReputersToReward []uint64 `protobuf:"varint,23,rep,packed,name=max_top_reputers_to_reward,json=maxTopReputersToReward,proto3" json:"max_top_reputers_to_reward,omitempty"` + CreateTopicFee []cosmossdk_io_math.Int `protobuf:"bytes,24,rep,name=create_topic_fee,json=createTopicFee,proto3,customtype=cosmossdk.io/math.Int" json:"create_topic_fee"` + GradientDescentMaxIters []uint64 `protobuf:"varint,25,rep,packed,name=gradient_descent_max_iters,json=gradientDescentMaxIters,proto3" json:"gradient_descent_max_iters,omitempty"` + RegistrationFee []cosmossdk_io_math.Int `protobuf:"bytes,28,rep,name=registration_fee,json=registrationFee,proto3,customtype=cosmossdk.io/math.Int" json:"registration_fee"` + DefaultPageLimit []uint64 `protobuf:"varint,29,rep,packed,name=default_page_limit,json=defaultPageLimit,proto3" json:"default_page_limit,omitempty"` + MaxPageLimit []uint64 `protobuf:"varint,30,rep,packed,name=max_page_limit,json=maxPageLimit,proto3" json:"max_page_limit,omitempty"` + MinEpochLengthRecordLimit []int64 `protobuf:"varint,31,rep,packed,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` + BlocksPerMonth []uint64 `protobuf:"varint,32,rep,packed,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` + PRewardInference []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,33,rep,name=p_reward_inference,json=pRewardInference,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_inference"` + PRewardForecast []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,34,rep,name=p_reward_forecast,json=pRewardForecast,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_forecast"` + PRewardReputer []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,35,rep,name=p_reward_reputer,json=pRewardReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_reward_reputer"` + CRewardInference []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,36,rep,name=c_reward_inference,json=cRewardInference,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_reward_inference"` + CRewardForecast []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,37,rep,name=c_reward_forecast,json=cRewardForecast,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_reward_forecast"` + CNorm []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,38,rep,name=c_norm,json=cNorm,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_norm"` + EpsilonReputer []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,40,rep,name=epsilon_reputer,json=epsilonReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_reputer"` + HalfMaxProcessStakeRemovalsEndBlock []uint64 `protobuf:"varint,42,rep,packed,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` + DataSendingFee []cosmossdk_io_math.Int `protobuf:"bytes,43,rep,name=data_sending_fee,json=dataSendingFee,proto3,customtype=cosmossdk.io/math.Int" json:"data_sending_fee"` + EpsilonSafeDiv []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,44,rep,name=epsilon_safe_div,json=epsilonSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_safe_div"` + MaxElementsPerForecast []uint64 `protobuf:"varint,45,rep,packed,name=max_elements_per_forecast,json=maxElementsPerForecast,proto3" json:"max_elements_per_forecast,omitempty"` + MaxActiveTopicsPerBlock []uint64 `protobuf:"varint,46,rep,packed,name=max_active_topics_per_block,json=maxActiveTopicsPerBlock,proto3" json:"max_active_topics_per_block,omitempty"` + MaxStringLength []uint64 `protobuf:"varint,47,rep,packed,name=max_string_length,json=maxStringLength,proto3" json:"max_string_length,omitempty"` + InitialRegretQuantile []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,48,rep,name=initial_regret_quantile,json=initialRegretQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"initial_regret_quantile"` + PNormSafeDiv []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_norm_safe_div"` + GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` + TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` + MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` + InferenceOutlierDetectionThreshold []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` + InferenceOutlierDetectionAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` + SortitionLambdaPenalty []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,rep,name=sortition_lambda_penalty,json=sortitionLambdaPenalty,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"sortition_lambda_penalty"` } func (m *OptionalParams) Reset() { *m = OptionalParams{} } @@ -3022,210 +3022,208 @@ func init() { func init() { proto.RegisterFile("emissions/v7/tx.proto", fileDescriptor_25da82f6ba30300b) } var fileDescriptor_25da82f6ba30300b = []byte{ - // 3237 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0x4b, 0x6f, 0x1c, 0xc7, - 0xb5, 0x56, 0x8b, 0x23, 0x72, 0x78, 0x48, 0x91, 0xa3, 0x12, 0x49, 0x35, 0x87, 0xef, 0xa1, 0x1e, - 0x23, 0x5e, 0x8b, 0x23, 0x4b, 0xb2, 0xe5, 0xeb, 0x7b, 0x17, 0x57, 0x32, 0x25, 0x5f, 0xf2, 0x4a, - 0x32, 0xdd, 0xa4, 0xad, 0x0b, 0xd9, 0x48, 0xbb, 0xd8, 0x5d, 0x1c, 0x76, 0xd8, 0x2f, 0x57, 0xf7, - 0x90, 0x94, 0xe0, 0x20, 0x89, 0x00, 0x6f, 0x12, 0x20, 0x09, 0x10, 0x20, 0x8b, 0xbc, 0xd6, 0x59, - 0x05, 0x5e, 0x24, 0x9b, 0xac, 0xb2, 0xf4, 0xd2, 0xc8, 0x2a, 0xc8, 0xc2, 0x08, 0xec, 0x85, 0xb7, - 0xf9, 0x09, 0x41, 0x3d, 0x7a, 0xfa, 0x31, 0xd3, 0x43, 0x52, 0x4d, 0x19, 0xde, 0xd8, 0xea, 0xaa, - 0x53, 0xdf, 0xf7, 0xd5, 0xa9, 0x53, 0xa7, 0xea, 0xd4, 0x80, 0x30, 0x4e, 0x1c, 0x2b, 0x08, 0x2c, - 0xcf, 0x0d, 0x1a, 0x7b, 0xb7, 0x1b, 0xe1, 0xc1, 0xb2, 0x4f, 0xbd, 0xd0, 0x43, 0xc3, 0xed, 0xe6, - 0xe5, 0xbd, 0xdb, 0xd5, 0x73, 0xd8, 0xb1, 0x5c, 0xaf, 0xc1, 0xff, 0x2b, 0x0c, 0xaa, 0x17, 0x0c, - 0x2f, 0x70, 0xbc, 0xa0, 0xe1, 0x04, 0xcd, 0xc6, 0xde, 0xab, 0xec, 0x7f, 0xb2, 0x63, 0x52, 0x74, - 0xe8, 0xfc, 0xab, 0x21, 0x3e, 0x64, 0x57, 0x35, 0xc1, 0x75, 0xb3, 0x41, 0x89, 0xdf, 0x0a, 0x09, - 0x8d, 0x86, 0xa5, 0xfa, 0xf6, 0x3d, 0xba, 0xdb, 0xee, 0x1a, 0x6b, 0x7a, 0x4d, 0x4f, 0xc0, 0xb1, - 0x7f, 0x89, 0xd6, 0xda, 0xef, 0x6a, 0x30, 0xf2, 0x8e, 0x1f, 0x5a, 0x9e, 0x8b, 0xed, 0x75, 0x4c, - 0xb1, 0x13, 0x20, 0x15, 0x06, 0xf6, 0x08, 0x65, 0x20, 0xaa, 0x32, 0xdf, 0x57, 0x1f, 0xd4, 0xa2, - 0x4f, 0xf4, 0x9f, 0x30, 0xe9, 0xe0, 0x03, 0x3d, 0x20, 0xd4, 0xc2, 0xb6, 0xf5, 0x8c, 0x98, 0xba, - 0x13, 0x34, 0x75, 0x9b, 0xb8, 0xcd, 0x70, 0x47, 0x3d, 0x3d, 0xdf, 0x57, 0xef, 0xd3, 0x26, 0x1c, - 0x7c, 0xb0, 0xd1, 0xee, 0x7f, 0x18, 0x34, 0x1f, 0xf0, 0x5e, 0x84, 0xa1, 0xe2, 0x58, 0xae, 0x1e, - 0x7a, 0xbe, 0x65, 0xe8, 0xfb, 0xc4, 0x6a, 0xee, 0x84, 0x6a, 0x1f, 0x43, 0xbf, 0x7b, 0xfb, 0xf3, - 0x2f, 0xe7, 0x4e, 0xfd, 0xe3, 0xcb, 0xb9, 0x46, 0xd3, 0x0a, 0x77, 0x5a, 0x5b, 0xcb, 0x86, 0xe7, - 0x34, 0xb0, 0x6d, 0x7b, 0x14, 0x5f, 0x73, 0x49, 0xc8, 0xa6, 0x10, 0x7d, 0x1a, 0x3b, 0xd8, 0x72, - 0x1b, 0x0e, 0x0e, 0x77, 0x96, 0x57, 0x88, 0xa1, 0x8d, 0x38, 0x96, 0xbb, 0xc9, 0xf0, 0x1e, 0x73, - 0x38, 0xb4, 0x0d, 0x13, 0x94, 0x7c, 0xdc, 0xb2, 0x28, 0xd3, 0x65, 0xb9, 0x96, 0xd3, 0x72, 0xf4, - 0x20, 0xc4, 0xbb, 0x44, 0x3d, 0xc3, 0x89, 0xae, 0x4b, 0xa2, 0x71, 0xe1, 0xcd, 0xc0, 0xdc, 0x5d, - 0xb6, 0x3c, 0x01, 0xb7, 0xea, 0x86, 0x7f, 0xfb, 0xd3, 0x35, 0x90, 0x6e, 0x5e, 0x75, 0xc3, 0x3f, - 0x7c, 0xf3, 0xd9, 0x92, 0xa2, 0x8d, 0x45, 0x78, 0x0f, 0x05, 0xdc, 0x06, 0x43, 0x63, 0x5e, 0xa0, - 0xc4, 0xf1, 0xf6, 0x88, 0x40, 0xd7, 0x4d, 0x62, 0xe3, 0xa7, 0xfa, 0xbe, 0xe5, 0x9a, 0xde, 0xbe, - 0xda, 0x2f, 0xbc, 0x20, 0x0c, 0xb8, 0xfd, 0x0a, 0xeb, 0x7e, 0xcc, 0x7b, 0x51, 0x5d, 0x78, 0x81, - 0xf8, 0x9e, 0xb1, 0x13, 0xf9, 0x6d, 0x80, 0x8f, 0x60, 0x93, 0xb9, 0xc7, 0x9a, 0xa5, 0xbf, 0x9e, - 0xc0, 0xf0, 0x16, 0x09, 0xb1, 0x4e, 0xdc, 0x90, 0x7a, 0xfe, 0x53, 0xb5, 0x5c, 0xcc, 0x57, 0x43, - 0x0c, 0xec, 0x9e, 0xc0, 0x42, 0x1f, 0xc2, 0x59, 0x9b, 0x60, 0xea, 0x5a, 0x6e, 0x53, 0xa7, 0x38, - 0x24, 0xea, 0x60, 0x31, 0xf0, 0xe1, 0x08, 0x4d, 0xc3, 0x21, 0x41, 0x0e, 0xb0, 0x18, 0xd0, 0x9b, - 0x14, 0x9b, 0x16, 0x71, 0x43, 0x3d, 0xdc, 0xa1, 0x24, 0xd8, 0xf1, 0x6c, 0x53, 0x85, 0x62, 0x34, - 0x63, 0x0e, 0x3e, 0x78, 0x5b, 0xa2, 0x6e, 0x46, 0xa0, 0x88, 0x00, 0x62, 0x2e, 0x15, 0x4b, 0xb1, - 0x4d, 0xb1, 0xc1, 0x62, 0x59, 0x1d, 0x2a, 0x46, 0xc5, 0x56, 0x89, 0x2f, 0xde, 0x7d, 0x09, 0x88, - 0xee, 0xc1, 0x1c, 0x9b, 0x55, 0xcb, 0xdd, 0x6e, 0xd9, 0xdb, 0x96, 0x6d, 0x13, 0x53, 0x17, 0xbb, - 0x4b, 0x67, 0x31, 0x42, 0x82, 0x30, 0x50, 0xcf, 0xce, 0xf7, 0xd5, 0x4b, 0xda, 0xb4, 0x83, 0x0f, - 0xde, 0x8b, 0xad, 0x1e, 0x73, 0x23, 0x4d, 0xda, 0xa0, 0xb7, 0x61, 0x3e, 0x0b, 0x23, 0x37, 0x70, - 0x8c, 0x33, 0xc2, 0x71, 0x66, 0xd2, 0x38, 0x9a, 0xb0, 0x6a, 0x03, 0x3d, 0x83, 0x19, 0xb1, 0x97, - 0x28, 0xd9, 0xc7, 0xd4, 0x94, 0xf3, 0xb7, 0x1c, 0xdf, 0xa3, 0x21, 0x76, 0x0d, 0xa2, 0x8e, 0x16, - 0xf3, 0x40, 0x95, 0xa3, 0x6b, 0x1c, 0x9c, 0x7b, 0x62, 0xb5, 0x0d, 0x8d, 0x3e, 0x55, 0x60, 0x31, - 0x45, 0xbe, 0x4d, 0x88, 0x4e, 0xc9, 0x1e, 0x71, 0x5b, 0x29, 0x09, 0x95, 0x62, 0x12, 0xe6, 0x12, - 0x12, 0xee, 0x13, 0xa2, 0x09, 0x82, 0x84, 0x0e, 0x02, 0x28, 0x25, 0x03, 0xdb, 0xfe, 0x0e, 0x56, - 0xcf, 0x15, 0x5c, 0xfa, 0x04, 0xeb, 0x1d, 0x06, 0x88, 0x0c, 0x38, 0x17, 0xe2, 0x60, 0x37, 0xcd, - 0x82, 0x8a, 0xb1, 0x8c, 0x32, 0xc4, 0x24, 0x09, 0xf3, 0xe9, 0x1e, 0xb6, 0x2d, 0x13, 0x87, 0x1e, - 0x0d, 0xf4, 0xbd, 0x40, 0x17, 0x03, 0x75, 0x9f, 0x50, 0x83, 0x6d, 0x23, 0xc1, 0xae, 0x9e, 0x2f, - 0xe8, 0xd3, 0x98, 0xe3, 0xfd, 0xe0, 0x0e, 0x37, 0x59, 0x17, 0x04, 0x42, 0x0c, 0xfa, 0x6f, 0x98, - 0xe2, 0x29, 0x1e, 0x3b, 0xbe, 0x4d, 0x02, 0x3d, 0xf4, 0xf4, 0xc0, 0xc0, 0x36, 0xd1, 0x03, 0xc3, - 0xa3, 0x24, 0x50, 0xc7, 0x78, 0x6c, 0x5e, 0x60, 0x49, 0x5e, 0x58, 0x6c, 0x7a, 0x1b, 0xac, 0x7f, - 0x83, 0x77, 0xa3, 0x37, 0xa1, 0xca, 0x46, 0x87, 0x9e, 0xaf, 0x5b, 0xee, 0x36, 0xa1, 0x84, 0x72, - 0x08, 0xa9, 0x7d, 0x9c, 0x0f, 0x66, 0xd9, 0x61, 0xd3, 0xf3, 0x57, 0x65, 0xff, 0xa6, 0x27, 0x99, - 0xff, 0x07, 0x66, 0xa2, 0xb1, 0xdb, 0x1e, 0x25, 0x06, 0x0e, 0xc2, 0xf4, 0xf0, 0x09, 0x3e, 0x7c, - 0x52, 0x0c, 0xbf, 0x1f, 0x9b, 0xb4, 0x11, 0x12, 0xec, 0x72, 0x53, 0x25, 0x87, 0x5f, 0x48, 0xb2, - 0xcb, 0xed, 0x14, 0x8f, 0x7d, 0x02, 0x15, 0x83, 0x12, 0x1c, 0x12, 0x79, 0x44, 0x6d, 0x13, 0xa2, - 0xaa, 0x2f, 0x78, 0x6c, 0x8c, 0x08, 0x24, 0x7e, 0x36, 0xdd, 0x27, 0x04, 0xfd, 0x17, 0x54, 0xdb, - 0xd9, 0xd0, 0x24, 0x01, 0x5f, 0x4e, 0x26, 0xd4, 0x62, 0x0a, 0xd4, 0x49, 0xe1, 0xd2, 0xc8, 0x62, - 0x45, 0x18, 0x3c, 0xc4, 0x07, 0xab, 0xac, 0x1b, 0x7d, 0x00, 0x15, 0x4a, 0x9a, 0x56, 0x10, 0x52, - 0xcc, 0x12, 0x11, 0x17, 0x36, 0xfd, 0x82, 0xc2, 0x46, 0x93, 0x48, 0x4c, 0xd9, 0x2b, 0x80, 0x4c, - 0xb2, 0x8d, 0x5b, 0x76, 0xa8, 0xfb, 0xb8, 0x49, 0x74, 0xdb, 0x72, 0xac, 0x50, 0x9d, 0xe1, 0x8a, - 0x2a, 0xb2, 0x67, 0x1d, 0x37, 0xc9, 0x03, 0xd6, 0x8e, 0x2e, 0xc2, 0x08, 0x93, 0x9d, 0xb0, 0x9c, - 0xe5, 0x96, 0xc3, 0x0e, 0x3e, 0x88, 0xad, 0xd8, 0x3a, 0x66, 0xce, 0x38, 0x9d, 0x12, 0xc3, 0xa3, - 0xa6, 0x1c, 0x34, 0xc7, 0x0f, 0xbc, 0xc9, 0xf4, 0x81, 0xa7, 0x71, 0x0b, 0x81, 0x50, 0x87, 0xca, - 0x96, 0xed, 0x19, 0xbb, 0x01, 0x0b, 0x7e, 0xdd, 0xf1, 0xdc, 0x70, 0x47, 0x9d, 0xe7, 0x4c, 0x23, - 0xa2, 0x7d, 0x9d, 0xd0, 0x87, 0xac, 0x95, 0x65, 0x00, 0x3f, 0xda, 0x97, 0x22, 0xe0, 0x58, 0xde, - 0x59, 0x28, 0x98, 0x01, 0x7c, 0x11, 0x13, 0xab, 0x11, 0x20, 0xcb, 0x00, 0x6d, 0x9a, 0x28, 0x36, - 0xd5, 0x5a, 0xc1, 0x0c, 0x20, 0x59, 0xa2, 0x40, 0x66, 0x37, 0xa4, 0x36, 0x89, 0x0c, 0x5f, 0x75, - 0xb1, 0xe0, 0x0d, 0x49, 0x72, 0xc8, 0x68, 0x67, 0xee, 0x32, 0x3a, 0xdd, 0x75, 0xb1, 0xa0, 0xbb, - 0x8c, 0x2e, 0xee, 0x32, 0x3a, 0xdc, 0x75, 0xa9, 0xa0, 0xbb, 0x8c, 0x8c, 0xbb, 0x1e, 0x41, 0xbf, - 0xa1, 0xbb, 0x1e, 0x75, 0xd4, 0xcb, 0xc5, 0x90, 0xcf, 0x18, 0x8f, 0x3c, 0xea, 0xa0, 0x8f, 0x60, - 0x94, 0xf8, 0x81, 0x65, 0x7b, 0x6e, 0xdb, 0xfb, 0xf5, 0x82, 0xde, 0x97, 0x78, 0x91, 0xf7, 0xdf, - 0x87, 0xab, 0x3b, 0xd8, 0xde, 0xe6, 0x5b, 0xdf, 0xa7, 0x9e, 0x41, 0x82, 0x40, 0x1e, 0xdb, 0xfc, - 0xb6, 0x88, 0xed, 0x40, 0x27, 0xae, 0xa9, 0xf3, 0x10, 0x57, 0x97, 0x78, 0xbc, 0x2f, 0xb2, 0x01, - 0x0f, 0xf1, 0xc1, 0xba, 0x30, 0xe7, 0x07, 0xb1, 0x26, 0x8d, 0xef, 0xb9, 0xe6, 0x5d, 0x66, 0xca, - 0x52, 0x97, 0x89, 0x43, 0xac, 0x07, 0xc4, 0x35, 0xd9, 0x95, 0x8e, 0x65, 0x88, 0xff, 0x78, 0xd1, - 0xd4, 0xc5, 0x90, 0x36, 0x04, 0x10, 0x4b, 0x10, 0x18, 0x2a, 0x91, 0x57, 0x02, 0xbc, 0x4d, 0x74, - 0xd3, 0xda, 0x53, 0x5f, 0x39, 0x19, 0xb7, 0x6c, 0xe0, 0x6d, 0xb2, 0x62, 0xed, 0x45, 0x45, 0x05, - 0xb1, 0x89, 0x43, 0xdc, 0x50, 0xec, 0xf9, 0x76, 0xd4, 0x5c, 0x6b, 0x27, 0xed, 0x7b, 0xb2, 0x7f, - 0x9d, 0xd0, 0x76, 0x0c, 0xc8, 0xc3, 0x8a, 0x5d, 0xd1, 0xf6, 0x64, 0xe2, 0x16, 0xe3, 0x85, 0x0f, - 0x97, 0xdb, 0x87, 0xd5, 0x1d, 0x6e, 0xc1, 0x13, 0x32, 0x03, 0x10, 0x7e, 0x5b, 0x82, 0x73, 0xfc, - 0xa8, 0x0b, 0x29, 0xf3, 0x9a, 0xbc, 0x8d, 0x37, 0xf8, 0x98, 0x51, 0x76, 0xc0, 0xf1, 0x76, 0x79, - 0x1d, 0xf7, 0xe0, 0x82, 0xe5, 0x5a, 0xa1, 0x85, 0x6d, 0x9d, 0x92, 0x26, 0x25, 0xa1, 0xfe, 0x71, - 0x0b, 0xbb, 0xa1, 0x65, 0x13, 0xf5, 0x7a, 0x31, 0x77, 0x8c, 0x4b, 0x5c, 0x8d, 0xc3, 0xbe, 0x2b, - 0x51, 0xd1, 0xf7, 0x60, 0xd4, 0xe7, 0xe1, 0x1d, 0xfb, 0xfd, 0xd5, 0x82, 0xb7, 0x74, 0x9f, 0xc5, - 0x79, 0xe4, 0xf5, 0x37, 0x40, 0x6d, 0xda, 0xde, 0x16, 0xb6, 0xf5, 0xfd, 0x1d, 0x2b, 0x24, 0xb6, - 0x15, 0x84, 0x3a, 0x71, 0xf1, 0x96, 0x4d, 0x4c, 0xf5, 0xc6, 0x7c, 0x5f, 0xbd, 0xac, 0x4d, 0x88, - 0xfe, 0xc7, 0x51, 0xf7, 0x3d, 0xd1, 0xcb, 0x6e, 0xc2, 0xe2, 0x88, 0xe4, 0xa7, 0x9c, 0x47, 0xbb, - 0x00, 0xdc, 0xe4, 0x00, 0xd3, 0xdc, 0xec, 0x2d, 0x61, 0xd5, 0x01, 0xf3, 0x16, 0xcc, 0xf2, 0x63, - 0xe2, 0xc0, 0x27, 0xd4, 0x62, 0x69, 0x23, 0x71, 0xa1, 0x66, 0x9e, 0x08, 0xd4, 0x5b, 0x7c, 0x29, - 0xa6, 0xd8, 0x39, 0x11, 0x1b, 0x45, 0xf7, 0x69, 0x6e, 0x82, 0x7e, 0xa2, 0xc0, 0xa5, 0x76, 0x22, - 0xd3, 0xbd, 0x56, 0x68, 0x5b, 0x84, 0xea, 0x26, 0x09, 0x09, 0xbf, 0xb5, 0x27, 0x6a, 0x8f, 0xd7, - 0x8a, 0x39, 0xaf, 0xd6, 0x66, 0x79, 0x47, 0x90, 0xac, 0x44, 0x1c, 0x71, 0x25, 0xf2, 0x5c, 0x81, - 0x85, 0x5e, 0x62, 0xc4, 0xc5, 0xf1, 0xf5, 0x62, 0x42, 0x66, 0x73, 0x85, 0x88, 0x7b, 0xe4, 0x2f, - 0x15, 0x58, 0x72, 0xc9, 0xbe, 0xee, 0x63, 0x1a, 0x5a, 0x86, 0xe5, 0x63, 0x37, 0x14, 0x77, 0x37, - 0x5d, 0xc6, 0x99, 0xf5, 0x4c, 0xdc, 0x23, 0x76, 0xb1, 0xef, 0x63, 0xf5, 0x76, 0x31, 0x35, 0x97, - 0x5d, 0xb2, 0xbf, 0x1e, 0x33, 0xf1, 0x5b, 0xe0, 0x6a, 0x8a, 0xe7, 0xff, 0x18, 0xcd, 0x5a, 0xa9, - 0x5c, 0xaa, 0x9c, 0x59, 0x2b, 0x95, 0xab, 0x95, 0xa9, 0xb5, 0x52, 0x79, 0xaa, 0x32, 0xbd, 0x56, - 0x2a, 0x5f, 0xa9, 0xd4, 0xd7, 0x4a, 0xe5, 0xab, 0x95, 0x25, 0x5e, 0xd8, 0x75, 0xec, 0x5e, 0xbe, - 0xf0, 0x3a, 0xd9, 0xde, 0x26, 0x89, 0xdd, 0x1d, 0x55, 0x19, 0xda, 0x22, 0x1b, 0x42, 0x49, 0x48, - 0x2d, 0x71, 0x49, 0x15, 0x75, 0x92, 0xee, 0x7a, 0xae, 0x41, 0x02, 0x19, 0x48, 0x32, 0x00, 0x53, - 0xd5, 0x89, 0x49, 0x0c, 0xfc, 0x94, 0x17, 0xbd, 0xda, 0xc5, 0x9e, 0x10, 0xf2, 0x0c, 0xa8, 0xf9, - 0x70, 0xfe, 0x3d, 0xdf, 0xc4, 0x21, 0x11, 0x8f, 0x23, 0xb2, 0xfe, 0x42, 0x13, 0xd0, 0xcf, 0xd2, - 0x2d, 0xa1, 0xaa, 0x32, 0xaf, 0xd4, 0x07, 0x35, 0xf9, 0x85, 0x6e, 0x41, 0xbf, 0xcf, 0x0d, 0xd5, - 0xd3, 0xf3, 0x4a, 0x7d, 0xe8, 0xc6, 0xf4, 0x72, 0xf2, 0x05, 0x68, 0x39, 0xfd, 0xd2, 0xa2, 0x49, - 0xdb, 0x37, 0x87, 0x9e, 0x7f, 0xf3, 0xd9, 0x92, 0x84, 0xa8, 0x4d, 0xc0, 0x58, 0x9a, 0x31, 0xf0, - 0x3d, 0x37, 0x20, 0xb5, 0x3f, 0x0f, 0xc2, 0x38, 0xdf, 0x4c, 0xe4, 0x11, 0xd9, 0xdf, 0x14, 0x45, - 0x8a, 0x10, 0xa3, 0xc2, 0x80, 0xdc, 0x8b, 0x52, 0x4d, 0xf4, 0x89, 0xaa, 0x50, 0x76, 0x48, 0x88, - 0x59, 0x52, 0xe7, 0x82, 0x06, 0xb5, 0xf6, 0x37, 0x9a, 0x83, 0x21, 0xdb, 0x0b, 0x02, 0xdd, 0x21, - 0xe1, 0x8e, 0x67, 0xaa, 0x25, 0xde, 0x0d, 0xac, 0xe9, 0x21, 0x6f, 0x41, 0x0b, 0x30, 0x9c, 0x79, - 0xa8, 0x50, 0xea, 0x7d, 0xda, 0x10, 0x49, 0xbc, 0x52, 0xd4, 0xa1, 0xd2, 0xa4, 0x5e, 0xcb, 0x35, - 0xf5, 0x90, 0xb6, 0xc2, 0x1d, 0xdd, 0xc6, 0x4d, 0xb5, 0xcc, 0xcd, 0x46, 0x44, 0xfb, 0x26, 0x6b, - 0x7e, 0x80, 0x9b, 0xec, 0xb8, 0x16, 0xf9, 0x4c, 0x05, 0x46, 0x54, 0xe0, 0xb8, 0xe6, 0x69, 0x0c, - 0x3d, 0x81, 0x61, 0xbe, 0x9f, 0x64, 0xb6, 0x50, 0x87, 0x8a, 0xa1, 0x0e, 0x71, 0x30, 0x91, 0x56, - 0xd0, 0x25, 0x18, 0x61, 0x56, 0xfb, 0xba, 0x4b, 0x9a, 0x98, 0x05, 0x9f, 0x3a, 0x3c, 0xaf, 0xd4, - 0xcb, 0xda, 0x59, 0xde, 0xfa, 0x48, 0x36, 0xa2, 0x77, 0x61, 0x40, 0x1e, 0x65, 0xea, 0xd9, 0x62, - 0xec, 0x11, 0x0e, 0xcb, 0xca, 0x32, 0x09, 0x06, 0xad, 0x2d, 0x19, 0x38, 0xd1, 0xcb, 0xd2, 0x08, - 0xf7, 0xeb, 0x84, 0xe8, 0xdf, 0x68, 0x77, 0xcb, 0x97, 0xa5, 0x5d, 0x18, 0x77, 0x08, 0xb5, 0x42, - 0x3d, 0xf0, 0x68, 0x68, 0x25, 0xf2, 0xcd, 0x68, 0x31, 0x69, 0xe7, 0x39, 0xea, 0x46, 0x04, 0x2a, - 0x92, 0x8c, 0x07, 0x17, 0xe4, 0x99, 0x2b, 0xab, 0xbc, 0xf8, 0x34, 0xac, 0x14, 0xa3, 0x1b, 0x17, - 0xb8, 0xb2, 0x38, 0x6c, 0x9f, 0x86, 0x2d, 0xa8, 0x4a, 0xc2, 0xb8, 0x34, 0x8c, 0x39, 0xcf, 0x15, - 0xe3, 0x54, 0x05, 0x74, 0x5c, 0x51, 0xb6, 0x69, 0xe3, 0x79, 0x46, 0x8f, 0x34, 0x6d, 0x4e, 0x74, - 0x22, 0xf3, 0x94, 0x57, 0xc3, 0x36, 0xe1, 0xeb, 0x70, 0x41, 0x9c, 0xa1, 0xd1, 0x59, 0xd8, 0x3e, - 0x5b, 0xd5, 0xf3, 0x3c, 0x04, 0xc7, 0x45, 0xb7, 0x38, 0x05, 0xdb, 0x67, 0x2a, 0x8b, 0x1b, 0x39, - 0x2e, 0x12, 0x1a, 0x0f, 0x1c, 0xe3, 0x03, 0x27, 0x44, 0xbf, 0x24, 0x6c, 0x8f, 0x7c, 0x73, 0x98, - 0xa5, 0x9e, 0x28, 0x5f, 0xac, 0x95, 0xca, 0x7d, 0x95, 0xd2, 0x5a, 0xa9, 0x7c, 0xa6, 0xd2, 0xbf, - 0x56, 0x2a, 0xf7, 0x57, 0x06, 0xd6, 0x4a, 0xe5, 0xc1, 0x0a, 0x88, 0xb4, 0xa0, 0xdb, 0x5e, 0xd3, - 0x32, 0xb4, 0xd1, 0xf8, 0x8c, 0x13, 0x0d, 0x95, 0xb8, 0x41, 0xe4, 0x12, 0x6d, 0x28, 0x2a, 0x2a, - 0x31, 0x6d, 0xd6, 0x6e, 0xc2, 0x44, 0x36, 0x6d, 0x89, 0x8c, 0x86, 0x26, 0xa1, 0x2c, 0x32, 0xb4, - 0x65, 0xf2, 0xc4, 0x55, 0xd2, 0x06, 0xf8, 0xf7, 0xaa, 0x59, 0xfb, 0x95, 0x02, 0x53, 0xab, 0x6e, - 0x40, 0x68, 0x28, 0x15, 0xaf, 0xe3, 0xa7, 0xb6, 0x87, 0xcd, 0xc3, 0xf2, 0xaf, 0x06, 0x63, 0x91, - 0x07, 0xf6, 0xb0, 0xdd, 0x22, 0xfa, 0x56, 0xcb, 0x35, 0x6d, 0x22, 0xb3, 0xf1, 0x7c, 0x32, 0x1b, - 0xdf, 0x5c, 0x96, 0xd0, 0xef, 0x33, 0xc3, 0xbb, 0xdc, 0x4e, 0x43, 0xb4, 0xa3, 0x2d, 0x9d, 0x9d, - 0x67, 0x61, 0xba, 0xbb, 0x2e, 0x99, 0xa5, 0x7f, 0xae, 0x40, 0x55, 0x18, 0x88, 0x35, 0x3a, 0xa2, - 0xee, 0x07, 0x80, 0xe4, 0x8a, 0xf3, 0xab, 0x7c, 0x4a, 0xf5, 0x6c, 0x5a, 0xb5, 0xc0, 0x5d, 0xc1, - 0x21, 0x96, 0x9a, 0x2b, 0xfb, 0x99, 0x96, 0xb4, 0xe2, 0x99, 0xc8, 0x93, 0x19, 0x41, 0x52, 0xf0, - 0x1f, 0x15, 0x18, 0xd5, 0xf8, 0xb3, 0x40, 0xfb, 0x75, 0x31, 0x57, 0x65, 0x72, 0xc1, 0x4a, 0xa9, - 0x05, 0x43, 0x63, 0x70, 0xc6, 0xdb, 0x77, 0x09, 0x55, 0xcf, 0xf0, 0x11, 0xe2, 0x03, 0xcd, 0x00, - 0x58, 0xed, 0xb3, 0x54, 0xed, 0xe7, 0x91, 0x38, 0x68, 0x05, 0xd2, 0x77, 0x29, 0x9d, 0x6b, 0xa5, - 0xf2, 0xe9, 0x4a, 0x9f, 0x88, 0x40, 0x6d, 0xc8, 0xb6, 0xb6, 0x74, 0xff, 0x86, 0xaf, 0xef, 0x92, - 0xa7, 0xda, 0x59, 0xa7, 0x65, 0x87, 0x96, 0x8e, 0x4d, 0x93, 0x92, 0x20, 0xa8, 0xdd, 0x87, 0x4a, - 0xac, 0x57, 0x46, 0x92, 0x0a, 0x03, 0x41, 0xcb, 0x60, 0x25, 0x12, 0x57, 0x5c, 0xd6, 0xa2, 0x4f, - 0xd6, 0xe3, 0x90, 0x20, 0xc0, 0x4d, 0x22, 0x0f, 0xc0, 0xe8, 0xb3, 0xf6, 0x0c, 0x26, 0x79, 0x29, - 0x45, 0xb4, 0xc4, 0xa3, 0xc8, 0x71, 0x3c, 0x70, 0x3a, 0xed, 0x81, 0xf4, 0x5c, 0xfb, 0x7a, 0xcd, - 0xb5, 0xb6, 0x0e, 0xd5, 0x6e, 0xdc, 0x05, 0x66, 0xf3, 0x1b, 0x05, 0x46, 0xef, 0x98, 0xa6, 0xac, - 0x10, 0x5f, 0x78, 0x12, 0xff, 0x0b, 0xfd, 0xd8, 0xf1, 0x5a, 0x6e, 0xc8, 0x27, 0xf0, 0x22, 0x15, - 0xa4, 0x1c, 0x9f, 0x9e, 0x2f, 0x82, 0x4a, 0x2c, 0x4e, 0x06, 0xde, 0xef, 0x15, 0x40, 0x5a, 0xfc, - 0x33, 0xc9, 0x77, 0x4f, 0xf4, 0x38, 0x9c, 0x4f, 0xe9, 0x93, 0xba, 0x9f, 0x80, 0xfa, 0x16, 0x76, - 0x0d, 0x62, 0x9f, 0x88, 0xf8, 0x34, 0xe5, 0x14, 0x4c, 0x76, 0xc1, 0x96, 0xc4, 0x7f, 0x51, 0x60, - 0x6c, 0x85, 0xd8, 0xec, 0xfa, 0x51, 0xd8, 0x65, 0x2a, 0x0c, 0x24, 0x23, 0x75, 0x50, 0x8b, 0x3e, - 0x13, 0xce, 0x2c, 0x9d, 0xa4, 0x33, 0x2f, 0xc0, 0x78, 0x46, 0xbb, 0x9c, 0xd5, 0x5f, 0x95, 0x68, - 0x2f, 0x1c, 0x6b, 0x6e, 0x89, 0x09, 0x9c, 0x4e, 0x4f, 0x20, 0x39, 0xeb, 0xbe, 0xbc, 0x40, 0x39, - 0xd1, 0xb9, 0xcd, 0xc0, 0x54, 0xd7, 0x19, 0xc8, 0x19, 0xfe, 0x5a, 0x81, 0xf9, 0xe4, 0xaa, 0x9e, - 0xd4, 0x1a, 0x4e, 0xc3, 0xa0, 0x29, 0xa0, 0xbc, 0x68, 0x15, 0xe3, 0x86, 0xa4, 0x83, 0x4a, 0x29, - 0x07, 0xa5, 0xb5, 0x2f, 0xc2, 0x42, 0x0f, 0x6d, 0x72, 0x06, 0x7b, 0x6c, 0x89, 0xf6, 0x31, 0x35, - 0x5f, 0x7a, 0xf8, 0x75, 0x71, 0x6c, 0x17, 0x5e, 0x29, 0xeb, 0xb7, 0x0a, 0x54, 0xee, 0xb3, 0x22, - 0x23, 0x59, 0x0c, 0x7d, 0x77, 0xf2, 0xc7, 0x79, 0x38, 0x97, 0x50, 0x27, 0x35, 0x7f, 0x00, 0xd5, - 0x3b, 0xa6, 0xb9, 0xe9, 0xb5, 0x6f, 0x60, 0x77, 0x4c, 0xc7, 0x72, 0x8f, 0x10, 0xed, 0xf2, 0xf8, - 0x8b, 0xa2, 0x5d, 0x7e, 0x76, 0xf8, 0xab, 0x2b, 0xb8, 0xe4, 0xfe, 0x08, 0xe6, 0xc4, 0x2a, 0xdf, - 0xa7, 0x9e, 0xf3, 0x52, 0x04, 0xd4, 0x60, 0x3e, 0x9f, 0x41, 0xaa, 0x30, 0x60, 0x41, 0xbc, 0x01, - 0x89, 0xdf, 0xee, 0xd3, 0x37, 0xd9, 0x93, 0x4a, 0xa4, 0x17, 0xa1, 0xd6, 0x8b, 0x44, 0x4a, 0x31, - 0xa1, 0xb6, 0x62, 0x05, 0x2f, 0x5b, 0xcb, 0x25, 0x58, 0xec, 0xc9, 0x12, 0x8b, 0x49, 0x48, 0xce, - 0x5e, 0xd4, 0x4f, 0x50, 0x4c, 0x4f, 0x16, 0x29, 0x86, 0xa4, 0x35, 0xbf, 0x2c, 0x35, 0x97, 0xe1, - 0x62, 0x6f, 0x1a, 0x29, 0xe7, 0x43, 0x19, 0xd8, 0x6f, 0xa7, 0x9f, 0x24, 0x4f, 0x28, 0x6a, 0x67, - 0x61, 0xba, 0x3b, 0xba, 0x64, 0xc7, 0xc9, 0xa8, 0x7e, 0x39, 0x12, 0x16, 0x61, 0xa1, 0x07, 0x85, - 0xd4, 0xb1, 0x05, 0x0b, 0x5c, 0xe7, 0x66, 0xb7, 0x77, 0xd5, 0x13, 0x12, 0x72, 0x11, 0x6a, 0xbd, - 0x38, 0xa4, 0x92, 0x26, 0x5c, 0x8e, 0xe5, 0xbe, 0x4c, 0x39, 0x57, 0xe1, 0xca, 0xa1, 0x44, 0x52, - 0xd3, 0x27, 0x30, 0x1f, 0x2b, 0x3f, 0xe6, 0x56, 0xce, 0x55, 0xd3, 0xe3, 0x36, 0xd1, 0xb1, 0x80, - 0x3d, 0xd8, 0xa5, 0xc4, 0x1f, 0x2b, 0x70, 0x29, 0x33, 0x9d, 0x6f, 0x5d, 0x68, 0xbd, 0x63, 0xe9, - 0xf2, 0xd4, 0xfe, 0x20, 0x39, 0xa5, 0xe3, 0x66, 0x80, 0xe2, 0x42, 0x53, 0x91, 0x98, 0x9b, 0x19, - 0x9e, 0x2b, 0x1d, 0xf3, 0xf9, 0xf6, 0xa5, 0x76, 0x46, 0x69, 0x9e, 0xde, 0x1b, 0xff, 0x52, 0x01, - 0x1e, 0x06, 0xcd, 0x0d, 0x42, 0xf7, 0x2c, 0x83, 0xa0, 0xf7, 0x60, 0x38, 0xf9, 0xd8, 0x8b, 0x16, - 0xd2, 0xef, 0xc5, 0x5d, 0x9e, 0x9e, 0xab, 0xb5, 0x5e, 0x26, 0xb2, 0x82, 0xfc, 0x00, 0x46, 0xd2, - 0x6f, 0x2e, 0x68, 0x31, 0x3d, 0xaa, 0xeb, 0x43, 0x72, 0xf5, 0x62, 0x6f, 0x23, 0x09, 0xbe, 0x0a, - 0xe5, 0xa8, 0x00, 0x47, 0x33, 0xe9, 0x11, 0x99, 0x87, 0x84, 0xea, 0x6c, 0x5e, 0xb7, 0x84, 0x6a, - 0x46, 0x25, 0x60, 0xb2, 0x0e, 0x46, 0x57, 0xb2, 0xa3, 0x72, 0xaa, 0xf4, 0x6a, 0xfd, 0x70, 0xc3, - 0x58, 0x73, 0x54, 0x80, 0x66, 0x35, 0x67, 0xaa, 0xe6, 0xac, 0xe6, 0x6c, 0xdd, 0x8a, 0x34, 0x18, - 0x4a, 0x54, 0x67, 0x68, 0xbe, 0x9b, 0x86, 0x14, 0xe0, 0x42, 0x0f, 0x0b, 0x89, 0x69, 0xc2, 0xb9, - 0x8e, 0xba, 0x0f, 0x5d, 0xce, 0xac, 0x46, 0x4e, 0xd1, 0x59, 0xbd, 0x72, 0xa8, 0x9d, 0x64, 0xf9, - 0x7f, 0x38, 0x9b, 0xba, 0x48, 0xa3, 0x4c, 0x28, 0x75, 0xbb, 0xdd, 0x57, 0x17, 0x7b, 0xda, 0x48, - 0xe4, 0xef, 0xb3, 0x52, 0xb9, 0xe3, 0xa2, 0x8e, 0x3a, 0xd6, 0x27, 0xaf, 0x86, 0xa8, 0x5e, 0x3d, - 0x82, 0x65, 0x92, 0xab, 0xa3, 0x56, 0x41, 0x5d, 0x63, 0xe1, 0x68, 0x5c, 0xb9, 0x85, 0x0f, 0xfa, - 0x24, 0x5d, 0x8f, 0xa7, 0x19, 0x97, 0xf3, 0xfd, 0xde, 0x95, 0xb7, 0x71, 0x64, 0x7b, 0xc9, 0xfe, - 0x00, 0x06, 0xdb, 0x05, 0x04, 0xca, 0x84, 0x65, 0xb6, 0xee, 0xa9, 0xce, 0xe5, 0xf6, 0xc7, 0x7e, - 0xeb, 0x52, 0x1c, 0x64, 0xfd, 0x96, 0x5f, 0x9c, 0x64, 0xfd, 0xd6, 0xa3, 0xd2, 0x40, 0x4f, 0x41, - 0xcd, 0xab, 0x03, 0xd0, 0xb5, 0x6e, 0xee, 0xcf, 0xad, 0x48, 0xaa, 0xcb, 0x47, 0x35, 0x8f, 0xa7, - 0xd9, 0xe5, 0xb9, 0x33, 0x3b, 0xcd, 0xfc, 0x27, 0xda, 0xec, 0x34, 0x7b, 0xbc, 0x9d, 0x22, 0x07, - 0xc6, 0xba, 0x3d, 0x06, 0xa3, 0xae, 0x10, 0x5d, 0x1f, 0xb2, 0xab, 0x4b, 0x47, 0x31, 0x8d, 0xe9, - 0xba, 0xdd, 0x53, 0x51, 0xb7, 0x85, 0xe9, 0x7e, 0x4d, 0xcd, 0xd2, 0xf5, 0xba, 0xf6, 0xb2, 0xe0, - 0xcf, 0xbd, 0x93, 0xa2, 0xdc, 0x65, 0xc9, 0x21, 0x6e, 0x1c, 0xd9, 0x5e, 0xb2, 0xff, 0x10, 0xaa, - 0xf9, 0x15, 0x1c, 0xca, 0xc0, 0x1d, 0x5a, 0x50, 0x56, 0xaf, 0x1f, 0x7d, 0x80, 0x14, 0xf0, 0x5c, - 0x81, 0xa9, 0x1e, 0x75, 0x1b, 0xca, 0x20, 0x1e, 0x5e, 0x48, 0x56, 0x5f, 0x3d, 0xc6, 0x88, 0x84, - 0x88, 0x1e, 0xf5, 0x1a, 0xca, 0x9f, 0x56, 0xce, 0x2d, 0x28, 0x2b, 0xe2, 0x08, 0xc5, 0x20, 0xfa, - 0x54, 0x81, 0xe9, 0x5e, 0x65, 0x1a, 0xea, 0x31, 0xb1, 0x3c, 0x19, 0x37, 0x8e, 0x33, 0x24, 0x0e, - 0x89, 0xfc, 0xda, 0x24, 0x1b, 0x12, 0x87, 0x56, 0x4a, 0xd9, 0x90, 0x38, 0xbc, 0xec, 0x41, 0x3f, - 0x53, 0x92, 0x2f, 0x28, 0xdd, 0x65, 0xdc, 0xca, 0x0b, 0xf4, 0x9e, 0x5a, 0x5e, 0x3b, 0xe6, 0xa8, - 0x78, 0x8b, 0xe6, 0x56, 0x1d, 0xd9, 0x2d, 0x7a, 0x58, 0x71, 0x54, 0x6d, 0x1c, 0xd9, 0x5e, 0xb2, - 0xff, 0x54, 0x81, 0xd9, 0xde, 0xb5, 0x04, 0xba, 0xd9, 0x73, 0x5e, 0x39, 0x42, 0x6e, 0x1d, 0x6f, - 0x50, 0xb7, 0xe8, 0xe8, 0x08, 0xd1, 0xdc, 0xc9, 0xe5, 0x05, 0xe8, 0xf5, 0xa3, 0x0f, 0xc8, 0x8f, - 0x8e, 0x0e, 0x19, 0xbd, 0xa7, 0x96, 0xa7, 0xe5, 0xb5, 0x63, 0x8e, 0x12, 0x82, 0xaa, 0x67, 0x7e, - 0xf4, 0xcd, 0x67, 0x4b, 0xca, 0x5d, 0xed, 0xf3, 0xaf, 0x66, 0x95, 0x2f, 0xbe, 0x9a, 0x55, 0xfe, - 0xf9, 0xd5, 0xac, 0xf2, 0x8b, 0xaf, 0x67, 0x4f, 0x7d, 0xf1, 0xf5, 0xec, 0xa9, 0xbf, 0x7f, 0x3d, - 0x7b, 0xea, 0xc9, 0x1b, 0x47, 0xfc, 0xd9, 0xfa, 0xa0, 0x11, 0xff, 0x59, 0x51, 0xf8, 0xd4, 0x27, - 0xc1, 0x56, 0x3f, 0xff, 0xeb, 0xa1, 0x9b, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x01, 0x56, - 0xd6, 0xf8, 0x34, 0x00, 0x00, + // 3214 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0x4b, 0x70, 0x1c, 0x47, + 0x19, 0xf6, 0x58, 0x6b, 0x69, 0xf5, 0x4b, 0x96, 0xd6, 0x6d, 0x49, 0x1e, 0xad, 0xde, 0x2b, 0x3f, + 0xd6, 0x26, 0xd6, 0x3a, 0xb6, 0x13, 0x87, 0xc0, 0x01, 0x3b, 0xb2, 0x83, 0x54, 0xb6, 0xa3, 0x8c, + 0x94, 0x98, 0x72, 0x52, 0x4c, 0x5a, 0x33, 0xad, 0xd5, 0xa0, 0x79, 0x6c, 0x7a, 0x66, 0xf5, 0x48, + 0x85, 0x02, 0x5c, 0x95, 0x0b, 0x54, 0x01, 0x27, 0x0e, 0x40, 0x71, 0xe6, 0x44, 0xe5, 0x00, 0x17, + 0x4e, 0x1c, 0x73, 0x4c, 0x71, 0xa2, 0x38, 0xa4, 0xa8, 0xe4, 0x90, 0x2b, 0x67, 0x4e, 0x54, 0x3f, + 0xe6, 0xb9, 0x3b, 0x2b, 0xc9, 0x23, 0xa7, 0x72, 0x49, 0x3c, 0xdd, 0x7f, 0x7f, 0xdf, 0xd7, 0x7f, + 0xff, 0xfd, 0x77, 0xff, 0xbd, 0x25, 0x18, 0x27, 0x8e, 0xe5, 0xfb, 0x96, 0xe7, 0xfa, 0x8d, 0xdd, + 0x3b, 0x8d, 0x60, 0x7f, 0xa9, 0x45, 0xbd, 0xc0, 0x43, 0xc3, 0x51, 0xf3, 0xd2, 0xee, 0x9d, 0xea, + 0x39, 0xec, 0x58, 0xae, 0xd7, 0xe0, 0xff, 0x15, 0x06, 0xd5, 0x0b, 0x86, 0xe7, 0x3b, 0x9e, 0xdf, + 0x70, 0xfc, 0x66, 0x63, 0xf7, 0x65, 0xf6, 0x3f, 0xd9, 0x31, 0x29, 0x3a, 0x74, 0xfe, 0xd5, 0x10, + 0x1f, 0xb2, 0xab, 0x9a, 0xe0, 0xba, 0xd5, 0xa0, 0xa4, 0xd5, 0x0e, 0x08, 0x0d, 0x87, 0xa5, 0xfa, + 0xf6, 0x3c, 0xba, 0x13, 0x75, 0x8d, 0x35, 0xbd, 0xa6, 0x27, 0xe0, 0xd8, 0xbf, 0x44, 0x6b, 0xed, + 0x7f, 0x0b, 0x30, 0xf2, 0x56, 0x2b, 0xb0, 0x3c, 0x17, 0xdb, 0x6b, 0x98, 0x62, 0xc7, 0x47, 0x2a, + 0x0c, 0xec, 0x12, 0xca, 0x40, 0x54, 0x65, 0xbe, 0xaf, 0x3e, 0xa8, 0x85, 0x9f, 0xe8, 0xbb, 0x30, + 0xe9, 0xe0, 0x7d, 0xdd, 0x27, 0xd4, 0xc2, 0xb6, 0xf5, 0x11, 0x31, 0x75, 0xc7, 0x6f, 0xea, 0x36, + 0x71, 0x9b, 0xc1, 0xb6, 0x7a, 0x7a, 0xbe, 0xaf, 0xde, 0xa7, 0x4d, 0x38, 0x78, 0x7f, 0x3d, 0xea, + 0x7f, 0xe4, 0x37, 0x1f, 0xf2, 0x5e, 0x84, 0xa1, 0xe2, 0x58, 0xae, 0x1e, 0x78, 0x2d, 0xcb, 0xd0, + 0xf7, 0x88, 0xd5, 0xdc, 0x0e, 0xd4, 0x3e, 0x86, 0x7e, 0xef, 0xce, 0x67, 0x5f, 0xcc, 0x9d, 0xfa, + 0xf7, 0x17, 0x73, 0x8d, 0xa6, 0x15, 0x6c, 0xb7, 0x37, 0x97, 0x0c, 0xcf, 0x69, 0x60, 0xdb, 0xf6, + 0x28, 0xbe, 0xee, 0x92, 0x80, 0x4d, 0x21, 0xfc, 0x34, 0xb6, 0xb1, 0xe5, 0x36, 0x1c, 0x1c, 0x6c, + 0x2f, 0x2d, 0x13, 0x43, 0x1b, 0x71, 0x2c, 0x77, 0x83, 0xe1, 0x3d, 0xe1, 0x70, 0x68, 0x0b, 0x26, + 0x28, 0xf9, 0xb0, 0x6d, 0x51, 0xa6, 0xcb, 0x72, 0x2d, 0xa7, 0xed, 0xe8, 0x7e, 0x80, 0x77, 0x88, + 0x7a, 0x86, 0x13, 0xdd, 0x90, 0x44, 0xe3, 0xc2, 0x9b, 0xbe, 0xb9, 0xb3, 0x64, 0x79, 0x02, 0x6e, + 0xc5, 0x0d, 0xfe, 0xf9, 0xd7, 0xeb, 0x20, 0xdd, 0xbc, 0xe2, 0x06, 0x7f, 0xfe, 0xfa, 0xd3, 0x6b, + 0x8a, 0x36, 0x16, 0xe2, 0x3d, 0x12, 0x70, 0xeb, 0x0c, 0x8d, 0x79, 0x81, 0x12, 0xc7, 0xdb, 0x25, + 0x02, 0x5d, 0x37, 0x89, 0x8d, 0x0f, 0xf4, 0x3d, 0xcb, 0x35, 0xbd, 0x3d, 0xb5, 0x5f, 0x78, 0x41, + 0x18, 0x70, 0xfb, 0x65, 0xd6, 0xfd, 0x84, 0xf7, 0xa2, 0xba, 0xf0, 0x02, 0x69, 0x79, 0xc6, 0x76, + 0xe8, 0xb7, 0x01, 0x3e, 0x82, 0x4d, 0xe6, 0x3e, 0x6b, 0x96, 0xfe, 0x7a, 0x0a, 0xc3, 0x9b, 0x24, + 0xc0, 0x3a, 0x71, 0x03, 0xea, 0xb5, 0x0e, 0xd4, 0x72, 0x31, 0x5f, 0x0d, 0x31, 0xb0, 0xfb, 0x02, + 0x0b, 0xbd, 0x0f, 0x67, 0x6d, 0x82, 0xa9, 0x6b, 0xb9, 0x4d, 0x9d, 0xe2, 0x80, 0xa8, 0x83, 0xc5, + 0xc0, 0x87, 0x43, 0x34, 0x0d, 0x07, 0x04, 0x39, 0xc0, 0x62, 0x40, 0x6f, 0x52, 0x6c, 0x5a, 0xc4, + 0x0d, 0xf4, 0x60, 0x9b, 0x12, 0x7f, 0xdb, 0xb3, 0x4d, 0x15, 0x8a, 0xd1, 0x8c, 0x39, 0x78, 0xff, + 0x4d, 0x89, 0xba, 0x11, 0x82, 0x22, 0x02, 0x88, 0xb9, 0x54, 0x2c, 0xc5, 0x16, 0xc5, 0x06, 0x8b, + 0x65, 0x75, 0xa8, 0x18, 0x15, 0x5b, 0x25, 0xbe, 0x78, 0x0f, 0x24, 0x20, 0xba, 0x0f, 0x73, 0x6c, + 0x56, 0x6d, 0x77, 0xab, 0x6d, 0x6f, 0x59, 0xb6, 0x4d, 0x4c, 0x5d, 0xec, 0x2e, 0x9d, 0xc5, 0x08, + 0xf1, 0x03, 0x5f, 0x3d, 0x3b, 0xdf, 0x57, 0x2f, 0x69, 0xd3, 0x0e, 0xde, 0x7f, 0x27, 0xb6, 0x7a, + 0xc2, 0x8d, 0x34, 0x69, 0x83, 0xde, 0x84, 0xf9, 0x2c, 0x8c, 0xdc, 0xc0, 0x31, 0xce, 0x08, 0xc7, + 0x99, 0x49, 0xe3, 0x68, 0xc2, 0x2a, 0x02, 0xfa, 0x08, 0x66, 0xc4, 0x5e, 0xa2, 0x64, 0x0f, 0x53, + 0x53, 0xce, 0xdf, 0x72, 0x5a, 0x1e, 0x0d, 0xb0, 0x6b, 0x10, 0x75, 0xb4, 0x98, 0x07, 0xaa, 0x1c, + 0x5d, 0xe3, 0xe0, 0xdc, 0x13, 0x2b, 0x11, 0x34, 0xfa, 0x44, 0x81, 0xc5, 0x14, 0xf9, 0x16, 0x21, + 0x3a, 0x25, 0xbb, 0xc4, 0x6d, 0xa7, 0x24, 0x54, 0x8a, 0x49, 0x98, 0x4b, 0x48, 0x78, 0x40, 0x88, + 0x26, 0x08, 0x12, 0x3a, 0x08, 0xa0, 0x94, 0x0c, 0x6c, 0xb7, 0xb6, 0xb1, 0x7a, 0xae, 0xe0, 0xd2, + 0x27, 0x58, 0xef, 0x32, 0x40, 0x64, 0xc0, 0xb9, 0x00, 0xfb, 0x3b, 0x69, 0x16, 0x54, 0x8c, 0x65, + 0x94, 0x21, 0x26, 0x49, 0x98, 0x4f, 0x77, 0xb1, 0x6d, 0x99, 0x38, 0xf0, 0xa8, 0xaf, 0xef, 0xfa, + 0xba, 0x18, 0xa8, 0xb7, 0x08, 0x35, 0xd8, 0x36, 0x12, 0xec, 0xea, 0xf9, 0x82, 0x3e, 0x8d, 0x39, + 0xde, 0xf5, 0xef, 0x72, 0x93, 0x35, 0x41, 0x20, 0xc4, 0xa0, 0xef, 0xc3, 0x14, 0x4f, 0xf1, 0xd8, + 0x69, 0xd9, 0xc4, 0xd7, 0x03, 0x4f, 0xf7, 0x0d, 0x6c, 0x13, 0xdd, 0x37, 0x3c, 0x4a, 0x7c, 0x75, + 0x8c, 0xc7, 0xe6, 0x05, 0x96, 0xe4, 0x85, 0xc5, 0x86, 0xb7, 0xce, 0xfa, 0xd7, 0x79, 0x37, 0x7a, + 0x1d, 0xaa, 0x6c, 0x74, 0xe0, 0xb5, 0x74, 0xcb, 0xdd, 0x22, 0x94, 0x50, 0x0e, 0x21, 0xb5, 0x8f, + 0xf3, 0xc1, 0x2c, 0x3b, 0x6c, 0x78, 0xad, 0x15, 0xd9, 0xbf, 0xe1, 0x49, 0xe6, 0x1f, 0xc0, 0x4c, + 0x38, 0x76, 0xcb, 0xa3, 0xc4, 0xc0, 0x7e, 0x90, 0x1e, 0x3e, 0xc1, 0x87, 0x4f, 0x8a, 0xe1, 0x0f, + 0x62, 0x93, 0x08, 0x21, 0xc1, 0x2e, 0x37, 0x55, 0x72, 0xf8, 0x85, 0x24, 0xbb, 0xdc, 0x4e, 0xf1, + 0xd8, 0xa7, 0x50, 0x31, 0x28, 0xc1, 0x01, 0x91, 0x47, 0xd4, 0x16, 0x21, 0xaa, 0xfa, 0x9c, 0xc7, + 0xc6, 0x88, 0x40, 0xe2, 0x67, 0xd3, 0x03, 0x42, 0xd0, 0xf7, 0xa0, 0x1a, 0x65, 0x43, 0x93, 0xf8, + 0x7c, 0x39, 0x99, 0x50, 0x8b, 0x29, 0x50, 0x27, 0x85, 0x4b, 0x43, 0x8b, 0x65, 0x61, 0xf0, 0x08, + 0xef, 0xaf, 0xb0, 0x6e, 0xf4, 0x1e, 0x54, 0x28, 0x69, 0x5a, 0x7e, 0x40, 0x31, 0x4b, 0x44, 0x5c, + 0xd8, 0xf4, 0x73, 0x0a, 0x1b, 0x4d, 0x22, 0x31, 0x65, 0x2f, 0x01, 0x32, 0xc9, 0x16, 0x6e, 0xdb, + 0x81, 0xde, 0xc2, 0x4d, 0xa2, 0xdb, 0x96, 0x63, 0x05, 0xea, 0x0c, 0x57, 0x54, 0x91, 0x3d, 0x6b, + 0xb8, 0x49, 0x1e, 0xb2, 0x76, 0x74, 0x11, 0x46, 0x98, 0xec, 0x84, 0xe5, 0x2c, 0xb7, 0x1c, 0x76, + 0xf0, 0x7e, 0x6c, 0xc5, 0xd6, 0x31, 0x73, 0xc6, 0xe9, 0x94, 0x18, 0x1e, 0x35, 0xe5, 0xa0, 0x39, + 0x7e, 0xe0, 0x4d, 0xa6, 0x0f, 0x3c, 0x8d, 0x5b, 0x08, 0x84, 0x3a, 0x54, 0x36, 0x6d, 0xcf, 0xd8, + 0xf1, 0x59, 0xf0, 0xeb, 0x8e, 0xe7, 0x06, 0xdb, 0xea, 0x3c, 0x67, 0x1a, 0x11, 0xed, 0x6b, 0x84, + 0x3e, 0x62, 0xad, 0x2c, 0x03, 0xb4, 0xc2, 0x7d, 0x29, 0x02, 0x8e, 0xe5, 0x9d, 0x85, 0x82, 0x19, + 0xa0, 0x25, 0x62, 0x62, 0x25, 0x04, 0x64, 0x19, 0x20, 0xa2, 0x09, 0x63, 0x53, 0xad, 0x15, 0xcc, + 0x00, 0x92, 0x25, 0x0c, 0x64, 0x76, 0x43, 0x8a, 0x48, 0x64, 0xf8, 0xaa, 0x8b, 0x05, 0x6f, 0x48, + 0x92, 0x43, 0x46, 0x3b, 0x73, 0x97, 0xd1, 0xe9, 0xae, 0x8b, 0x05, 0xdd, 0x65, 0x74, 0x71, 0x97, + 0xd1, 0xe1, 0xae, 0x4b, 0x05, 0xdd, 0x65, 0x64, 0xdc, 0xf5, 0x18, 0xfa, 0x0d, 0xdd, 0xf5, 0xa8, + 0xa3, 0x5e, 0x2e, 0x86, 0x7c, 0xc6, 0x78, 0xec, 0x51, 0x07, 0x7d, 0x00, 0xa3, 0xa4, 0xe5, 0x5b, + 0xb6, 0xe7, 0x46, 0xde, 0xaf, 0x17, 0xf4, 0xbe, 0xc4, 0x0b, 0xbd, 0xff, 0x2e, 0x5c, 0xdd, 0xc6, + 0xf6, 0x16, 0xdf, 0xfa, 0x2d, 0xea, 0x19, 0xc4, 0xf7, 0xe5, 0xb1, 0xcd, 0x6f, 0x8b, 0xd8, 0xf6, + 0x75, 0xe2, 0x9a, 0x3a, 0x0f, 0x71, 0xf5, 0x1a, 0x8f, 0xf7, 0x45, 0x36, 0xe0, 0x11, 0xde, 0x5f, + 0x13, 0xe6, 0xfc, 0x20, 0xd6, 0xa4, 0xf1, 0x7d, 0xd7, 0xbc, 0xc7, 0x4c, 0x59, 0xea, 0x32, 0x71, + 0x80, 0x75, 0x9f, 0xb8, 0x26, 0xbb, 0xd2, 0xb1, 0x0c, 0xf1, 0x9d, 0xe7, 0x4d, 0x5d, 0x0c, 0x69, + 0x5d, 0x00, 0xb1, 0x04, 0x81, 0xa1, 0x12, 0x7a, 0xc5, 0xc7, 0x5b, 0x44, 0x37, 0xad, 0x5d, 0xf5, + 0xa5, 0x93, 0x71, 0xcb, 0x3a, 0xde, 0x22, 0xcb, 0xd6, 0x6e, 0x58, 0x54, 0x10, 0x9b, 0x38, 0xc4, + 0x0d, 0xc4, 0x9e, 0x8f, 0xa2, 0xe6, 0x7a, 0x94, 0xb4, 0xef, 0xcb, 0xfe, 0x35, 0x42, 0xa3, 0x18, + 0x90, 0x87, 0x15, 0xbb, 0xa2, 0xed, 0xca, 0xc4, 0x2d, 0xc6, 0x0b, 0x1f, 0x2e, 0x45, 0x87, 0xd5, + 0x5d, 0x6e, 0xc1, 0x13, 0x32, 0x03, 0x10, 0x7e, 0xbb, 0x06, 0xe7, 0xf8, 0x51, 0x17, 0x50, 0xe6, + 0x35, 0x79, 0x1b, 0x6f, 0xf0, 0x31, 0xa3, 0xec, 0x80, 0xe3, 0xed, 0xf2, 0x3a, 0xee, 0xc1, 0x05, + 0xcb, 0xb5, 0x02, 0x0b, 0xdb, 0x3a, 0x25, 0x4d, 0x4a, 0x02, 0xfd, 0xc3, 0x36, 0x76, 0x03, 0xcb, + 0x26, 0xea, 0x8d, 0x62, 0xee, 0x18, 0x97, 0xb8, 0x1a, 0x87, 0x7d, 0x5b, 0xa2, 0xa2, 0x1f, 0xc3, + 0x68, 0x8b, 0x87, 0x77, 0xec, 0xf7, 0x97, 0x0b, 0xde, 0xd2, 0x5b, 0x2c, 0xce, 0x43, 0xaf, 0xbf, + 0x06, 0x6a, 0xd3, 0xf6, 0x36, 0xb1, 0xad, 0xef, 0x6d, 0x5b, 0x01, 0xb1, 0x2d, 0x3f, 0xd0, 0x89, + 0x8b, 0x37, 0x6d, 0x62, 0xaa, 0x37, 0xe7, 0xfb, 0xea, 0x65, 0x6d, 0x42, 0xf4, 0x3f, 0x09, 0xbb, + 0xef, 0x8b, 0x5e, 0x76, 0x13, 0x16, 0x47, 0x24, 0x3f, 0xe5, 0x3c, 0xda, 0x05, 0xe0, 0x16, 0x07, + 0x98, 0xe6, 0x66, 0x6f, 0x08, 0xab, 0x0e, 0x98, 0x37, 0x60, 0x96, 0x1f, 0x13, 0xfb, 0x2d, 0x42, + 0x2d, 0x96, 0x36, 0x12, 0x17, 0x6a, 0xe6, 0x09, 0x5f, 0xbd, 0xcd, 0x97, 0x62, 0x8a, 0x9d, 0x13, + 0xb1, 0x51, 0x78, 0x9f, 0xe6, 0x26, 0xe8, 0x97, 0x0a, 0x5c, 0x8a, 0x12, 0x99, 0xee, 0xb5, 0x03, + 0xdb, 0x22, 0x54, 0x37, 0x49, 0x40, 0xf8, 0xad, 0x3d, 0x51, 0x7b, 0xbc, 0x52, 0xcc, 0x79, 0xb5, + 0x88, 0xe5, 0x2d, 0x41, 0xb2, 0x1c, 0x72, 0xc4, 0x95, 0xc8, 0x33, 0x05, 0x16, 0x7a, 0x89, 0x11, + 0x17, 0xc7, 0x57, 0x8b, 0x09, 0x99, 0xcd, 0x15, 0x22, 0xee, 0x91, 0x1f, 0x82, 0xea, 0x7b, 0x34, + 0xb0, 0x38, 0xa3, 0x8d, 0x9d, 0x4d, 0x93, 0x5d, 0x21, 0x5d, 0x6c, 0x07, 0x07, 0xea, 0x9d, 0x62, + 0xd4, 0x13, 0x11, 0xf0, 0x43, 0x8e, 0xbb, 0x26, 0x60, 0x57, 0x4b, 0xe5, 0x52, 0xe5, 0xcc, 0x6a, + 0xa9, 0x5c, 0xad, 0x4c, 0xad, 0x96, 0xca, 0x53, 0x95, 0xe9, 0xd5, 0x52, 0xf9, 0x4a, 0xa5, 0xbe, + 0x5a, 0x2a, 0x5f, 0xad, 0x5c, 0xe3, 0x55, 0x5b, 0xc7, 0xd6, 0xe4, 0xab, 0xaa, 0x93, 0xad, 0x2d, + 0x92, 0xd8, 0xba, 0x61, 0x09, 0xa1, 0x2d, 0xb2, 0x21, 0x94, 0x04, 0xd4, 0x12, 0x37, 0x50, 0x51, + 0x04, 0xe9, 0xae, 0xe7, 0x1a, 0xc4, 0x97, 0x51, 0x22, 0xa3, 0x2b, 0x55, 0x7a, 0x98, 0xc4, 0xc0, + 0x07, 0xbc, 0xa2, 0xd5, 0x2e, 0xf6, 0x84, 0x90, 0x09, 0xbe, 0xd6, 0x82, 0xf3, 0xef, 0xb4, 0x4c, + 0x1c, 0x10, 0xf1, 0xf2, 0x21, 0x8b, 0x2b, 0x34, 0x01, 0xfd, 0x2c, 0x97, 0x12, 0xaa, 0x2a, 0xf3, + 0x4a, 0x7d, 0x50, 0x93, 0x5f, 0xe8, 0x36, 0xf4, 0xb7, 0xb8, 0xa1, 0x7a, 0x7a, 0x5e, 0xa9, 0x0f, + 0xdd, 0x9c, 0x5e, 0x4a, 0x3e, 0xef, 0x2c, 0xa5, 0x9f, 0x51, 0x34, 0x69, 0xfb, 0xfa, 0xd0, 0xb3, + 0xaf, 0x3f, 0xbd, 0x26, 0x21, 0x6a, 0x13, 0x30, 0x96, 0x66, 0xf4, 0x5b, 0x9e, 0xeb, 0x93, 0xda, + 0xdf, 0x06, 0x61, 0x9c, 0xef, 0x14, 0xf2, 0x98, 0xec, 0x6d, 0x88, 0x0a, 0x44, 0x88, 0x51, 0x61, + 0x40, 0x6e, 0x34, 0xa9, 0x26, 0xfc, 0x44, 0x55, 0x28, 0x3b, 0x24, 0xc0, 0x2c, 0x63, 0x73, 0x41, + 0x83, 0x5a, 0xf4, 0x8d, 0xe6, 0x60, 0xc8, 0xf6, 0x7c, 0x5f, 0x77, 0x48, 0xb0, 0xed, 0x99, 0x6a, + 0x89, 0x77, 0x03, 0x6b, 0x7a, 0xc4, 0x5b, 0xd0, 0x02, 0x0c, 0x67, 0x5e, 0x21, 0x94, 0x7a, 0x9f, + 0x36, 0x44, 0x12, 0x4f, 0x10, 0x75, 0xa8, 0x34, 0xa9, 0xd7, 0x76, 0x4d, 0x3d, 0xa0, 0xed, 0x60, + 0x5b, 0xb7, 0x71, 0x53, 0x2d, 0x73, 0xb3, 0x11, 0xd1, 0xbe, 0xc1, 0x9a, 0x1f, 0xe2, 0x26, 0x3b, + 0x8b, 0x45, 0xb2, 0x52, 0x81, 0x11, 0x15, 0x38, 0x8b, 0x79, 0x8e, 0x42, 0x4f, 0x61, 0x98, 0x6f, + 0x16, 0x99, 0x0a, 0xd4, 0xa1, 0x62, 0xa8, 0x43, 0x1c, 0x4c, 0xe4, 0x0c, 0x74, 0x09, 0x46, 0x98, + 0xd5, 0x9e, 0xee, 0x92, 0x26, 0x66, 0xc1, 0xa7, 0x0e, 0xcf, 0x2b, 0xf5, 0xb2, 0x76, 0x96, 0xb7, + 0x3e, 0x96, 0x8d, 0xe8, 0x6d, 0x18, 0x90, 0xe7, 0x94, 0x7a, 0xb6, 0x18, 0x7b, 0x88, 0xc3, 0x52, + 0xae, 0xcc, 0x70, 0x7e, 0x7b, 0x53, 0x06, 0x4e, 0xf8, 0x6c, 0x34, 0xc2, 0xfd, 0x3a, 0x21, 0xfa, + 0xd7, 0xa3, 0x6e, 0xf9, 0x6c, 0xb4, 0x03, 0xe3, 0x0e, 0xa1, 0x56, 0xa0, 0xc7, 0x5b, 0x5b, 0x24, + 0x93, 0xd1, 0x62, 0xd2, 0xce, 0x73, 0xd4, 0xf5, 0x10, 0x54, 0x64, 0x10, 0x0f, 0x2e, 0xc8, 0x03, + 0x55, 0x96, 0x70, 0xf1, 0x51, 0x57, 0x29, 0x46, 0x37, 0x2e, 0x70, 0x65, 0xe5, 0x17, 0x1d, 0x75, + 0x6d, 0xa8, 0x4a, 0xc2, 0xb8, 0xee, 0x8b, 0x39, 0xcf, 0x15, 0xe3, 0x54, 0x05, 0x74, 0x5c, 0x2e, + 0x46, 0xb4, 0xf1, 0x3c, 0xc3, 0x17, 0x98, 0x88, 0x13, 0x9d, 0xc8, 0x3c, 0xe5, 0xbd, 0x2f, 0x22, + 0x7c, 0x15, 0x2e, 0x88, 0x03, 0x32, 0x3c, 0xe8, 0xa2, 0x83, 0x53, 0x3d, 0xcf, 0x43, 0x70, 0x5c, + 0x74, 0x8b, 0x23, 0x2e, 0x3a, 0x30, 0x59, 0xdc, 0xc8, 0x71, 0xa1, 0xd0, 0x78, 0xe0, 0x18, 0x1f, + 0x38, 0x21, 0xfa, 0x25, 0x61, 0x34, 0xf2, 0xf5, 0x61, 0x96, 0x7a, 0xc2, 0x7c, 0xb1, 0x5a, 0x2a, + 0xf7, 0x55, 0x4a, 0xab, 0xa5, 0xf2, 0x99, 0x4a, 0xff, 0x6a, 0xa9, 0xdc, 0x5f, 0x19, 0x58, 0x2d, + 0x95, 0x07, 0x2b, 0x20, 0xd2, 0x82, 0x6e, 0x7b, 0x4d, 0xcb, 0xd0, 0x46, 0xe3, 0x03, 0x4c, 0x34, + 0x54, 0xe2, 0x06, 0x91, 0x4b, 0xb4, 0xa1, 0xb0, 0x62, 0xc4, 0xb4, 0x59, 0xbb, 0x05, 0x13, 0xd9, + 0xb4, 0x25, 0x32, 0x1a, 0x9a, 0x84, 0xb2, 0xc8, 0xd0, 0x96, 0xc9, 0x13, 0x57, 0x49, 0x1b, 0xe0, + 0xdf, 0x2b, 0x66, 0xed, 0x77, 0x0a, 0x4c, 0xad, 0xb8, 0x3e, 0xa1, 0x81, 0x54, 0xbc, 0x86, 0x0f, + 0x6c, 0x0f, 0x9b, 0x87, 0xe5, 0x5f, 0x0d, 0xc6, 0x42, 0x0f, 0xec, 0x62, 0xbb, 0x4d, 0xf4, 0xcd, + 0xb6, 0x6b, 0xda, 0x44, 0x66, 0xe3, 0xf9, 0x64, 0x36, 0xbe, 0xb5, 0x24, 0xa1, 0xdf, 0x65, 0x86, + 0xf7, 0xb8, 0x9d, 0x86, 0x68, 0x47, 0x5b, 0x3a, 0x3b, 0xcf, 0xc2, 0x74, 0x77, 0x5d, 0x32, 0x4b, + 0xff, 0x46, 0x81, 0xaa, 0x30, 0x10, 0x6b, 0x74, 0x44, 0xdd, 0x0f, 0x01, 0xc9, 0x15, 0xe7, 0xf7, + 0xf4, 0x94, 0xea, 0xd9, 0xb4, 0x6a, 0x81, 0xbb, 0x8c, 0x03, 0x2c, 0x35, 0x57, 0xf6, 0x32, 0x2d, + 0x69, 0xc5, 0x33, 0xa1, 0x27, 0x33, 0x82, 0xa4, 0xe0, 0xbf, 0x28, 0x30, 0xaa, 0xf1, 0x9a, 0x3f, + 0x7a, 0x3a, 0xcc, 0x55, 0x99, 0x5c, 0xb0, 0x52, 0x6a, 0xc1, 0xd0, 0x18, 0x9c, 0xf1, 0xf6, 0x5c, + 0x42, 0xd5, 0x33, 0x7c, 0x84, 0xf8, 0x40, 0x33, 0x00, 0x56, 0x74, 0x96, 0xaa, 0xfd, 0x3c, 0x12, + 0x07, 0x2d, 0x5f, 0xfa, 0x2e, 0xa5, 0x73, 0xb5, 0x54, 0x3e, 0x5d, 0xe9, 0x13, 0x11, 0xa8, 0x0d, + 0xd9, 0xd6, 0xa6, 0xde, 0xba, 0xd9, 0xd2, 0x77, 0xc8, 0x81, 0x76, 0xd6, 0x69, 0xdb, 0x81, 0xa5, + 0x63, 0xd3, 0xa4, 0xc4, 0xf7, 0x6b, 0x0f, 0xa0, 0x12, 0xeb, 0x95, 0x91, 0xa4, 0xc2, 0x80, 0xdf, + 0x36, 0x58, 0xfd, 0xc3, 0x15, 0x97, 0xb5, 0xf0, 0x93, 0xf5, 0x38, 0xc4, 0xf7, 0x71, 0x93, 0xc8, + 0x03, 0x30, 0xfc, 0xac, 0x7d, 0x04, 0x93, 0xbc, 0x4e, 0x22, 0x5a, 0xe2, 0xc5, 0xe3, 0x38, 0x1e, + 0x38, 0x9d, 0xf6, 0x40, 0x7a, 0xae, 0x7d, 0xbd, 0xe6, 0x5a, 0x5b, 0x83, 0x6a, 0x37, 0xee, 0x02, + 0xb3, 0xf9, 0x83, 0x02, 0xa3, 0x77, 0x4d, 0x53, 0x96, 0x7f, 0xcf, 0x3d, 0x89, 0x1f, 0x42, 0x3f, + 0x76, 0xbc, 0xb6, 0x1b, 0xf0, 0x09, 0x3c, 0x4f, 0x79, 0x28, 0xc7, 0xa7, 0xe7, 0x8b, 0xa0, 0x12, + 0x8b, 0x93, 0x81, 0xf7, 0x27, 0x05, 0x90, 0x16, 0xff, 0x06, 0xf2, 0xed, 0x13, 0x3d, 0x0e, 0xe7, + 0x53, 0xfa, 0xa4, 0xee, 0xa7, 0xa0, 0xbe, 0x81, 0x5d, 0x83, 0xd8, 0x27, 0x22, 0x3e, 0x4d, 0x39, + 0x05, 0x93, 0x5d, 0xb0, 0x25, 0xf1, 0xdf, 0x15, 0x18, 0x5b, 0x26, 0x36, 0xbb, 0x7e, 0x14, 0x76, + 0x99, 0x0a, 0x03, 0xc9, 0x48, 0x1d, 0xd4, 0xc2, 0xcf, 0x84, 0x33, 0x4b, 0x27, 0xe9, 0xcc, 0x0b, + 0x30, 0x9e, 0xd1, 0x2e, 0x67, 0xf5, 0x0f, 0x25, 0xdc, 0x0b, 0xc7, 0x9a, 0x5b, 0x62, 0x02, 0xa7, + 0xd3, 0x13, 0x48, 0xce, 0xba, 0x2f, 0x2f, 0x50, 0x4e, 0x74, 0x6e, 0x33, 0x30, 0xd5, 0x75, 0x06, + 0x72, 0x86, 0xbf, 0x57, 0x60, 0x3e, 0xb9, 0xaa, 0x27, 0xb5, 0x86, 0xd3, 0x30, 0x68, 0x0a, 0x28, + 0x2f, 0x5c, 0xc5, 0xb8, 0x21, 0xe9, 0xa0, 0x52, 0xca, 0x41, 0x69, 0xed, 0x8b, 0xb0, 0xd0, 0x43, + 0x9b, 0x9c, 0xc1, 0x2e, 0x5b, 0xa2, 0x3d, 0x4c, 0xcd, 0x17, 0x1e, 0x7e, 0x5d, 0x1c, 0xdb, 0x85, + 0x57, 0xca, 0xfa, 0xa3, 0x02, 0x95, 0x07, 0xac, 0xc8, 0x48, 0x16, 0x43, 0xdf, 0x9e, 0xfc, 0x71, + 0x1e, 0xce, 0x25, 0xd4, 0x49, 0xcd, 0xef, 0x41, 0xf5, 0xae, 0x69, 0x6e, 0x78, 0xd1, 0x0d, 0xec, + 0xae, 0xe9, 0x58, 0xee, 0x11, 0xa2, 0x5d, 0x1e, 0x7f, 0x61, 0xb4, 0xcb, 0xcf, 0x0e, 0x7f, 0x75, + 0x05, 0x97, 0xdc, 0x1f, 0xc0, 0x9c, 0x58, 0xe5, 0x07, 0xd4, 0x73, 0x5e, 0x88, 0x80, 0x1a, 0xcc, + 0xe7, 0x33, 0x48, 0x15, 0x06, 0x2c, 0x88, 0x07, 0x1e, 0xf1, 0xc3, 0x7c, 0xfa, 0x26, 0x7b, 0x52, + 0x89, 0xf4, 0x22, 0xd4, 0x7a, 0x91, 0x48, 0x29, 0x26, 0xd4, 0x96, 0x2d, 0xff, 0x45, 0x6b, 0xb9, + 0x04, 0x8b, 0x3d, 0x59, 0x62, 0x31, 0x09, 0xc9, 0xd9, 0x8b, 0xfa, 0x09, 0x8a, 0xe9, 0xc9, 0x22, + 0xc5, 0x90, 0xb4, 0xe6, 0x17, 0xa5, 0xe6, 0x32, 0x5c, 0xec, 0x4d, 0x23, 0xe5, 0xbc, 0x2f, 0x03, + 0xfb, 0xcd, 0xf4, 0x7b, 0xe3, 0x09, 0x45, 0xed, 0x2c, 0x4c, 0x77, 0x47, 0x97, 0xec, 0x38, 0x19, + 0xd5, 0x2f, 0x46, 0xc2, 0x22, 0x2c, 0xf4, 0xa0, 0x90, 0x3a, 0x36, 0x61, 0x81, 0xeb, 0xdc, 0xe8, + 0xf6, 0x68, 0x7a, 0x42, 0x42, 0x2e, 0x42, 0xad, 0x17, 0x87, 0x54, 0xd2, 0x84, 0xcb, 0xb1, 0xdc, + 0x17, 0x29, 0xe7, 0x2a, 0x5c, 0x39, 0x94, 0x48, 0x6a, 0xfa, 0x18, 0xe6, 0x63, 0xe5, 0xc7, 0xdc, + 0xca, 0xb9, 0x6a, 0x7a, 0xdc, 0x26, 0x3a, 0x16, 0xb0, 0x07, 0xbb, 0x94, 0xf8, 0x0b, 0x05, 0x2e, + 0x65, 0xa6, 0xf3, 0x8d, 0x0b, 0xad, 0x77, 0x2c, 0x5d, 0x9e, 0xda, 0x9f, 0x26, 0xa7, 0x74, 0xdc, + 0x0c, 0x50, 0x5c, 0x68, 0x2a, 0x12, 0x73, 0x33, 0xc3, 0x33, 0xa5, 0x63, 0x3e, 0xdf, 0xbc, 0xd4, + 0xce, 0x28, 0xcd, 0xd3, 0x7b, 0xf3, 0xbf, 0x2a, 0xc0, 0x23, 0xbf, 0xb9, 0x4e, 0xe8, 0xae, 0x65, + 0x10, 0xf4, 0x0e, 0x0c, 0x27, 0x1f, 0x7b, 0xd1, 0x42, 0xfa, 0xbd, 0xb8, 0xcb, 0xd3, 0x73, 0xb5, + 0xd6, 0xcb, 0x44, 0x56, 0x90, 0xef, 0xc1, 0x48, 0xfa, 0xcd, 0x05, 0x2d, 0xa6, 0x47, 0x75, 0x7d, + 0x48, 0xae, 0x5e, 0xec, 0x6d, 0x24, 0xc1, 0x57, 0xa0, 0x1c, 0x16, 0xe0, 0x68, 0x26, 0x3d, 0x22, + 0xf3, 0x90, 0x50, 0x9d, 0xcd, 0xeb, 0x96, 0x50, 0xcd, 0xb0, 0x04, 0x4c, 0xd6, 0xc1, 0xe8, 0x4a, + 0x76, 0x54, 0x4e, 0x95, 0x5e, 0xad, 0x1f, 0x6e, 0x18, 0x6b, 0x0e, 0x0b, 0xd0, 0xac, 0xe6, 0x4c, + 0xd5, 0x9c, 0xd5, 0x9c, 0xad, 0x5b, 0x91, 0x06, 0x43, 0x89, 0xea, 0x0c, 0xcd, 0x77, 0xd3, 0x90, + 0x02, 0x5c, 0xe8, 0x61, 0x21, 0x31, 0x4d, 0x38, 0xd7, 0x51, 0xf7, 0xa1, 0xcb, 0x99, 0xd5, 0xc8, + 0x29, 0x3a, 0xab, 0x57, 0x0e, 0xb5, 0x93, 0x2c, 0x3f, 0x82, 0xb3, 0xa9, 0x8b, 0x34, 0xca, 0x84, + 0x52, 0xb7, 0xdb, 0x7d, 0x75, 0xb1, 0xa7, 0x8d, 0x44, 0xfe, 0x09, 0x2b, 0x95, 0x3b, 0x2e, 0xea, + 0xa8, 0x63, 0x7d, 0xf2, 0x6a, 0x88, 0xea, 0xd5, 0x23, 0x58, 0x26, 0xb9, 0x3a, 0x6a, 0x15, 0xd4, + 0x35, 0x16, 0x8e, 0xc6, 0x95, 0x5b, 0xf8, 0xa0, 0x8f, 0xd3, 0xf5, 0x78, 0x9a, 0x71, 0x29, 0xdf, + 0xef, 0x5d, 0x79, 0x1b, 0x47, 0xb6, 0x97, 0xec, 0x0f, 0x61, 0x30, 0x2a, 0x20, 0x50, 0x26, 0x2c, + 0xb3, 0x75, 0x4f, 0x75, 0x2e, 0xb7, 0x3f, 0xf6, 0x5b, 0x97, 0xe2, 0x20, 0xeb, 0xb7, 0xfc, 0xe2, + 0x24, 0xeb, 0xb7, 0x1e, 0x95, 0x06, 0x3a, 0x00, 0x35, 0xaf, 0x0e, 0x40, 0xd7, 0xbb, 0xb9, 0x3f, + 0xb7, 0x22, 0xa9, 0x2e, 0x1d, 0xd5, 0x3c, 0x9e, 0x66, 0x97, 0xe7, 0xce, 0xec, 0x34, 0xf3, 0x9f, + 0x68, 0xb3, 0xd3, 0xec, 0xf1, 0x76, 0x8a, 0x1c, 0x18, 0xeb, 0xf6, 0x18, 0x8c, 0xba, 0x42, 0x74, + 0x7d, 0xc8, 0xae, 0x5e, 0x3b, 0x8a, 0x69, 0x4c, 0xd7, 0xed, 0x9e, 0x8a, 0xba, 0x2d, 0x4c, 0xf7, + 0x6b, 0x6a, 0x96, 0xae, 0xd7, 0xb5, 0x97, 0x05, 0x7f, 0xee, 0x9d, 0x14, 0xe5, 0x2e, 0x4b, 0x0e, + 0x71, 0xe3, 0xc8, 0xf6, 0x92, 0xfd, 0x67, 0x50, 0xcd, 0xaf, 0xe0, 0x50, 0x06, 0xee, 0xd0, 0x82, + 0xb2, 0x7a, 0xe3, 0xe8, 0x03, 0xa4, 0x80, 0x67, 0x0a, 0x4c, 0xf5, 0xa8, 0xdb, 0x50, 0x06, 0xf1, + 0xf0, 0x42, 0xb2, 0xfa, 0xf2, 0x31, 0x46, 0x24, 0x44, 0xf4, 0xa8, 0xd7, 0x50, 0xfe, 0xb4, 0x72, + 0x6e, 0x41, 0x59, 0x11, 0x47, 0x28, 0x06, 0xd1, 0x27, 0x0a, 0x4c, 0xf7, 0x2a, 0xd3, 0x50, 0x8f, + 0x89, 0xe5, 0xc9, 0xb8, 0x79, 0x9c, 0x21, 0x71, 0x48, 0xe4, 0xd7, 0x26, 0xd9, 0x90, 0x38, 0xb4, + 0x52, 0xca, 0x86, 0xc4, 0xe1, 0x65, 0x0f, 0xfa, 0xb5, 0x92, 0x7c, 0x41, 0xe9, 0x2e, 0xe3, 0x76, + 0x5e, 0xa0, 0xf7, 0xd4, 0xf2, 0xca, 0x31, 0x47, 0xc5, 0x5b, 0x34, 0xb7, 0xea, 0xc8, 0x6e, 0xd1, + 0xc3, 0x8a, 0xa3, 0x6a, 0xe3, 0xc8, 0xf6, 0x92, 0xfd, 0x57, 0x0a, 0xcc, 0xf6, 0xae, 0x25, 0xd0, + 0xad, 0x9e, 0xf3, 0xca, 0x11, 0x72, 0xfb, 0x78, 0x83, 0xba, 0x45, 0x47, 0x47, 0x88, 0xe6, 0x4e, + 0x2e, 0x2f, 0x40, 0x6f, 0x1c, 0x7d, 0x40, 0x7e, 0x74, 0x74, 0xc8, 0xe8, 0x3d, 0xb5, 0x3c, 0x2d, + 0xaf, 0x1c, 0x73, 0x94, 0x10, 0x54, 0x3d, 0xf3, 0xf3, 0xaf, 0x3f, 0xbd, 0xa6, 0xdc, 0xd3, 0x3e, + 0xfb, 0x72, 0x56, 0xf9, 0xfc, 0xcb, 0x59, 0xe5, 0x3f, 0x5f, 0xce, 0x2a, 0xbf, 0xfd, 0x6a, 0xf6, + 0xd4, 0xe7, 0x5f, 0xcd, 0x9e, 0xfa, 0xd7, 0x57, 0xb3, 0xa7, 0x9e, 0xbe, 0x76, 0xc4, 0x9f, 0xad, + 0xf7, 0x1b, 0xf1, 0xdf, 0x0c, 0x05, 0x07, 0x2d, 0xe2, 0x6f, 0xf6, 0xf3, 0x3f, 0x0d, 0xba, 0xf5, + 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf4, 0xc4, 0xd6, 0xa1, 0xd5, 0x34, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4301,12 +4299,12 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.NewParticipantScoreInitializationKappa) > 0 { - for iNdEx := len(m.NewParticipantScoreInitializationKappa) - 1; iNdEx >= 0; iNdEx-- { + if len(m.SortitionLambdaPenalty) > 0 { + for iNdEx := len(m.SortitionLambdaPenalty) - 1; iNdEx >= 0; iNdEx-- { { - size := m.NewParticipantScoreInitializationKappa[iNdEx].Size() + size := m.SortitionLambdaPenalty[iNdEx].Size() i -= size - if _, err := m.NewParticipantScoreInitializationKappa[iNdEx].MarshalTo(dAtA[i:]); err != nil { + if _, err := m.SortitionLambdaPenalty[iNdEx].MarshalTo(dAtA[i:]); err != nil { return 0, err } i = encodeVarintTx(dAtA, i, uint64(size)) @@ -7423,8 +7421,8 @@ func (m *OptionalParams) Size() (n int) { n += 2 + l + sovTx(uint64(l)) } } - if len(m.NewParticipantScoreInitializationKappa) > 0 { - for _, e := range m.NewParticipantScoreInitializationKappa { + if len(m.SortitionLambdaPenalty) > 0 { + for _, e := range m.SortitionLambdaPenalty { l = e.Size() n += 2 + l + sovTx(uint64(l)) } @@ -10840,7 +10838,7 @@ func (m *OptionalParams) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 55: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NewParticipantScoreInitializationKappa", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SortitionLambdaPenalty", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10869,8 +10867,8 @@ func (m *OptionalParams) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } var v github_com_allora_network_allora_chain_math.Dec - m.NewParticipantScoreInitializationKappa = append(m.NewParticipantScoreInitializationKappa, v) - if err := m.NewParticipantScoreInitializationKappa[len(m.NewParticipantScoreInitializationKappa)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.SortitionLambdaPenalty = append(m.SortitionLambdaPenalty, v) + if err := m.SortitionLambdaPenalty[len(m.SortitionLambdaPenalty)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex From ebb4db6734b46798be8752b367ca01bf366b2ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 12:43:03 -0300 Subject: [PATCH 07/19] Change initial EMA score implementation to use new formula --- x/emissions/keeper/keeper.go | 115 ++++----- x/emissions/keeper/keeper_test.go | 221 ++++++++++++------ .../msg_server_worker_payload_test.go | 192 +++++++-------- x/emissions/module/rewards/scores.go | 65 ++---- 4 files changed, 333 insertions(+), 260 deletions(-) diff --git a/x/emissions/keeper/keeper.go b/x/emissions/keeper/keeper.go index ec7c9eeb5..7a08b2eda 100644 --- a/x/emissions/keeper/keeper.go +++ b/x/emissions/keeper/keeper.go @@ -1280,6 +1280,24 @@ func (k *Keeper) AppendInference( return types.ErrCantUpdateEmaMoreThanOncePerWindow } + // Check if the inferer is new and set initial EMA score + if previousEmaScore.BlockHeight == 0 { + initialEmaScore, err := k.GetTopicInitialInfererEmaScore(ctx, topic.Id) + if err != nil { + return errorsmod.Wrap(err, "error getting topic initial ema score") + } + previousEmaScore = types.Score{ + TopicId: topic.Id, + Address: inference.Inferer, + BlockHeight: nonceBlockHeight, + Score: initialEmaScore, + } + err = k.SetInfererScoreEma(ctx, topic.Id, inference.Inferer, previousEmaScore) + if err != nil { + return errorsmod.Wrap(err, "error setting initial inferer score ema") + } + } + // Get lowest inferer score ema for the topic lowestEmaScore, _, err := k.GetLowestInfererScoreEma(ctx, topic.Id) if err != nil { @@ -1309,21 +1327,6 @@ func (k *Keeper) AppendInference( return k.InsertInference(ctx, topic.Id, *inference) } - // Check if the inferer is new - // If new, set his score to the topic initial EMA score - if previousEmaScore.BlockHeight == 0 { - initialEmaScore, err := k.GetTopicInitialInfererEmaScore(ctx, topic.Id) - if err != nil { - return errorsmod.Wrap(err, "error getting topic initial ema score") - } - return k.SetInfererScoreEma(ctx, topic.Id, inference.Inferer, types.Score{ - TopicId: topic.Id, - Address: inference.Inferer, - BlockHeight: nonceBlockHeight, - Score: initialEmaScore, - }) - } - // Else ... // Checks if the inferer's previous EMA score is greater than the lowest EMA score if previousEmaScore.Score.Gt(lowestEmaScore.Score) { @@ -1370,9 +1373,11 @@ func (k *Keeper) AppendInference( return k.InsertInference(ctx, topic.Id, *inference) } else { // Update EMA score for the current inferer, who is the lowest score inferer - err = k.CalcAndSaveInfererScoreEmaWithLastSavedTopicQuantile(ctx, topic, nonceBlockHeight, previousEmaScore) - if err != nil { - return errorsmod.Wrap(err, "error calculating and saving inferer score ema with last saved topic quantile") + if previousEmaScore.BlockHeight != 0 { // Only update if not a new inferer + err = k.CalcAndSaveInfererScoreEmaWithLastSavedTopicQuantile(ctx, topic, nonceBlockHeight, previousEmaScore) + if err != nil { + return errorsmod.Wrap(err, "error calculating and saving inferer score ema with last saved topic quantile") + } } } return nil @@ -1441,6 +1446,20 @@ func (k *Keeper) AppendForecast( return types.ErrCantUpdateEmaMoreThanOncePerWindow } + // Check if the forecaster is new and set initial EMA score + if previousEmaScore.BlockHeight == 0 { + initialEmaScore, err := k.GetTopicInitialForecasterEmaScore(ctx, topic.Id) + if err != nil { + return errorsmod.Wrap(err, "error getting topic initial ema score") + } + return k.SetForecasterScoreEma(ctx, topic.Id, forecast.Forecaster, types.Score{ + TopicId: topic.Id, + Address: forecast.Forecaster, + BlockHeight: nonceBlockHeight, + Score: initialEmaScore, + }) + } + lowestEmaScore, _, err := k.GetLowestForecasterScoreEma(ctx, topic.Id) if err != nil { return errorsmod.Wrap(err, "error getting lowest forecaster score ema") @@ -1467,21 +1486,6 @@ func (k *Keeper) AppendForecast( return k.InsertForecast(ctx, topic.Id, *forecast) } - // Check if the forecaster is new - // If new, set his score to the topic initial EMA score - if previousEmaScore.BlockHeight == 0 { - initialEmaScore, err := k.GetTopicInitialForecasterEmaScore(ctx, topic.Id) - if err != nil { - return errorsmod.Wrap(err, "error getting topic initial ema score") - } - return k.SetForecasterScoreEma(ctx, topic.Id, forecast.Forecaster, types.Score{ - TopicId: topic.Id, - Address: forecast.Forecaster, - BlockHeight: nonceBlockHeight, - Score: initialEmaScore, - }) - } - if previousEmaScore.Score.Gt(lowestEmaScore.Score) { // Update EMA score for the lowest score forecaster, who is not the current forecaster err = k.CalcAndSaveForecasterScoreEmaWithLastSavedTopicQuantile( @@ -1526,9 +1530,11 @@ func (k *Keeper) AppendForecast( return k.InsertForecast(ctx, topic.Id, *forecast) } else { // Update EMA score for the current forecaster, who is the lowest score forecaster - err = k.CalcAndSaveForecasterScoreEmaWithLastSavedTopicQuantile(ctx, topic, nonceBlockHeight, previousEmaScore) - if err != nil { - return errorsmod.Wrap(err, "error calculating and saving forecaster score ema with last saved topic quantile") + if previousEmaScore.BlockHeight != 0 { + err = k.CalcAndSaveForecasterScoreEmaWithLastSavedTopicQuantile(ctx, topic, nonceBlockHeight, previousEmaScore) + if err != nil { + return errorsmod.Wrap(err, "error calculating and saving forecaster score ema with last saved topic quantile") + } } } return nil @@ -1650,6 +1656,20 @@ func (k *Keeper) AppendReputerLoss( return types.ErrCantUpdateEmaMoreThanOncePerWindow } + // Check if the reputer is new and set initial EMA score + if previousEmaScore.BlockHeight == 0 { + initialEmaScore, err := k.GetTopicInitialReputerEmaScore(ctx, topic.Id) + if err != nil { + return errorsmod.Wrap(err, "error getting topic initial ema score") + } + return k.SetReputerScoreEma(ctx, topic.Id, reputerLoss.ValueBundle.Reputer, types.Score{ + TopicId: topic.Id, + Address: reputerLoss.ValueBundle.Reputer, + BlockHeight: nonceBlockHeight, + Score: initialEmaScore, + }) + } + lowestEmaScore, _, err := k.GetLowestReputerScoreEma(ctx, topic.Id) if err != nil { return errorsmod.Wrap(err, "error getting lowest reputer score ema") @@ -1675,21 +1695,6 @@ func (k *Keeper) AppendReputerLoss( return k.InsertReputerLoss(ctx, topic.Id, *reputerLoss) } - // Check if the reputer is new - // If new, set his score to the topic initial EMA score - if previousEmaScore.BlockHeight == 0 { - initialEmaScore, err := k.GetTopicInitialReputerEmaScore(ctx, topic.Id) - if err != nil { - return errorsmod.Wrap(err, "error getting topic initial ema score") - } - return k.SetReputerScoreEma(ctx, topic.Id, reputerLoss.ValueBundle.Reputer, types.Score{ - TopicId: topic.Id, - Address: reputerLoss.ValueBundle.Reputer, - BlockHeight: nonceBlockHeight, - Score: initialEmaScore, - }) - } - if previousEmaScore.Score.Gt(lowestEmaScore.Score) { // Update EMA score for the lowest score reputer, who is not the current reputer err = k.CalcAndSaveReputerScoreEmaWithLastSavedTopicQuantile( @@ -1734,9 +1739,11 @@ func (k *Keeper) AppendReputerLoss( return k.InsertReputerLoss(ctx, topic.Id, *reputerLoss) } else { // Update EMA score for the current reputer, who is the lowest score reputer - err = k.CalcAndSaveReputerScoreEmaWithLastSavedTopicQuantile(ctx, topic, nonceBlockHeight, previousEmaScore) - if err != nil { - return errorsmod.Wrap(err, "error calculating and saving reputer score ema with last saved topic quantile") + if previousEmaScore.BlockHeight != 0 { + err = k.CalcAndSaveReputerScoreEmaWithLastSavedTopicQuantile(ctx, topic, nonceBlockHeight, previousEmaScore) + if err != nil { + return errorsmod.Wrap(err, "error calculating and saving reputer score ema with last saved topic quantile") + } } } return nil diff --git a/x/emissions/keeper/keeper_test.go b/x/emissions/keeper/keeper_test.go index e4c1eea5c..373ea057a 100644 --- a/x/emissions/keeper/keeper_test.go +++ b/x/emissions/keeper/keeper_test.go @@ -3938,55 +3938,55 @@ func (s *KeeperTestSuite) TestAppendInferenceWithResetActiveWorkers() { func mockUninitializedParams() types.Params { return types.Params{ - Version: "v2", - MinTopicWeight: alloraMath.MustNewDecFromString("0"), - RequiredMinimumStake: cosmosMath.NewInt(0), - RemoveStakeDelayWindow: 0, - MinEpochLength: 1, - BetaEntropy: alloraMath.MustNewDecFromString("0"), - LearningRate: alloraMath.MustNewDecFromString("0.0001"), - GradientDescentMaxIters: uint64(100), - MaxGradientThreshold: alloraMath.MustNewDecFromString("0.0001"), - MinStakeFraction: alloraMath.MustNewDecFromString("0"), - EpsilonReputer: alloraMath.MustNewDecFromString("0.0001"), - EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0001"), - MaxUnfulfilledWorkerRequests: uint64(0), - MaxUnfulfilledReputerRequests: uint64(0), - TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0"), - TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0"), - TopicRewardAlpha: alloraMath.MustNewDecFromString("0.1"), - TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), - ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0"), - MaxSamplesToScaleScores: uint64(10), - MaxTopInferersToReward: uint64(0), - MaxTopForecastersToReward: uint64(0), - MaxTopReputersToReward: uint64(0), - CreateTopicFee: cosmosMath.NewInt(0), - RegistrationFee: cosmosMath.NewInt(0), - DefaultPageLimit: uint64(0), - MaxPageLimit: uint64(0), - MinEpochLengthRecordLimit: int64(0), - MaxSerializedMsgLength: int64(0), - BlocksPerMonth: uint64(864000), - PRewardInference: alloraMath.NewDecFromInt64(1), - PRewardForecast: alloraMath.NewDecFromInt64(1), - PRewardReputer: alloraMath.NewDecFromInt64(1), - CRewardInference: alloraMath.MustNewDecFromString("0.1"), - CRewardForecast: alloraMath.MustNewDecFromString("0.1"), - CNorm: alloraMath.MustNewDecFromString("0.1"), - HalfMaxProcessStakeRemovalsEndBlock: uint64(1), - DataSendingFee: cosmosMath.NewInt(0), - MaxElementsPerForecast: uint64(0), - MaxActiveTopicsPerBlock: uint64(0), - MaxStringLength: uint64(0), - InitialRegretQuantile: alloraMath.ZeroDec(), - PNormSafeDiv: alloraMath.ZeroDec(), - GlobalWhitelistEnabled: true, - TopicCreatorWhitelistEnabled: true, - MinExperiencedWorkerRegrets: uint64(10), - InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), - InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), - NewParticipantScoreInitializationKappa: alloraMath.MustNewDecFromString("0.1"), + Version: "v2", + MinTopicWeight: alloraMath.MustNewDecFromString("0"), + RequiredMinimumStake: cosmosMath.NewInt(0), + RemoveStakeDelayWindow: 0, + MinEpochLength: 1, + BetaEntropy: alloraMath.MustNewDecFromString("0"), + LearningRate: alloraMath.MustNewDecFromString("0.0001"), + GradientDescentMaxIters: uint64(100), + MaxGradientThreshold: alloraMath.MustNewDecFromString("0.0001"), + MinStakeFraction: alloraMath.MustNewDecFromString("0"), + EpsilonReputer: alloraMath.MustNewDecFromString("0.0001"), + EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0001"), + MaxUnfulfilledWorkerRequests: uint64(0), + MaxUnfulfilledReputerRequests: uint64(0), + TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0"), + TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0"), + TopicRewardAlpha: alloraMath.MustNewDecFromString("0.1"), + TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), + ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0"), + MaxSamplesToScaleScores: uint64(10), + MaxTopInferersToReward: uint64(0), + MaxTopForecastersToReward: uint64(0), + MaxTopReputersToReward: uint64(0), + CreateTopicFee: cosmosMath.NewInt(0), + RegistrationFee: cosmosMath.NewInt(0), + DefaultPageLimit: uint64(0), + MaxPageLimit: uint64(0), + MinEpochLengthRecordLimit: int64(0), + MaxSerializedMsgLength: int64(0), + BlocksPerMonth: uint64(864000), + PRewardInference: alloraMath.NewDecFromInt64(1), + PRewardForecast: alloraMath.NewDecFromInt64(1), + PRewardReputer: alloraMath.NewDecFromInt64(1), + CRewardInference: alloraMath.MustNewDecFromString("0.1"), + CRewardForecast: alloraMath.MustNewDecFromString("0.1"), + CNorm: alloraMath.MustNewDecFromString("0.1"), + HalfMaxProcessStakeRemovalsEndBlock: uint64(1), + DataSendingFee: cosmosMath.NewInt(0), + MaxElementsPerForecast: uint64(0), + MaxActiveTopicsPerBlock: uint64(0), + MaxStringLength: uint64(0), + InitialRegretQuantile: alloraMath.ZeroDec(), + PNormSafeDiv: alloraMath.ZeroDec(), + GlobalWhitelistEnabled: true, + TopicCreatorWhitelistEnabled: true, + MinExperiencedWorkerRegrets: uint64(10), + InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), + InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), + SortitionLambdaPenalty: alloraMath.MustNewDecFromString("0.1"), } } @@ -5225,41 +5225,124 @@ func (s *KeeperTestSuite) TestFilterOutlierResistantInferences() { } } -func (s *KeeperTestSuite) TestInitialEmaScores() { +func (s *KeeperTestSuite) TestInitialEmaScoreSettingInAppendInference() { ctx := s.ctx k := s.emissionsKeeper topicId := s.CreateOneTopic(10800) + worker := s.addrsStr[0] + blockHeight := int64(10) + + // Set initial EMA score for the topic + initialScore := alloraMath.MustNewDecFromString("95.5") + err := k.SetTopicInitialInfererEmaScore(ctx, topicId, initialScore) + s.Require().NoError(err) + + // Create and append a new inference + inference := &types.Inference{ + TopicId: topicId, + BlockHeight: blockHeight, + Value: alloraMath.MustNewDecFromString("0.52"), + Inferer: worker, + } - // Test Inferer Initial EMA Score - infererScore := alloraMath.MustNewDecFromString("100.0") - err := k.SetTopicInitialInfererEmaScore(ctx, topicId, infererScore) + topic, err := k.GetTopic(ctx, topicId) s.Require().NoError(err) - retrievedInfererScore, err := k.GetTopicInitialInfererEmaScore(ctx, topicId) + // Append the inference + err = k.AppendInference(ctx, topic, blockHeight, inference, 4) s.Require().NoError(err) - s.Require().True(infererScore.Equal(retrievedInfererScore)) - // Test Forecaster Initial EMA Score - forecasterScore := alloraMath.MustNewDecFromString("90.0") - err = k.SetTopicInitialForecasterEmaScore(ctx, topicId, forecasterScore) + // Verify the worker received the initial EMA score + score, err := k.GetInfererScoreEma(ctx, topicId, worker) s.Require().NoError(err) + s.Require().Equal(initialScore, score.Score) + s.Require().Equal(blockHeight, score.BlockHeight) + s.Require().Equal(worker, score.Address) + s.Require().Equal(topicId, score.TopicId) +} - retrievedForecasterScore, err := k.GetTopicInitialForecasterEmaScore(ctx, topicId) +func (s *KeeperTestSuite) TestInitialEmaScoreSettingInAppendForecast() { + ctx := s.ctx + k := s.emissionsKeeper + topicId := s.CreateOneTopic(10800) + worker := s.addrsStr[0] + blockHeight := int64(10) + + // Set initial EMA score for the topic + initialScore := alloraMath.MustNewDecFromString("92.5") + err := k.SetTopicInitialForecasterEmaScore(ctx, topicId, initialScore) + s.Require().NoError(err) + + // Create and append a new forecast + forecast := &types.Forecast{ + TopicId: topicId, + BlockHeight: blockHeight, + Forecaster: worker, + ForecastElements: []*types.ForecastElement{ + { + Inferer: s.addrsStr[1], + Value: alloraMath.MustNewDecFromString("0.52"), + }, + }, + } + + topic, err := k.GetTopic(ctx, topicId) s.Require().NoError(err) - s.Require().True(forecasterScore.Equal(retrievedForecasterScore)) - // Test Reputer Initial EMA Score - reputerScore := alloraMath.MustNewDecFromString("95.0") - err = k.SetTopicInitialReputerEmaScore(ctx, topicId, reputerScore) + // Append the forecast + err = k.AppendForecast(ctx, topic, blockHeight, forecast, 4) s.Require().NoError(err) - retrievedReputerScore, err := k.GetTopicInitialReputerEmaScore(ctx, topicId) + // Verify the worker received the initial EMA score + score, err := k.GetForecasterScoreEma(ctx, topicId, worker) + s.Require().NoError(err) + s.Require().Equal(initialScore, score.Score) + s.Require().Equal(blockHeight, score.BlockHeight) + s.Require().Equal(worker, score.Address) + s.Require().Equal(topicId, score.TopicId) +} + +func (s *KeeperTestSuite) TestInitialEmaScoreSettingInAppendReputer() { + ctx := s.ctx + k := s.emissionsKeeper + topicId := s.CreateOneTopic(10800) + reputer := s.addrsStr[0] + blockHeight := int64(10) + + // Set initial EMA score for the topic + initialScore := alloraMath.MustNewDecFromString("97.5") + err := k.SetTopicInitialReputerEmaScore(ctx, topicId, initialScore) + s.Require().NoError(err) + + // Create and append a new reputer value bundle + valueBundle := &types.ValueBundle{ + TopicId: topicId, + ReputerRequestNonce: &types.ReputerRequestNonce{ + ReputerNonce: &types.Nonce{BlockHeight: blockHeight}, + }, + Reputer: reputer, + CombinedValue: alloraMath.MustNewDecFromString("0.52"), + } + signature := s.signValueBundle(valueBundle, s.privKeys[0]) + reputerValueBundle := &types.ReputerValueBundle{ + ValueBundle: valueBundle, + Signature: signature, + Pubkey: s.pubKeyHexStr[0], + } + + topic, err := k.GetTopic(ctx, topicId) + s.Require().NoError(err) + + params := types.DefaultParams() + // Append the reputer value bundle + err = k.AppendReputerLoss(ctx, topic, params, blockHeight, reputerValueBundle) s.Require().NoError(err) - s.Require().True(reputerScore.Equal(retrievedReputerScore)) - // Test Non-existent Topic - nonExistentTopicId := topicId + 1 - zeroScore, err := k.GetTopicInitialInfererEmaScore(ctx, nonExistentTopicId) + // Verify the reputer received the initial EMA score + score, err := k.GetReputerScoreEma(ctx, topicId, reputer) s.Require().NoError(err) - s.Require().True(zeroScore.IsZero()) + s.Require().Equal(initialScore, score.Score) + s.Require().Equal(blockHeight, score.BlockHeight) + s.Require().Equal(reputer, score.Address) + s.Require().Equal(topicId, score.TopicId) } diff --git a/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go b/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go index b735aa569..d8221f75d 100644 --- a/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go +++ b/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go @@ -319,54 +319,54 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithFewTopElementsPerFore newParams := &types.OptionalParams{ MaxElementsPerForecast: []uint64{3}, // not updated - Version: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - MinEpochLength: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - MaxTopReputersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - EpsilonReputer: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, - NewParticipantScoreInitializationKappa: nil, + Version: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + MinEpochLength: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + MaxTopReputersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + EpsilonReputer: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + SortitionLambdaPenalty: nil, } updateMsg := &types.UpdateParamsRequest{ @@ -722,54 +722,54 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithLowScoreForecastsAreR newParams := &types.OptionalParams{ MaxElementsPerForecast: []uint64{3}, // not updated - Version: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - MinEpochLength: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - MaxTopReputersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - EpsilonReputer: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, - NewParticipantScoreInitializationKappa: nil, + Version: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + MinEpochLength: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + MaxTopReputersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + EpsilonReputer: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + SortitionLambdaPenalty: nil, } updateMsg := &types.UpdateParamsRequest{ diff --git a/x/emissions/module/rewards/scores.go b/x/emissions/module/rewards/scores.go index 6ff49e633..282952571 100644 --- a/x/emissions/module/rewards/scores.go +++ b/x/emissions/module/rewards/scores.go @@ -124,8 +124,6 @@ func GenerateReputerScores( var instantScores []types.Score var emaScores []types.Score activeArr := make(map[string]bool) - var lowestEmaScore types.Score - first := true for i, reputer := range reputers { err := keeper.SetListeningCoefficient( ctx, @@ -153,12 +151,6 @@ func GenerateReputerScores( return []types.Score{}, errors.Wrapf(err, "Error calculating and saving reputer score ema") } - // Track lowest EMA score - if first || emaScore.Score.Lt(lowestEmaScore.Score) { - lowestEmaScore = emaScore - first = false - } - activeArr[reputer] = true instantScores = append(instantScores, instantScore) emaScores = append(emaScores, emaScore) @@ -175,7 +167,7 @@ func GenerateReputerScores( } // Calculate initial EMA score - initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, lowestEmaScore, topicInstantScoreQuantile) + initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, emaScores) if err != nil { return nil, errors.Wrapf(err, "Error calculating initial EMA score") } @@ -225,8 +217,6 @@ func GenerateInferenceScores( return []types.Score{}, errors.Wrapf(err, "Error getting topic") } - var lowestEmaScore types.Score - first := true for _, oneOutLoss := range networkLosses.OneOutInfererValues { workerNewScore, err := oneOutLoss.Value.Sub(networkLosses.CombinedValue) if err != nil { @@ -249,12 +239,6 @@ func GenerateInferenceScores( return []types.Score{}, errors.Wrapf(err, "Error calculating and saving inferer score ema") } - // Track lowest EMA score - if first || emaScore.Score.Lt(lowestEmaScore.Score) { - lowestEmaScore = emaScore - first = false - } - activeArr[oneOutLoss.Worker] = true instantScores = append(instantScores, instantScore) emaScores = append(emaScores, emaScore) @@ -271,7 +255,7 @@ func GenerateInferenceScores( } // Calculate initial EMA score - initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, lowestEmaScore, topicInstantScoreQuantile) + initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, emaScores) if err != nil { return nil, errors.Wrapf(err, "Error calculating initial EMA score") } @@ -338,8 +322,6 @@ func GenerateForecastScores( return []types.Score{}, errors.Wrapf(err, "Error getting fUniqueAgg") } - var lowestEmaScore types.Score - first := true for i, oneInNaiveLoss := range networkLosses.OneInForecasterValues { // Get worker score for one in loss workerScoreOneIn, err := networkLosses.NaiveValue.Sub(oneInNaiveLoss.Value) @@ -369,12 +351,6 @@ func GenerateForecastScores( return []types.Score{}, errors.Wrapf(err, "Error calculating and saving forecaster score ema") } - // Track lowest EMA score - if first || emaScore.Score.Lt(lowestEmaScore.Score) { - lowestEmaScore = emaScore - first = false - } - activeArr[oneInNaiveLoss.Worker] = true instantScores = append(instantScores, instantScore) emaScores = append(emaScores, emaScore) @@ -391,7 +367,7 @@ func GenerateForecastScores( } // Calculate initial EMA score - initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, lowestEmaScore, topicInstantScoreQuantile) + initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, emaScores) if err != nil { return nil, errors.Wrapf(err, "Error calculating initial EMA score") } @@ -547,34 +523,41 @@ func EnsureAllWorkersPresentWithheld( return values } -// CalculateTopicInitialEmaScore calculates the initial EMA score for a topic +// CalculateTopicInitialEmaScore calculates the initial EMA score for new participants in the next epoch +// using the current active set statistics. The initial score is set below the active set threshold +// by using the formula: lowestEmaScore - lambda * standardDeviationOfEmaScores func CalculateTopicInitialEmaScore( ctx context.Context, keeper keeper.Keeper, - lowestScore types.Score, - last25thPercentile alloraMath.Dec, + activeScores []types.Score, ) (alloraMath.Dec, error) { - // Get kappa parameter from module params + // Get lambda parameter from module params params, err := keeper.GetParams(ctx) if err != nil { return alloraMath.Dec{}, errors.Wrapf(err, "error getting module params") } - kappa := params.NewParticipantScoreInitializationKappa + lambda := params.SortitionLambdaPenalty - // Calculate initial score using formula: (1+kappa)*lowestScore-kappa*last25thPercentile - onePlusKappa, err := alloraMath.NewDecFromInt64(1).Add(kappa) - if err != nil { - return alloraMath.Dec{}, errors.Wrapf(err, "error creating 1+kappa") + // Calculate standard deviation of EMA scores in active set + var emaScores []alloraMath.Dec + lowestScore := activeScores[0] + for _, score := range activeScores { + emaScores = append(emaScores, score.Score) + if score.Score.Lt(lowestScore.Score) { + lowestScore = score + } } - lowestScoreMul, err := lowestScore.Score.Mul(onePlusKappa) + stdDev, err := alloraMath.StdDev(emaScores) if err != nil { - return alloraMath.Dec{}, errors.Wrapf(err, "error multiplying lowest score by 1+kappa") + return alloraMath.Dec{}, errors.Wrapf(err, "error calculating standard deviation of EMA scores") } - last25thPercentileMul, err := last25thPercentile.Mul(kappa) + + // Calculate initial score using formula: lowestEmaScore - lambda * standardDeviationOfEmaScores + lambdaStdDev, err := lambda.Mul(stdDev) if err != nil { - return alloraMath.Dec{}, errors.Wrapf(err, "error multiplying last 25th percentile by kappa") + return alloraMath.Dec{}, errors.Wrapf(err, "error multiplying lambda by standard deviation") } - initialScore, err := lowestScoreMul.Sub(last25thPercentileMul) + initialScore, err := lowestScore.Score.Sub(lambdaStdDev) if err != nil { return alloraMath.Dec{}, errors.Wrapf(err, "error calculating initial score") } From da714d3abe3ce944d2ff72e96c22691341664853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 13:11:59 -0300 Subject: [PATCH 08/19] Add default params and validation --- x/emissions/types/params.go | 110 +++++++++++++++++-------------- x/emissions/types/params_test.go | 98 +++++++++++++-------------- 2 files changed, 110 insertions(+), 98 deletions(-) diff --git a/x/emissions/types/params.go b/x/emissions/types/params.go index 6b6998855..46b617ed4 100644 --- a/x/emissions/types/params.go +++ b/x/emissions/types/params.go @@ -12,55 +12,55 @@ import ( // DefaultParams returns default module parameters. func DefaultParams() Params { return Params{ - Version: "v2", // version of the protocol should be in lockstep with github release tag version - MinTopicWeight: alloraMath.MustNewDecFromString("100"), // total weight for a topic < this => don't run inference solicatation or loss update - RequiredMinimumStake: cosmosMath.NewInt(10000), // minimum stake required to be a worker or reputer - RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), // ~approx 3 weeks assuming 3 second block time, number of blocks to wait before finalizing a stake withdrawal - MinEpochLength: 12, // shortest number of blocks per epoch topics are allowed to set as their cadence - BetaEntropy: alloraMath.MustNewDecFromString("0.25"), // controls resilience of reward payouts against copycat workers - LearningRate: alloraMath.MustNewDecFromString("0.05"), // speed of gradient descent - GradientDescentMaxIters: uint64(10), // max iterations on gradient descent - MaxGradientThreshold: alloraMath.MustNewDecFromString("0.001"), // gradient descent stops when gradient falls below this - MinStakeFraction: alloraMath.MustNewDecFromString("0.5"), // minimum fraction of stake that should be listened to when setting consensus listening coefficients - EpsilonReputer: alloraMath.MustNewDecFromString("0.01"), // a small tolerance quantity used to cap reputer scores at infinitesimally close proximities - EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0000001"), // a small tolerance quantity used to cap division by zero - MaxUnfulfilledWorkerRequests: uint64(100), // maximum number of outstanding nonces for worker requests per topic from the chain; needs to be bigger to account for varying topic ground truth lag - MaxUnfulfilledReputerRequests: uint64(100), // maximum number of outstanding nonces for reputer requests per topic from the chain; needs to be bigger to account for varying topic ground truth lag - TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0.5"), // importance of stake in determining rewards for a topic - TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0.5"), // importance of fee revenue in determining rewards for a topic - TopicRewardAlpha: alloraMath.MustNewDecFromString("0.5"), // alpha for topic reward calculation; coupled with blocktime, or how often rewards are calculated - TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), // alpha for task reward calculation used to calculate ~U_ij, ~V_ik, ~W_im - ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0.25"), // 25% rewards go to cosmos network validators - MaxSamplesToScaleScores: uint64(10), // maximum number of previous scores to store and use for standard deviation calculation - MaxTopInferersToReward: uint64(32), // max this many top inferers by score are rewarded for a topic - MaxTopForecastersToReward: uint64(6), // max this many top forecasters by score are rewarded for a topic - MaxTopReputersToReward: uint64(6), // max this many top reputers by score are rewarded for a topic - CreateTopicFee: cosmosMath.NewInt(75000), // topic registration fee - RegistrationFee: cosmosMath.NewInt(200), // how much workers and reputers must pay to register per topic - DefaultPageLimit: uint64(100), // how many topics to return per page during churn of requests - MaxPageLimit: uint64(1000), // max limit for pagination - MinEpochLengthRecordLimit: int64(3), // minimum number of epochs to keep records for a topic - MaxSerializedMsgLength: int64(1000 * 1000), // maximum size of data to msg and query server in bytes - BlocksPerMonth: uint64(864000), // ~3 seconds block time, assuming 30 days in a month 60 * 60 * 24 * 30 / 3 - PRewardInference: alloraMath.NewDecFromInt64(3), // fiducial value for rewards calculation - PRewardForecast: alloraMath.NewDecFromInt64(3), // fiducial value for rewards calculation - PRewardReputer: alloraMath.NewDecFromInt64(1), // fiducial value for rewards calculation - CRewardInference: alloraMath.MustNewDecFromString("0.75"), // fiducial value for rewards calculation - CRewardForecast: alloraMath.MustNewDecFromString("0.75"), // fiducial value for rewards calculation - CNorm: alloraMath.MustNewDecFromString("0.75"), // fiducial value for inference synthesis - HalfMaxProcessStakeRemovalsEndBlock: uint64(40), // half of the max number of stake removals to process at the end of the block, set this too big and blocks require too much time to process, slowing down consensus - DataSendingFee: cosmosMath.NewInt(10), // how much workers and reputers must pay to send payload - MaxElementsPerForecast: uint64(12), // top forecast elements by score - MaxActiveTopicsPerBlock: uint64(1), // maximum number of active topics per block - MaxStringLength: uint64(255), // maximum length of strings uploaded to the chain - InitialRegretQuantile: alloraMath.MustNewDecFromString("0.25"), // quantile value for getting initial regret during network regret calculation - PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), // pnorm divide value to calculate offset with cnorm - GlobalWhitelistEnabled: true, // global whitelist enabled => all global whitelisted actors can create topics and participate in all topics as workers and reputers - TopicCreatorWhitelistEnabled: true, // topic creator whitelist enabled => all topic creator whitelisted actors can create topics - MinExperiencedWorkerRegrets: uint64(10), // minimum number of experienced workers required to use their regrets for calculating the topic initial regret - InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), // threshold for inference outlier detection - InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), // alpha for inference outlier detection - NewParticipantScoreInitializationKappa: alloraMath.MustNewDecFromString("0.01"), // kappa for new participant score initialization + Version: "v2", // version of the protocol should be in lockstep with github release tag version + MinTopicWeight: alloraMath.MustNewDecFromString("100"), // total weight for a topic < this => don't run inference solicatation or loss update + RequiredMinimumStake: cosmosMath.NewInt(10000), // minimum stake required to be a worker or reputer + RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), // ~approx 3 weeks assuming 3 second block time, number of blocks to wait before finalizing a stake withdrawal + MinEpochLength: 12, // shortest number of blocks per epoch topics are allowed to set as their cadence + BetaEntropy: alloraMath.MustNewDecFromString("0.25"), // controls resilience of reward payouts against copycat workers + LearningRate: alloraMath.MustNewDecFromString("0.05"), // speed of gradient descent + GradientDescentMaxIters: uint64(10), // max iterations on gradient descent + MaxGradientThreshold: alloraMath.MustNewDecFromString("0.001"), // gradient descent stops when gradient falls below this + MinStakeFraction: alloraMath.MustNewDecFromString("0.5"), // minimum fraction of stake that should be listened to when setting consensus listening coefficients + EpsilonReputer: alloraMath.MustNewDecFromString("0.01"), // a small tolerance quantity used to cap reputer scores at infinitesimally close proximities + EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0000001"), // a small tolerance quantity used to cap division by zero + MaxUnfulfilledWorkerRequests: uint64(100), // maximum number of outstanding nonces for worker requests per topic from the chain; needs to be bigger to account for varying topic ground truth lag + MaxUnfulfilledReputerRequests: uint64(100), // maximum number of outstanding nonces for reputer requests per topic from the chain; needs to be bigger to account for varying topic ground truth lag + TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0.5"), // importance of stake in determining rewards for a topic + TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0.5"), // importance of fee revenue in determining rewards for a topic + TopicRewardAlpha: alloraMath.MustNewDecFromString("0.5"), // alpha for topic reward calculation; coupled with blocktime, or how often rewards are calculated + TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), // alpha for task reward calculation used to calculate ~U_ij, ~V_ik, ~W_im + ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0.25"), // 25% rewards go to cosmos network validators + MaxSamplesToScaleScores: uint64(10), // maximum number of previous scores to store and use for standard deviation calculation + MaxTopInferersToReward: uint64(32), // max this many top inferers by score are rewarded for a topic + MaxTopForecastersToReward: uint64(6), // max this many top forecasters by score are rewarded for a topic + MaxTopReputersToReward: uint64(6), // max this many top reputers by score are rewarded for a topic + CreateTopicFee: cosmosMath.NewInt(75000), // topic registration fee + RegistrationFee: cosmosMath.NewInt(200), // how much workers and reputers must pay to register per topic + DefaultPageLimit: uint64(100), // how many topics to return per page during churn of requests + MaxPageLimit: uint64(1000), // max limit for pagination + MinEpochLengthRecordLimit: int64(3), // minimum number of epochs to keep records for a topic + MaxSerializedMsgLength: int64(1000 * 1000), // maximum size of data to msg and query server in bytes + BlocksPerMonth: uint64(864000), // ~3 seconds block time, assuming 30 days in a month 60 * 60 * 24 * 30 / 3 + PRewardInference: alloraMath.NewDecFromInt64(3), // fiducial value for rewards calculation + PRewardForecast: alloraMath.NewDecFromInt64(3), // fiducial value for rewards calculation + PRewardReputer: alloraMath.NewDecFromInt64(1), // fiducial value for rewards calculation + CRewardInference: alloraMath.MustNewDecFromString("0.75"), // fiducial value for rewards calculation + CRewardForecast: alloraMath.MustNewDecFromString("0.75"), // fiducial value for rewards calculation + CNorm: alloraMath.MustNewDecFromString("0.75"), // fiducial value for inference synthesis + HalfMaxProcessStakeRemovalsEndBlock: uint64(40), // half of the max number of stake removals to process at the end of the block, set this too big and blocks require too much time to process, slowing down consensus + DataSendingFee: cosmosMath.NewInt(10), // how much workers and reputers must pay to send payload + MaxElementsPerForecast: uint64(12), // top forecast elements by score + MaxActiveTopicsPerBlock: uint64(1), // maximum number of active topics per block + MaxStringLength: uint64(255), // maximum length of strings uploaded to the chain + InitialRegretQuantile: alloraMath.MustNewDecFromString("0.25"), // quantile value for getting initial regret during network regret calculation + PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), // pnorm divide value to calculate offset with cnorm + GlobalWhitelistEnabled: true, // global whitelist enabled => all global whitelisted actors can create topics and participate in all topics as workers and reputers + TopicCreatorWhitelistEnabled: true, // topic creator whitelist enabled => all topic creator whitelisted actors can create topics + MinExperiencedWorkerRegrets: uint64(10), // minimum number of experienced workers required to use their regrets for calculating the topic initial regret + InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), // threshold for inference outlier detection + InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), // alpha for inference outlier detection + SortitionLambdaPenalty: alloraMath.MustNewDecFromString("2"), // lambda for new participant score initialization } } @@ -204,6 +204,9 @@ func (p Params) Validate() error { if err := validateInferenceOutlierDetectionAlpha(p.InferenceOutlierDetectionAlpha); err != nil { return errorsmod.Wrap(err, "params validation failure: inference outlier detection alpha") } + if err := validateSortitionLambdaPenalty(p.SortitionLambdaPenalty); err != nil { + return errorsmod.Wrap(err, "params validation failure: sortition lambda penalty") + } return nil } @@ -638,3 +641,12 @@ func validateInferenceOutlierDetectionAlpha(i alloraMath.Dec) error { } return nil } + +func validateSortitionLambdaPenalty(i alloraMath.Dec) error { + if err := ValidateDec(i); err != nil { + return err + } else if i.IsNegative() { + return ErrValidationMustBeGreaterthanZero + } + return nil +} diff --git a/x/emissions/types/params_test.go b/x/emissions/types/params_test.go index 82d6888c8..5b83ddfff 100644 --- a/x/emissions/types/params_test.go +++ b/x/emissions/types/params_test.go @@ -10,55 +10,55 @@ import ( func TestDefaultParams(t *testing.T) { expectedParams := Params{ - Version: "v2", - MinTopicWeight: alloraMath.MustNewDecFromString("100"), - RequiredMinimumStake: cosmosMath.NewInt(10000), - RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), - MinEpochLength: 12, - BetaEntropy: alloraMath.MustNewDecFromString("0.25"), - LearningRate: alloraMath.MustNewDecFromString("0.05"), - GradientDescentMaxIters: uint64(10), - MaxGradientThreshold: alloraMath.MustNewDecFromString("0.001"), - MinStakeFraction: alloraMath.MustNewDecFromString("0.5"), - EpsilonReputer: alloraMath.MustNewDecFromString("0.01"), - EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0000001"), - MaxUnfulfilledWorkerRequests: uint64(100), - MaxUnfulfilledReputerRequests: uint64(100), - TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0.5"), - TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0.5"), - TopicRewardAlpha: alloraMath.MustNewDecFromString("0.5"), - TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), - ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0.25"), - MaxSamplesToScaleScores: uint64(10), - MaxTopInferersToReward: uint64(32), - MaxTopForecastersToReward: uint64(6), - MaxTopReputersToReward: uint64(6), - CreateTopicFee: cosmosMath.NewInt(75000), - RegistrationFee: cosmosMath.NewInt(200), - DefaultPageLimit: uint64(100), - MaxPageLimit: uint64(1000), - MinEpochLengthRecordLimit: int64(3), - MaxSerializedMsgLength: int64(1000 * 1000), - BlocksPerMonth: uint64(864000), - PRewardInference: alloraMath.NewDecFromInt64(3), - PRewardForecast: alloraMath.NewDecFromInt64(3), - PRewardReputer: alloraMath.NewDecFromInt64(1), - CRewardInference: alloraMath.MustNewDecFromString("0.75"), - CRewardForecast: alloraMath.MustNewDecFromString("0.75"), - CNorm: alloraMath.MustNewDecFromString("0.75"), - HalfMaxProcessStakeRemovalsEndBlock: uint64(40), - DataSendingFee: cosmosMath.NewInt(10), - MaxElementsPerForecast: uint64(12), - MaxActiveTopicsPerBlock: uint64(1), - MaxStringLength: uint64(255), - InitialRegretQuantile: alloraMath.MustNewDecFromString("0.25"), - PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), - GlobalWhitelistEnabled: true, - TopicCreatorWhitelistEnabled: true, - MinExperiencedWorkerRegrets: uint64(10), - InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), - InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), - NewParticipantScoreInitializationKappa: alloraMath.MustNewDecFromString("0.01"), + Version: "v2", + MinTopicWeight: alloraMath.MustNewDecFromString("100"), + RequiredMinimumStake: cosmosMath.NewInt(10000), + RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), + MinEpochLength: 12, + BetaEntropy: alloraMath.MustNewDecFromString("0.25"), + LearningRate: alloraMath.MustNewDecFromString("0.05"), + GradientDescentMaxIters: uint64(10), + MaxGradientThreshold: alloraMath.MustNewDecFromString("0.001"), + MinStakeFraction: alloraMath.MustNewDecFromString("0.5"), + EpsilonReputer: alloraMath.MustNewDecFromString("0.01"), + EpsilonSafeDiv: alloraMath.MustNewDecFromString("0.0000001"), + MaxUnfulfilledWorkerRequests: uint64(100), + MaxUnfulfilledReputerRequests: uint64(100), + TopicRewardStakeImportance: alloraMath.MustNewDecFromString("0.5"), + TopicRewardFeeRevenueImportance: alloraMath.MustNewDecFromString("0.5"), + TopicRewardAlpha: alloraMath.MustNewDecFromString("0.5"), + TaskRewardAlpha: alloraMath.MustNewDecFromString("0.1"), + ValidatorsVsAlloraPercentReward: alloraMath.MustNewDecFromString("0.25"), + MaxSamplesToScaleScores: uint64(10), + MaxTopInferersToReward: uint64(32), + MaxTopForecastersToReward: uint64(6), + MaxTopReputersToReward: uint64(6), + CreateTopicFee: cosmosMath.NewInt(75000), + RegistrationFee: cosmosMath.NewInt(200), + DefaultPageLimit: uint64(100), + MaxPageLimit: uint64(1000), + MinEpochLengthRecordLimit: int64(3), + MaxSerializedMsgLength: int64(1000 * 1000), + BlocksPerMonth: uint64(864000), + PRewardInference: alloraMath.NewDecFromInt64(3), + PRewardForecast: alloraMath.NewDecFromInt64(3), + PRewardReputer: alloraMath.NewDecFromInt64(1), + CRewardInference: alloraMath.MustNewDecFromString("0.75"), + CRewardForecast: alloraMath.MustNewDecFromString("0.75"), + CNorm: alloraMath.MustNewDecFromString("0.75"), + HalfMaxProcessStakeRemovalsEndBlock: uint64(40), + DataSendingFee: cosmosMath.NewInt(10), + MaxElementsPerForecast: uint64(12), + MaxActiveTopicsPerBlock: uint64(1), + MaxStringLength: uint64(255), + InitialRegretQuantile: alloraMath.MustNewDecFromString("0.25"), + PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), + GlobalWhitelistEnabled: true, + TopicCreatorWhitelistEnabled: true, + MinExperiencedWorkerRegrets: uint64(10), + InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), + InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), + SortitionLambdaPenalty: alloraMath.MustNewDecFromString("0.01"), } params := DefaultParams() From 5871965ca8201672094e293713ee07507ea355bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 13:14:49 -0300 Subject: [PATCH 09/19] Fix fmt --- test/integration/update_params_test.go | 284 ++++++++++++------------- 1 file changed, 142 insertions(+), 142 deletions(-) diff --git a/test/integration/update_params_test.go b/test/integration/update_params_test.go index f1b3b325c..157334e15 100644 --- a/test/integration/update_params_test.go +++ b/test/integration/update_params_test.go @@ -46,52 +46,52 @@ func UpdateParamsChecks(m testCommon.TestConfig) { MaxTopReputersToReward: []uint64{24}, MinEpochLength: []int64{1}, // don't update the following fields - Version: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + Version: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + SortitionLambdaPenalty: nil, }, } txResp, err := m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) @@ -106,54 +106,54 @@ func UpdateParamsChecks(m testCommon.TestConfig) { Params: &emissionstypes.OptionalParams{ EpsilonReputer: input, // don't update the following fields - Version: nil, - MaxTopReputersToReward: nil, - MinEpochLength: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + Version: nil, + MaxTopReputersToReward: nil, + MinEpochLength: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + SortitionLambdaPenalty: nil, }, } _, err = m.Client.BroadcastTx(ctx, m.BobAcc, updateParamRequest) @@ -172,54 +172,54 @@ func UpdateParamsChecks(m testCommon.TestConfig) { Params: &emissionstypes.OptionalParams{ EpsilonReputer: input, // don't update the following fields - Version: nil, - MaxTopReputersToReward: nil, - MinEpochLength: nil, - MaxSerializedMsgLength: nil, - MinTopicWeight: nil, - RequiredMinimumStake: nil, - RemoveStakeDelayWindow: nil, - BetaEntropy: nil, - LearningRate: nil, - MaxGradientThreshold: nil, - MinStakeFraction: nil, - MaxUnfulfilledWorkerRequests: nil, - MaxUnfulfilledReputerRequests: nil, - TopicRewardStakeImportance: nil, - TopicRewardFeeRevenueImportance: nil, - TopicRewardAlpha: nil, - TaskRewardAlpha: nil, - ValidatorsVsAlloraPercentReward: nil, - MaxSamplesToScaleScores: nil, - MaxTopInferersToReward: nil, - MaxTopForecastersToReward: nil, - CreateTopicFee: nil, - GradientDescentMaxIters: nil, - RegistrationFee: nil, - DefaultPageLimit: nil, - MaxPageLimit: nil, - MinEpochLengthRecordLimit: nil, - BlocksPerMonth: nil, - PRewardInference: nil, - PRewardForecast: nil, - PRewardReputer: nil, - CRewardInference: nil, - CRewardForecast: nil, - CNorm: nil, - HalfMaxProcessStakeRemovalsEndBlock: nil, - DataSendingFee: nil, - EpsilonSafeDiv: nil, - MaxElementsPerForecast: nil, - MaxActiveTopicsPerBlock: nil, - MaxStringLength: nil, - InitialRegretQuantile: nil, - PNormSafeDiv: nil, - GlobalWhitelistEnabled: nil, - TopicCreatorWhitelistEnabled: nil, - MinExperiencedWorkerRegrets: nil, - InferenceOutlierDetectionThreshold: nil, - InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + Version: nil, + MaxTopReputersToReward: nil, + MinEpochLength: nil, + MaxSerializedMsgLength: nil, + MinTopicWeight: nil, + RequiredMinimumStake: nil, + RemoveStakeDelayWindow: nil, + BetaEntropy: nil, + LearningRate: nil, + MaxGradientThreshold: nil, + MinStakeFraction: nil, + MaxUnfulfilledWorkerRequests: nil, + MaxUnfulfilledReputerRequests: nil, + TopicRewardStakeImportance: nil, + TopicRewardFeeRevenueImportance: nil, + TopicRewardAlpha: nil, + TaskRewardAlpha: nil, + ValidatorsVsAlloraPercentReward: nil, + MaxSamplesToScaleScores: nil, + MaxTopInferersToReward: nil, + MaxTopForecastersToReward: nil, + CreateTopicFee: nil, + GradientDescentMaxIters: nil, + RegistrationFee: nil, + DefaultPageLimit: nil, + MaxPageLimit: nil, + MinEpochLengthRecordLimit: nil, + BlocksPerMonth: nil, + PRewardInference: nil, + PRewardForecast: nil, + PRewardReputer: nil, + CRewardInference: nil, + CRewardForecast: nil, + CNorm: nil, + HalfMaxProcessStakeRemovalsEndBlock: nil, + DataSendingFee: nil, + EpsilonSafeDiv: nil, + MaxElementsPerForecast: nil, + MaxActiveTopicsPerBlock: nil, + MaxStringLength: nil, + InitialRegretQuantile: nil, + PNormSafeDiv: nil, + GlobalWhitelistEnabled: nil, + TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, + InferenceOutlierDetectionThreshold: nil, + InferenceOutlierDetectionAlpha: nil, + SortitionLambdaPenalty: nil, }, } txResp, err = m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) From 664e1231666bd4a2a4087d4998a758b0455d5248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 13:53:07 -0300 Subject: [PATCH 10/19] Fix lint --- x/emissions/keeper/keeper_test.go | 15 +++++++++++++-- x/emissions/types/params_test.go | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/x/emissions/keeper/keeper_test.go b/x/emissions/keeper/keeper_test.go index 373ea057a..28c230ad1 100644 --- a/x/emissions/keeper/keeper_test.go +++ b/x/emissions/keeper/keeper_test.go @@ -5243,6 +5243,8 @@ func (s *KeeperTestSuite) TestInitialEmaScoreSettingInAppendInference() { BlockHeight: blockHeight, Value: alloraMath.MustNewDecFromString("0.52"), Inferer: worker, + ExtraData: nil, + Proof: "", } topic, err := k.GetTopic(ctx, topicId) @@ -5284,6 +5286,7 @@ func (s *KeeperTestSuite) TestInitialEmaScoreSettingInAppendForecast() { Value: alloraMath.MustNewDecFromString("0.52"), }, }, + ExtraData: nil, } topic, err := k.GetTopic(ctx, topicId) @@ -5320,8 +5323,16 @@ func (s *KeeperTestSuite) TestInitialEmaScoreSettingInAppendReputer() { ReputerRequestNonce: &types.ReputerRequestNonce{ ReputerNonce: &types.Nonce{BlockHeight: blockHeight}, }, - Reputer: reputer, - CombinedValue: alloraMath.MustNewDecFromString("0.52"), + Reputer: reputer, + ExtraData: nil, + CombinedValue: alloraMath.MustNewDecFromString("0.52"), + InfererValues: nil, + ForecasterValues: nil, + NaiveValue: alloraMath.MustNewDecFromString("0.52"), + OneOutInfererValues: nil, + OneOutForecasterValues: nil, + OneInForecasterValues: nil, + OneOutInfererForecasterValues: nil, } signature := s.signValueBundle(valueBundle, s.privKeys[0]) reputerValueBundle := &types.ReputerValueBundle{ diff --git a/x/emissions/types/params_test.go b/x/emissions/types/params_test.go index 5b83ddfff..d1ca847d8 100644 --- a/x/emissions/types/params_test.go +++ b/x/emissions/types/params_test.go @@ -10,7 +10,7 @@ import ( func TestDefaultParams(t *testing.T) { expectedParams := Params{ - Version: "v2", + Version: "v7", MinTopicWeight: alloraMath.MustNewDecFromString("100"), RequiredMinimumStake: cosmosMath.NewInt(10000), RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), From 6a6a59fac27a307410a1f99e34df1507af24f620 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 15:07:25 -0300 Subject: [PATCH 11/19] Fix tests --- x/emissions/keeper/keeper.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/x/emissions/keeper/keeper.go b/x/emissions/keeper/keeper.go index 7a08b2eda..5b1d9692e 100644 --- a/x/emissions/keeper/keeper.go +++ b/x/emissions/keeper/keeper.go @@ -1452,12 +1452,15 @@ func (k *Keeper) AppendForecast( if err != nil { return errorsmod.Wrap(err, "error getting topic initial ema score") } - return k.SetForecasterScoreEma(ctx, topic.Id, forecast.Forecaster, types.Score{ + err = k.SetForecasterScoreEma(ctx, topic.Id, forecast.Forecaster, types.Score{ TopicId: topic.Id, Address: forecast.Forecaster, BlockHeight: nonceBlockHeight, Score: initialEmaScore, }) + if err != nil { + return errorsmod.Wrap(err, "error setting forecaster score ema") + } } lowestEmaScore, _, err := k.GetLowestForecasterScoreEma(ctx, topic.Id) @@ -1662,12 +1665,15 @@ func (k *Keeper) AppendReputerLoss( if err != nil { return errorsmod.Wrap(err, "error getting topic initial ema score") } - return k.SetReputerScoreEma(ctx, topic.Id, reputerLoss.ValueBundle.Reputer, types.Score{ + err = k.SetReputerScoreEma(ctx, topic.Id, reputerLoss.ValueBundle.Reputer, types.Score{ TopicId: topic.Id, Address: reputerLoss.ValueBundle.Reputer, BlockHeight: nonceBlockHeight, Score: initialEmaScore, }) + if err != nil { + return errorsmod.Wrap(err, "error setting initial reputer score ema") + } } lowestEmaScore, _, err := k.GetLowestReputerScoreEma(ctx, topic.Id) From 08628720d7101330d78927799b861744e18aff49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 15:23:19 -0300 Subject: [PATCH 12/19] Fix tests --- x/emissions/types/params.go | 2 +- x/emissions/types/params_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x/emissions/types/params.go b/x/emissions/types/params.go index 46b617ed4..06d7266fd 100644 --- a/x/emissions/types/params.go +++ b/x/emissions/types/params.go @@ -12,7 +12,7 @@ import ( // DefaultParams returns default module parameters. func DefaultParams() Params { return Params{ - Version: "v2", // version of the protocol should be in lockstep with github release tag version + Version: "v7", // version of the protocol should be in lockstep with github release tag version MinTopicWeight: alloraMath.MustNewDecFromString("100"), // total weight for a topic < this => don't run inference solicatation or loss update RequiredMinimumStake: cosmosMath.NewInt(10000), // minimum stake required to be a worker or reputer RemoveStakeDelayWindow: int64((60 * 60 * 24 * 7 * 3) / 3), // ~approx 3 weeks assuming 3 second block time, number of blocks to wait before finalizing a stake withdrawal diff --git a/x/emissions/types/params_test.go b/x/emissions/types/params_test.go index d1ca847d8..7178858c5 100644 --- a/x/emissions/types/params_test.go +++ b/x/emissions/types/params_test.go @@ -58,7 +58,7 @@ func TestDefaultParams(t *testing.T) { MinExperiencedWorkerRegrets: uint64(10), InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), - SortitionLambdaPenalty: alloraMath.MustNewDecFromString("0.01"), + SortitionLambdaPenalty: alloraMath.MustNewDecFromString("2"), } params := DefaultParams() From db18762976dba1c73e49e7f6c7fdbb72d0c36c00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 15:29:52 -0300 Subject: [PATCH 13/19] Test initial ema score --- x/emissions/module/rewards/scores_test.go | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/x/emissions/module/rewards/scores_test.go b/x/emissions/module/rewards/scores_test.go index 61c499c5e..f4953af15 100644 --- a/x/emissions/module/rewards/scores_test.go +++ b/x/emissions/module/rewards/scores_test.go @@ -1804,3 +1804,41 @@ func (s *RewardsTestSuite) TestGenerateReputerScoresWithZeroListeningCoefficient s.Require().NoError(err) s.Require().True(coefficient.Coefficient.Equal(params.EpsilonReputer)) } + +func (s *RewardsTestSuite) TestCalculateTopicInitialEmaScore() { + // Setup test scores + scores := []types.Score{ + {Score: alloraMath.MustNewDecFromString("0.5")}, + {Score: alloraMath.MustNewDecFromString("0.3")}, + {Score: alloraMath.MustNewDecFromString("0.1")}, + {Score: alloraMath.MustNewDecFromString("0.4")}, + {Score: alloraMath.MustNewDecFromString("0.2")}, + } + + // Calculate initial EMA score + initialScore, err := rewards.CalculateTopicInitialEmaScore(s.ctx, s.emissionsKeeper, scores) + s.Require().NoError(err) + + // Get lambda from params + params, err := s.emissionsKeeper.GetParams(s.ctx) + s.Require().NoError(err) + lambda := params.SortitionLambdaPenalty + + // Calculate expected score manually + // Standard deviation ≈ 0.1581139 + stdDev := alloraMath.MustNewDecFromString("0.1581139") + lambdaStdDev, err := lambda.Mul(stdDev) + s.Require().NoError(err) + + // Lowest score is 0.1 + lowestScore := alloraMath.MustNewDecFromString("0.1") + expectedScore, err := lowestScore.Sub(lambdaStdDev) + s.Require().NoError(err) + + // Verify result matches expected + diff, err := initialScore.Sub(expectedScore) + s.Require().NoError(err) + absDiff, err := diff.Abs() + s.Require().NoError(err) + s.Require().True(absDiff.Lt(alloraMath.MustNewDecFromString("0.000001"))) +} From eec8df15ce5c3306b211606dc3e2df5b768240e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 16:03:02 -0300 Subject: [PATCH 14/19] Fixes after review --- x/emissions/migrations/v7/migrate.go | 2 +- x/emissions/module/rewards/scores_test.go | 35 +++++++++++++++++++---- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/x/emissions/migrations/v7/migrate.go b/x/emissions/migrations/v7/migrate.go index ece1b69bb..04042c3f2 100644 --- a/x/emissions/migrations/v7/migrate.go +++ b/x/emissions/migrations/v7/migrate.go @@ -55,7 +55,7 @@ func MigrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCo // ADDED: // InferenceOutlierDetectionAlpha // InferenceOutlierDetectionThreshold - // NewParticipantScoreInitializationKappa + // SortitionLambdaPenalty newParams := emissionstypes.Params{ //nolint: exhaustruct Version: oldParams.Version, MaxSerializedMsgLength: oldParams.MaxSerializedMsgLength, diff --git a/x/emissions/module/rewards/scores_test.go b/x/emissions/module/rewards/scores_test.go index f4953af15..99b4ea315 100644 --- a/x/emissions/module/rewards/scores_test.go +++ b/x/emissions/module/rewards/scores_test.go @@ -1808,11 +1808,36 @@ func (s *RewardsTestSuite) TestGenerateReputerScoresWithZeroListeningCoefficient func (s *RewardsTestSuite) TestCalculateTopicInitialEmaScore() { // Setup test scores scores := []types.Score{ - {Score: alloraMath.MustNewDecFromString("0.5")}, - {Score: alloraMath.MustNewDecFromString("0.3")}, - {Score: alloraMath.MustNewDecFromString("0.1")}, - {Score: alloraMath.MustNewDecFromString("0.4")}, - {Score: alloraMath.MustNewDecFromString("0.2")}, + { + TopicId: 1, + BlockHeight: 1000, + Address: s.addrs[0].String(), + Score: alloraMath.MustNewDecFromString("0.5"), + }, + { + TopicId: 1, + BlockHeight: 1000, + Address: s.addrs[1].String(), + Score: alloraMath.MustNewDecFromString("0.3"), + }, + { + TopicId: 1, + BlockHeight: 1000, + Address: s.addrs[2].String(), + Score: alloraMath.MustNewDecFromString("0.1"), + }, + { + TopicId: 1, + BlockHeight: 1000, + Address: s.addrs[3].String(), + Score: alloraMath.MustNewDecFromString("0.4"), + }, + { + TopicId: 1, + BlockHeight: 1000, + Address: s.addrs[4].String(), + Score: alloraMath.MustNewDecFromString("0.2"), + }, } // Calculate initial EMA score From 75faf98bd110b5252716dca18f4d2c92dc9cd485 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 17:44:45 -0300 Subject: [PATCH 15/19] Fixes after review --- test/integration/update_params_test.go | 6 +- x/emissions/api/emissions/v7/params.pulsar.go | 119 +- x/emissions/api/emissions/v7/tx.pulsar.go | 1173 ++++++++--------- x/emissions/keeper/keeper_test.go | 2 +- .../keeper/msgserver/msg_server_params.go | 4 +- .../msgserver/msg_server_params_test.go | 6 +- .../msg_server_worker_payload_test.go | 4 +- x/emissions/migrations/v7/migrate.go | 4 +- x/emissions/migrations/v7/migrate_test.go | 2 +- x/emissions/module/rewards/rewards_test.go | 2 +- x/emissions/module/rewards/scores.go | 2 +- x/emissions/module/rewards/scores_test.go | 2 +- x/emissions/proto/emissions/v7/params.proto | 3 +- x/emissions/proto/emissions/v7/tx.proto | 2 +- x/emissions/types/params.go | 8 +- x/emissions/types/params.pb.go | 200 ++- x/emissions/types/params_test.go | 2 +- x/emissions/types/tx.pb.go | 424 +++--- 18 files changed, 980 insertions(+), 985 deletions(-) diff --git a/test/integration/update_params_test.go b/test/integration/update_params_test.go index 157334e15..276749c4a 100644 --- a/test/integration/update_params_test.go +++ b/test/integration/update_params_test.go @@ -91,7 +91,7 @@ func UpdateParamsChecks(m testCommon.TestConfig) { MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + LambdaInitialScore: nil, }, } txResp, err := m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) @@ -153,7 +153,7 @@ func UpdateParamsChecks(m testCommon.TestConfig) { MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + LambdaInitialScore: nil, }, } _, err = m.Client.BroadcastTx(ctx, m.BobAcc, updateParamRequest) @@ -219,7 +219,7 @@ func UpdateParamsChecks(m testCommon.TestConfig) { MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + LambdaInitialScore: nil, }, } txResp, err = m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) diff --git a/x/emissions/api/emissions/v7/params.pulsar.go b/x/emissions/api/emissions/v7/params.pulsar.go index e8f036b59..a9bbf3191 100644 --- a/x/emissions/api/emissions/v7/params.pulsar.go +++ b/x/emissions/api/emissions/v7/params.pulsar.go @@ -65,7 +65,7 @@ var ( fd_Params_min_experienced_worker_regrets protoreflect.FieldDescriptor fd_Params_inference_outlier_detection_threshold protoreflect.FieldDescriptor fd_Params_inference_outlier_detection_alpha protoreflect.FieldDescriptor - fd_Params_sortition_lambda_penalty protoreflect.FieldDescriptor + fd_Params_lambda_initial_score protoreflect.FieldDescriptor ) func init() { @@ -119,7 +119,7 @@ func init() { fd_Params_min_experienced_worker_regrets = md_Params.Fields().ByName("min_experienced_worker_regrets") fd_Params_inference_outlier_detection_threshold = md_Params.Fields().ByName("inference_outlier_detection_threshold") fd_Params_inference_outlier_detection_alpha = md_Params.Fields().ByName("inference_outlier_detection_alpha") - fd_Params_sortition_lambda_penalty = md_Params.Fields().ByName("sortition_lambda_penalty") + fd_Params_lambda_initial_score = md_Params.Fields().ByName("lambda_initial_score") } var _ protoreflect.Message = (*fastReflection_Params)(nil) @@ -475,9 +475,9 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto return } } - if x.SortitionLambdaPenalty != "" { - value := protoreflect.ValueOfString(x.SortitionLambdaPenalty) - if !f(fd_Params_sortition_lambda_penalty, value) { + if x.LambdaInitialScore != "" { + value := protoreflect.ValueOfString(x.LambdaInitialScore) + if !f(fd_Params_lambda_initial_score, value) { return } } @@ -592,8 +592,8 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { return x.InferenceOutlierDetectionThreshold != "" case "emissions.v7.Params.inference_outlier_detection_alpha": return x.InferenceOutlierDetectionAlpha != "" - case "emissions.v7.Params.sortition_lambda_penalty": - return x.SortitionLambdaPenalty != "" + case "emissions.v7.Params.lambda_initial_score": + return x.LambdaInitialScore != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -706,8 +706,8 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { x.InferenceOutlierDetectionThreshold = "" case "emissions.v7.Params.inference_outlier_detection_alpha": x.InferenceOutlierDetectionAlpha = "" - case "emissions.v7.Params.sortition_lambda_penalty": - x.SortitionLambdaPenalty = "" + case "emissions.v7.Params.lambda_initial_score": + x.LambdaInitialScore = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -868,8 +868,8 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro case "emissions.v7.Params.inference_outlier_detection_alpha": value := x.InferenceOutlierDetectionAlpha return protoreflect.ValueOfString(value) - case "emissions.v7.Params.sortition_lambda_penalty": - value := x.SortitionLambdaPenalty + case "emissions.v7.Params.lambda_initial_score": + value := x.LambdaInitialScore return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { @@ -987,8 +987,8 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto x.InferenceOutlierDetectionThreshold = value.Interface().(string) case "emissions.v7.Params.inference_outlier_detection_alpha": x.InferenceOutlierDetectionAlpha = value.Interface().(string) - case "emissions.v7.Params.sortition_lambda_penalty": - x.SortitionLambdaPenalty = value.Interface().(string) + case "emissions.v7.Params.lambda_initial_score": + x.LambdaInitialScore = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -1105,8 +1105,8 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore panic(fmt.Errorf("field inference_outlier_detection_threshold of message emissions.v7.Params is not mutable")) case "emissions.v7.Params.inference_outlier_detection_alpha": panic(fmt.Errorf("field inference_outlier_detection_alpha of message emissions.v7.Params is not mutable")) - case "emissions.v7.Params.sortition_lambda_penalty": - panic(fmt.Errorf("field sortition_lambda_penalty of message emissions.v7.Params is not mutable")) + case "emissions.v7.Params.lambda_initial_score": + panic(fmt.Errorf("field lambda_initial_score of message emissions.v7.Params is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.Params")) @@ -1216,7 +1216,7 @@ func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protor return protoreflect.ValueOfString("") case "emissions.v7.Params.inference_outlier_detection_alpha": return protoreflect.ValueOfString("") - case "emissions.v7.Params.sortition_lambda_penalty": + case "emissions.v7.Params.lambda_initial_score": return protoreflect.ValueOfString("") default: if fd.IsExtension() { @@ -1458,7 +1458,7 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) } - l = len(x.SortitionLambdaPenalty) + l = len(x.LambdaInitialScore) if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) } @@ -1491,10 +1491,10 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.SortitionLambdaPenalty) > 0 { - i -= len(x.SortitionLambdaPenalty) - copy(dAtA[i:], x.SortitionLambdaPenalty) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.SortitionLambdaPenalty))) + if len(x.LambdaInitialScore) > 0 { + i -= len(x.LambdaInitialScore) + copy(dAtA[i:], x.LambdaInitialScore) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.LambdaInitialScore))) i-- dAtA[i] = 0x3 i-- @@ -3190,7 +3190,7 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { iNdEx = postIndex case 55: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SortitionLambdaPenalty", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LambdaInitialScore", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3218,7 +3218,7 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.SortitionLambdaPenalty = string(dAtA[iNdEx:postIndex]) + x.LambdaInitialScore = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3341,8 +3341,7 @@ type Params struct { // for calculating the topic initial regret InferenceOutlierDetectionThreshold string `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` InferenceOutlierDetectionAlpha string `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` - // Constant used to determine the penalty for non-live actors - SortitionLambdaPenalty string `protobuf:"bytes,55,opt,name=sortition_lambda_penalty,json=sortitionLambdaPenalty,proto3" json:"sortition_lambda_penalty,omitempty"` + LambdaInitialScore string `protobuf:"bytes,55,opt,name=lambda_initial_score,json=lambdaInitialScore,proto3" json:"lambda_initial_score,omitempty"` } func (x *Params) Reset() { @@ -3701,9 +3700,9 @@ func (x *Params) GetInferenceOutlierDetectionAlpha() string { return "" } -func (x *Params) GetSortitionLambdaPenalty() string { +func (x *Params) GetLambdaInitialScore() string { if x != nil { - return x.SortitionLambdaPenalty + return x.LambdaInitialScore } return "" } @@ -3717,7 +3716,7 @@ var file_emissions_v7_params_proto_rawDesc = []byte{ 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf2, 0x21, + 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xea, 0x21, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, @@ -3970,38 +3969,38 @@ var file_emissions_v7_params_proto_rawDesc = []byte{ 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x1e, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x71, 0x0a, 0x18, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, - 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, - 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, - 0x52, 0x16, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x6d, 0x62, 0x64, - 0x61, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, - 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, - 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, - 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, - 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, - 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, - 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, - 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x42, 0xc1, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x42, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, - 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, - 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x69, 0x0a, 0x14, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x5f, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x37, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x12, 0x6c, 0x61, + 0x6d, 0x62, 0x64, 0x61, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, + 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, + 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, + 0x65, 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, + 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, + 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x42, 0xc1, 0x01, 0x0a, 0x10, 0x63, + 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x42, + 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, + 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, + 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x76, 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, + 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x5c, 0x56, 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, + 0x56, 0x37, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/x/emissions/api/emissions/v7/tx.pulsar.go b/x/emissions/api/emissions/v7/tx.pulsar.go index 763962d16..ada92093e 100644 --- a/x/emissions/api/emissions/v7/tx.pulsar.go +++ b/x/emissions/api/emissions/v7/tx.pulsar.go @@ -2255,7 +2255,7 @@ func (x *_OptionalParams_55_list) Append(value protoreflect.Value) { } func (x *_OptionalParams_55_list) AppendMutable() protoreflect.Value { - panic(fmt.Errorf("AppendMutable can not be called on message OptionalParams at list field SortitionLambdaPenalty as it is not of Message kind")) + panic(fmt.Errorf("AppendMutable can not be called on message OptionalParams at list field LambdaInitialScore as it is not of Message kind")) } func (x *_OptionalParams_55_list) Truncate(n int) { @@ -2321,7 +2321,7 @@ var ( fd_OptionalParams_min_experienced_worker_regrets protoreflect.FieldDescriptor fd_OptionalParams_inference_outlier_detection_threshold protoreflect.FieldDescriptor fd_OptionalParams_inference_outlier_detection_alpha protoreflect.FieldDescriptor - fd_OptionalParams_sortition_lambda_penalty protoreflect.FieldDescriptor + fd_OptionalParams_lambda_initial_score protoreflect.FieldDescriptor ) func init() { @@ -2375,7 +2375,7 @@ func init() { fd_OptionalParams_min_experienced_worker_regrets = md_OptionalParams.Fields().ByName("min_experienced_worker_regrets") fd_OptionalParams_inference_outlier_detection_threshold = md_OptionalParams.Fields().ByName("inference_outlier_detection_threshold") fd_OptionalParams_inference_outlier_detection_alpha = md_OptionalParams.Fields().ByName("inference_outlier_detection_alpha") - fd_OptionalParams_sortition_lambda_penalty = md_OptionalParams.Fields().ByName("sortition_lambda_penalty") + fd_OptionalParams_lambda_initial_score = md_OptionalParams.Fields().ByName("lambda_initial_score") } var _ protoreflect.Message = (*fastReflection_OptionalParams)(nil) @@ -2731,9 +2731,9 @@ func (x *fastReflection_OptionalParams) Range(f func(protoreflect.FieldDescripto return } } - if len(x.SortitionLambdaPenalty) != 0 { - value := protoreflect.ValueOfList(&_OptionalParams_55_list{list: &x.SortitionLambdaPenalty}) - if !f(fd_OptionalParams_sortition_lambda_penalty, value) { + if len(x.LambdaInitialScore) != 0 { + value := protoreflect.ValueOfList(&_OptionalParams_55_list{list: &x.LambdaInitialScore}) + if !f(fd_OptionalParams_lambda_initial_score, value) { return } } @@ -2848,8 +2848,8 @@ func (x *fastReflection_OptionalParams) Has(fd protoreflect.FieldDescriptor) boo return len(x.InferenceOutlierDetectionThreshold) != 0 case "emissions.v7.OptionalParams.inference_outlier_detection_alpha": return len(x.InferenceOutlierDetectionAlpha) != 0 - case "emissions.v7.OptionalParams.sortition_lambda_penalty": - return len(x.SortitionLambdaPenalty) != 0 + case "emissions.v7.OptionalParams.lambda_initial_score": + return len(x.LambdaInitialScore) != 0 default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -2962,8 +2962,8 @@ func (x *fastReflection_OptionalParams) Clear(fd protoreflect.FieldDescriptor) { x.InferenceOutlierDetectionThreshold = nil case "emissions.v7.OptionalParams.inference_outlier_detection_alpha": x.InferenceOutlierDetectionAlpha = nil - case "emissions.v7.OptionalParams.sortition_lambda_penalty": - x.SortitionLambdaPenalty = nil + case "emissions.v7.OptionalParams.lambda_initial_score": + x.LambdaInitialScore = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -3268,11 +3268,11 @@ func (x *fastReflection_OptionalParams) Get(descriptor protoreflect.FieldDescrip } listValue := &_OptionalParams_54_list{list: &x.InferenceOutlierDetectionAlpha} return protoreflect.ValueOfList(listValue) - case "emissions.v7.OptionalParams.sortition_lambda_penalty": - if len(x.SortitionLambdaPenalty) == 0 { + case "emissions.v7.OptionalParams.lambda_initial_score": + if len(x.LambdaInitialScore) == 0 { return protoreflect.ValueOfList(&_OptionalParams_55_list{}) } - listValue := &_OptionalParams_55_list{list: &x.SortitionLambdaPenalty} + listValue := &_OptionalParams_55_list{list: &x.LambdaInitialScore} return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { @@ -3486,10 +3486,10 @@ func (x *fastReflection_OptionalParams) Set(fd protoreflect.FieldDescriptor, val lv := value.List() clv := lv.(*_OptionalParams_54_list) x.InferenceOutlierDetectionAlpha = *clv.list - case "emissions.v7.OptionalParams.sortition_lambda_penalty": + case "emissions.v7.OptionalParams.lambda_initial_score": lv := value.List() clv := lv.(*_OptionalParams_55_list) - x.SortitionLambdaPenalty = *clv.list + x.LambdaInitialScore = *clv.list default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v7.OptionalParams")) @@ -3798,11 +3798,11 @@ func (x *fastReflection_OptionalParams) Mutable(fd protoreflect.FieldDescriptor) } value := &_OptionalParams_54_list{list: &x.InferenceOutlierDetectionAlpha} return protoreflect.ValueOfList(value) - case "emissions.v7.OptionalParams.sortition_lambda_penalty": - if x.SortitionLambdaPenalty == nil { - x.SortitionLambdaPenalty = []string{} + case "emissions.v7.OptionalParams.lambda_initial_score": + if x.LambdaInitialScore == nil { + x.LambdaInitialScore = []string{} } - value := &_OptionalParams_55_list{list: &x.SortitionLambdaPenalty} + value := &_OptionalParams_55_list{list: &x.LambdaInitialScore} return protoreflect.ValueOfList(value) default: if fd.IsExtension() { @@ -3961,7 +3961,7 @@ func (x *fastReflection_OptionalParams) NewField(fd protoreflect.FieldDescriptor case "emissions.v7.OptionalParams.inference_outlier_detection_alpha": list := []string{} return protoreflect.ValueOfList(&_OptionalParams_54_list{list: &list}) - case "emissions.v7.OptionalParams.sortition_lambda_penalty": + case "emissions.v7.OptionalParams.lambda_initial_score": list := []string{} return protoreflect.ValueOfList(&_OptionalParams_55_list{list: &list}) default: @@ -4334,8 +4334,8 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { n += 2 + l + runtime.Sov(uint64(l)) } } - if len(x.SortitionLambdaPenalty) > 0 { - for _, s := range x.SortitionLambdaPenalty { + if len(x.LambdaInitialScore) > 0 { + for _, s := range x.LambdaInitialScore { l = len(s) n += 2 + l + runtime.Sov(uint64(l)) } @@ -4369,11 +4369,11 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.SortitionLambdaPenalty) > 0 { - for iNdEx := len(x.SortitionLambdaPenalty) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.SortitionLambdaPenalty[iNdEx]) - copy(dAtA[i:], x.SortitionLambdaPenalty[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.SortitionLambdaPenalty[iNdEx]))) + if len(x.LambdaInitialScore) > 0 { + for iNdEx := len(x.LambdaInitialScore) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.LambdaInitialScore[iNdEx]) + copy(dAtA[i:], x.LambdaInitialScore[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.LambdaInitialScore[iNdEx]))) i-- dAtA[i] = 0x3 i-- @@ -7602,7 +7602,7 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { iNdEx = postIndex case 55: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SortitionLambdaPenalty", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LambdaInitialScore", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7630,7 +7630,7 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.SortitionLambdaPenalty = append(x.SortitionLambdaPenalty, string(dAtA[iNdEx:postIndex])) + x.LambdaInitialScore = append(x.LambdaInitialScore, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -33196,7 +33196,7 @@ type OptionalParams struct { MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` InferenceOutlierDetectionThreshold []string `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3" json:"inference_outlier_detection_threshold,omitempty"` InferenceOutlierDetectionAlpha []string `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3" json:"inference_outlier_detection_alpha,omitempty"` - SortitionLambdaPenalty []string `protobuf:"bytes,55,rep,name=sortition_lambda_penalty,json=sortitionLambdaPenalty,proto3" json:"sortition_lambda_penalty,omitempty"` + LambdaInitialScore []string `protobuf:"bytes,55,rep,name=lambda_initial_score,json=lambdaInitialScore,proto3" json:"lambda_initial_score,omitempty"` } func (x *OptionalParams) Reset() { @@ -33555,9 +33555,9 @@ func (x *OptionalParams) GetInferenceOutlierDetectionAlpha() []string { return nil } -func (x *OptionalParams) GetSortitionLambdaPenalty() []string { +func (x *OptionalParams) GetLambdaInitialScore() []string { if x != nil { - return x.SortitionLambdaPenalty + return x.LambdaInitialScore } return nil } @@ -35802,7 +35802,7 @@ var file_emissions_v7_tx_proto_rawDesc = []byte{ 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, - 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfa, 0x21, 0x0a, 0x0e, 0x4f, 0x70, + 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf2, 0x21, 0x0a, 0x0e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, @@ -36055,595 +36055,594 @@ var file_emissions_v7_tx_proto_rawDesc = []byte{ 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x1e, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x71, 0x0a, 0x18, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x5f, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x37, 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, - 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, - 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, - 0x2e, 0x44, 0x65, 0x63, 0x52, 0x16, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x61, 0x6d, 0x62, 0x64, 0x61, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x4a, 0x04, 0x08, 0x04, - 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, - 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, - 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, - 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, - 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, - 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, - 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xb5, 0x09, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, - 0x72, 0x75, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x74, 0x68, 0x4c, 0x61, 0x67, 0x12, 0x4e, - 0x0a, 0x06, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, - 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, - 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x05, 0x70, 0x4e, 0x6f, 0x72, 0x6d, 0x12, 0x5a, - 0x0a, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0b, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x12, 0x51, 0x0a, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x07, 0x65, 0x70, 0x73, - 0x69, 0x6c, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x75, - 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x6b, - 0x0a, 0x15, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, - 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x13, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x53, 0x6f, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x6f, 0x0a, 0x17, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x69, 0x0a, 0x14, 0x6c, 0x61, 0x6d, + 0x62, 0x64, 0x61, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x37, 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, + 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, + 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, + 0x52, 0x12, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, + 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, + 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, + 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, + 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, + 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, + 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x22, 0x70, + 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb5, 0x09, 0x0a, 0x15, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x73, + 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, + 0x6f, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x72, 0x75, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x67, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, + 0x75, 0x74, 0x68, 0x4c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, + 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, + 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, + 0x05, 0x70, 0x4e, 0x6f, 0x72, 0x6d, 0x12, 0x5a, 0x0a, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, + 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, - 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, - 0x65, 0x72, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x75, 0x0a, 0x1a, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x12, + 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x67, 0x72, + 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x65, 0x70, 0x73, + 0x69, 0x6c, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, + 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, + 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, + 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, + 0x44, 0x65, 0x63, 0x52, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x6b, 0x0a, 0x15, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x5f, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, + 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x13, + 0x6d, 0x65, 0x72, 0x69, 0x74, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, + 0x70, 0x68, 0x61, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, - 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x0a, 0x6c, 0x6f, - 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x22, 0x33, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x22, 0x96, 0x01, - 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x6c, 0x65, 0x12, 0x75, 0x0a, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, + 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, + 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, + 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, + 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, + 0x63, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x17, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, + 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, + 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, + 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x17, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x0c, + 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, + 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, + 0x08, 0x09, 0x10, 0x0a, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, + 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, + 0x63, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x72, 0x67, + 0x22, 0x33, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x22, 0x96, 0x01, 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x1a, 0x49, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4c, 0x0a, - 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, - 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0b, 0x6c, 0x69, - 0x62, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x52, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x46, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 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, 0x7a, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, + 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x72, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, + 0x0a, 0x1c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, + 0x01, 0x0a, 0x1a, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, - 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x50, 0x0a, 0x1a, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 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, 0x9b, - 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, - 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, - 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, - 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, - 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x12, 0x0a, 0x10, - 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x9e, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, - 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xba, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x22, 0x1d, 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xae, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, + 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, + 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, + 0x08, 0x03, 0x10, 0x04, 0x52, 0x0b, 0x6c, 0x69, 0x62, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6b, 0x65, + 0x79, 0x52, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0x46, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 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, 0x7a, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x22, 0x50, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 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, 0x9b, 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x17, - 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, - 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, - 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x20, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, + 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x22, 0x12, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, + 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x5a, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, + 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1b, 0x0a, 0x19, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x14, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, + 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, + 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, + 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xc0, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x1a, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, - 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x60, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, - 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x0a, 0x21, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, - 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, - 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x64, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, + 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x20, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, - 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x22, 0x26, 0x0a, 0x24, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1b, - 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, - 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x41, 0x64, - 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x20, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, + 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, + 0x0a, 0x21, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x1a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, + 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x10, 0x46, + 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, + 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6e, + 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, + 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, + 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x41, + 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x0a, 0x1f, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, + 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x22, 0x0a, 0x20, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x63, 0x0a, 0x21, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x22, 0x25, 0x0a, 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, - 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, - 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, + 0x0a, 0x23, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, + 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x26, 0x0a, 0x24, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x62, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x26, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x73, 0x65, 0x22, 0x61, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, - 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x7c, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, - 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 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, - 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, - 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf0, 0x18, 0x0a, 0x0a, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x23, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x37, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, - 0x08, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x11, - 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x12, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, + 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x21, 0x41, 0x64, + 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, + 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, + 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, + 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7c, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x54, + 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 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, 0x19, + 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x25, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, + 0x28, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x41, 0x64, 0x64, + 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, + 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, + 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, + 0x01, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 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, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, + 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf0, + 0x18, 0x0a, 0x0a, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, + 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x49, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x12, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x52, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, + 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, - 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, - 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x46, - 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x46, - 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6a, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x18, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x09, 0x46, 0x75, + 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, + 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, + 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, + 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, - 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x28, + 0x12, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6a, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x49, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x29, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7f, 0x0a, 0x1a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x41, 0x64, + 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, + 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x1c, 0x44, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, - 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, - 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, + 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x44, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, - 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, + 0x0a, 0x1b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, - 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbd, 0x01, 0x0a, 0x10, 0x63, 0x6f, - 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x42, 0x07, - 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, - 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, - 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, - 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, + 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, + 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, + 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, + 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, + 0x01, 0x42, 0xbd, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, + 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, + 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, + 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/x/emissions/keeper/keeper_test.go b/x/emissions/keeper/keeper_test.go index 28c230ad1..49817d63f 100644 --- a/x/emissions/keeper/keeper_test.go +++ b/x/emissions/keeper/keeper_test.go @@ -3986,7 +3986,7 @@ func mockUninitializedParams() types.Params { MinExperiencedWorkerRegrets: uint64(10), InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), - SortitionLambdaPenalty: alloraMath.MustNewDecFromString("0.1"), + LambdaInitialScore: alloraMath.MustNewDecFromString("2"), } } diff --git a/x/emissions/keeper/msgserver/msg_server_params.go b/x/emissions/keeper/msgserver/msg_server_params.go index 97a68bea1..ce17f7fef 100644 --- a/x/emissions/keeper/msgserver/msg_server_params.go +++ b/x/emissions/keeper/msgserver/msg_server_params.go @@ -171,8 +171,8 @@ func (ms msgServer) UpdateParams(ctx context.Context, msg *types.UpdateParamsReq if len(newParams.InferenceOutlierDetectionAlpha) == 1 { existingParams.InferenceOutlierDetectionAlpha = newParams.InferenceOutlierDetectionAlpha[0] } - if len(newParams.SortitionLambdaPenalty) == 1 { - existingParams.SortitionLambdaPenalty = newParams.SortitionLambdaPenalty[0] + if len(newParams.LambdaInitialScore) == 1 { + existingParams.LambdaInitialScore = newParams.LambdaInitialScore[0] } err = existingParams.Validate() if err != nil { diff --git a/x/emissions/keeper/msgserver/msg_server_params_test.go b/x/emissions/keeper/msgserver/msg_server_params_test.go index 73ade5671..aa1cd31c8 100644 --- a/x/emissions/keeper/msgserver/msg_server_params_test.go +++ b/x/emissions/keeper/msgserver/msg_server_params_test.go @@ -68,7 +68,7 @@ func (s *MsgServerTestSuite) TestUpdateAllParams() { MinExperiencedWorkerRegrets: []uint64{1234}, InferenceOutlierDetectionThreshold: []alloraMath.Dec{alloraMath.MustNewDecFromString("11")}, InferenceOutlierDetectionAlpha: []alloraMath.Dec{alloraMath.MustNewDecFromString("0.2")}, - SortitionLambdaPenalty: []alloraMath.Dec{alloraMath.MustNewDecFromString("1")}, + LambdaInitialScore: []alloraMath.Dec{alloraMath.MustNewDecFromString("2")}, } updateMsg := &types.UpdateParamsRequest{ @@ -131,7 +131,7 @@ func (s *MsgServerTestSuite) TestUpdateAllParams() { require.Equal(newParams.MinExperiencedWorkerRegrets[0], updatedParams.MinExperiencedWorkerRegrets) require.Equal(newParams.InferenceOutlierDetectionThreshold[0], updatedParams.InferenceOutlierDetectionThreshold) require.Equal(newParams.InferenceOutlierDetectionAlpha[0], updatedParams.InferenceOutlierDetectionAlpha) - require.Equal(newParams.SortitionLambdaPenalty[0], updatedParams.SortitionLambdaPenalty) + require.Equal(newParams.LambdaInitialScore[0], updatedParams.LambdaInitialScore) } func (s *MsgServerTestSuite) TestUpdateParamsNonWhitelistedUser() { @@ -193,7 +193,7 @@ func (s *MsgServerTestSuite) TestUpdateParamsNonWhitelistedUser() { MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + LambdaInitialScore: nil, } // Creating the UpdateParamsRequest message with a non-whitelisted user diff --git a/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go b/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go index d8221f75d..d15552115 100644 --- a/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go +++ b/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go @@ -366,7 +366,7 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithFewTopElementsPerFore MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + LambdaInitialScore: nil, } updateMsg := &types.UpdateParamsRequest{ @@ -769,7 +769,7 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithLowScoreForecastsAreR MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + LambdaInitialScore: nil, } updateMsg := &types.UpdateParamsRequest{ diff --git a/x/emissions/migrations/v7/migrate.go b/x/emissions/migrations/v7/migrate.go index 04042c3f2..efb1190db 100644 --- a/x/emissions/migrations/v7/migrate.go +++ b/x/emissions/migrations/v7/migrate.go @@ -55,7 +55,7 @@ func MigrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCo // ADDED: // InferenceOutlierDetectionAlpha // InferenceOutlierDetectionThreshold - // SortitionLambdaPenalty + // LambdaInitialScore newParams := emissionstypes.Params{ //nolint: exhaustruct Version: oldParams.Version, MaxSerializedMsgLength: oldParams.MaxSerializedMsgLength, @@ -106,7 +106,7 @@ func MigrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCo // NEW PARAMS InferenceOutlierDetectionThreshold: defaultParams.InferenceOutlierDetectionThreshold, InferenceOutlierDetectionAlpha: defaultParams.InferenceOutlierDetectionAlpha, - SortitionLambdaPenalty: defaultParams.SortitionLambdaPenalty, + LambdaInitialScore: defaultParams.LambdaInitialScore, } ctx.Logger().Info(fmt.Sprintf("MIGRATED PARAMS: %+v", newParams)) diff --git a/x/emissions/migrations/v7/migrate_test.go b/x/emissions/migrations/v7/migrate_test.go index c3253dda0..50ed7a580 100644 --- a/x/emissions/migrations/v7/migrate_test.go +++ b/x/emissions/migrations/v7/migrate_test.go @@ -184,5 +184,5 @@ func (s *EmissionsV6MigrationTestSuite) TestMigrateParams() { s.Require().Equal(paramsExpected.MinExperiencedWorkerRegrets, params.MinExperiencedWorkerRegrets) s.Require().Equal(paramsExpected.InferenceOutlierDetectionThreshold, params.InferenceOutlierDetectionThreshold) s.Require().Equal(paramsExpected.InferenceOutlierDetectionAlpha, params.InferenceOutlierDetectionAlpha) - s.Require().Equal(paramsExpected.SortitionLambdaPenalty, params.SortitionLambdaPenalty) + s.Require().Equal(paramsExpected.LambdaInitialScore, params.LambdaInitialScore) } diff --git a/x/emissions/module/rewards/rewards_test.go b/x/emissions/module/rewards/rewards_test.go index 1afc1ab6f..2859907cf 100644 --- a/x/emissions/module/rewards/rewards_test.go +++ b/x/emissions/module/rewards/rewards_test.go @@ -2219,7 +2219,7 @@ func (s *RewardsTestSuite) SetParamsForTest() { MinExperiencedWorkerRegrets: nil, InferenceOutlierDetectionThreshold: nil, InferenceOutlierDetectionAlpha: nil, - SortitionLambdaPenalty: nil, + LambdaInitialScore: nil, } updateMsg := &types.UpdateParamsRequest{ diff --git a/x/emissions/module/rewards/scores.go b/x/emissions/module/rewards/scores.go index 282952571..21febeb60 100644 --- a/x/emissions/module/rewards/scores.go +++ b/x/emissions/module/rewards/scores.go @@ -536,7 +536,7 @@ func CalculateTopicInitialEmaScore( if err != nil { return alloraMath.Dec{}, errors.Wrapf(err, "error getting module params") } - lambda := params.SortitionLambdaPenalty + lambda := params.LambdaInitialScore // Calculate standard deviation of EMA scores in active set var emaScores []alloraMath.Dec diff --git a/x/emissions/module/rewards/scores_test.go b/x/emissions/module/rewards/scores_test.go index 99b4ea315..4101765c2 100644 --- a/x/emissions/module/rewards/scores_test.go +++ b/x/emissions/module/rewards/scores_test.go @@ -1847,7 +1847,7 @@ func (s *RewardsTestSuite) TestCalculateTopicInitialEmaScore() { // Get lambda from params params, err := s.emissionsKeeper.GetParams(s.ctx) s.Require().NoError(err) - lambda := params.SortitionLambdaPenalty + lambda := params.LambdaInitialScore // Calculate expected score manually // Standard deviation ≈ 0.1581139 diff --git a/x/emissions/proto/emissions/v7/params.proto b/x/emissions/proto/emissions/v7/params.proto index 0e02e124b..62cedbb91 100644 --- a/x/emissions/proto/emissions/v7/params.proto +++ b/x/emissions/proto/emissions/v7/params.proto @@ -165,8 +165,7 @@ message Params { (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; - // Constant used to determine the penalty for non-live actors - string sortition_lambda_penalty = 55 [ + string lambda_initial_score = 55 [ (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; diff --git a/x/emissions/proto/emissions/v7/tx.proto b/x/emissions/proto/emissions/v7/tx.proto index 76c660bba..839d99622 100644 --- a/x/emissions/proto/emissions/v7/tx.proto +++ b/x/emissions/proto/emissions/v7/tx.proto @@ -217,7 +217,7 @@ message OptionalParams { (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; - repeated string sortition_lambda_penalty = 55 [ + repeated string lambda_initial_score = 55 [ (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; diff --git a/x/emissions/types/params.go b/x/emissions/types/params.go index 06d7266fd..a6b95a708 100644 --- a/x/emissions/types/params.go +++ b/x/emissions/types/params.go @@ -60,7 +60,7 @@ func DefaultParams() Params { MinExperiencedWorkerRegrets: uint64(10), // minimum number of experienced workers required to use their regrets for calculating the topic initial regret InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), // threshold for inference outlier detection InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), // alpha for inference outlier detection - SortitionLambdaPenalty: alloraMath.MustNewDecFromString("2"), // lambda for new participant score initialization + LambdaInitialScore: alloraMath.MustNewDecFromString("2"), // lambda for new participant score initialization } } @@ -204,8 +204,8 @@ func (p Params) Validate() error { if err := validateInferenceOutlierDetectionAlpha(p.InferenceOutlierDetectionAlpha); err != nil { return errorsmod.Wrap(err, "params validation failure: inference outlier detection alpha") } - if err := validateSortitionLambdaPenalty(p.SortitionLambdaPenalty); err != nil { - return errorsmod.Wrap(err, "params validation failure: sortition lambda penalty") + if err := validateLambdaInitialScore(p.LambdaInitialScore); err != nil { + return errorsmod.Wrap(err, "params validation failure: lambda initial score") } return nil } @@ -642,7 +642,7 @@ func validateInferenceOutlierDetectionAlpha(i alloraMath.Dec) error { return nil } -func validateSortitionLambdaPenalty(i alloraMath.Dec) error { +func validateLambdaInitialScore(i alloraMath.Dec) error { if err := ValidateDec(i); err != nil { return err } else if i.IsNegative() { diff --git a/x/emissions/types/params.pb.go b/x/emissions/types/params.pb.go index 668315e8d..4b7111893 100644 --- a/x/emissions/types/params.pb.go +++ b/x/emissions/types/params.pb.go @@ -96,8 +96,7 @@ type Params struct { // for calculating the topic initial regret InferenceOutlierDetectionThreshold github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,opt,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` InferenceOutlierDetectionAlpha github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,opt,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` - // Constant used to determine the penalty for non-live actors - SortitionLambdaPenalty github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,opt,name=sortition_lambda_penalty,json=sortitionLambdaPenalty,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"sortition_lambda_penalty"` + LambdaInitialScore github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,opt,name=lambda_initial_score,json=lambdaInitialScore,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"lambda_initial_score"` } func (m *Params) Reset() { *m = Params{} } @@ -294,105 +293,104 @@ func init() { func init() { proto.RegisterFile("emissions/v7/params.proto", fileDescriptor_8c07ddd983414a3f) } var fileDescriptor_8c07ddd983414a3f = []byte{ - // 1553 bytes of a gzipped FileDescriptorProto + // 1547 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4d, 0x6f, 0x14, 0x47, 0x13, 0xf6, 0xbe, 0x18, 0x63, 0x1a, 0x63, 0xaf, 0xe7, 0x35, 0x66, 0xfc, 0xb5, 0x36, 0x18, 0x92, 0xc5, 0x01, 0x2f, 0x09, 0x49, 0x4c, 0x3e, 0x0e, 0x01, 0x6c, 0x23, 0x5b, 0x98, 0x38, 0x63, 0x07, 0x4b, 0x24, 0x4a, 0xa7, 0x3d, 0x53, 0xbb, 0xdb, 0xf2, 0x4c, 0xf7, 0xd0, 0xdd, 0xbb, 0x5e, 0x73, 0x8c, 0x94, 0x4b, 0x4e, 0xf9, 0x19, 0x39, 0xe6, 0x90, 0x1f, 0xc1, 0x11, 0xe5, 0x14, 0xe5, 0x80, - 0x22, 0x38, 0xe4, 0x9e, 0x5f, 0x10, 0xf5, 0xc7, 0xcc, 0xee, 0x62, 0x82, 0x22, 0x26, 0x17, 0xcb, - 0x33, 0x5d, 0xf5, 0x3c, 0x35, 0x4f, 0x57, 0x57, 0x55, 0x2f, 0x9a, 0x82, 0x84, 0x4a, 0x49, 0x39, - 0x93, 0xb5, 0xf6, 0x4a, 0x2d, 0x25, 0x82, 0x24, 0x72, 0x39, 0x15, 0x5c, 0x71, 0x6f, 0x24, 0x5f, - 0x5a, 0x6e, 0xaf, 0x4c, 0x8f, 0x93, 0x84, 0x32, 0x5e, 0x33, 0x7f, 0xad, 0xc1, 0xf4, 0x54, 0xc8, - 0x65, 0xc2, 0x25, 0x36, 0x4f, 0x35, 0xfb, 0xe0, 0x96, 0x26, 0x1a, 0xbc, 0xc1, 0xed, 0x7b, 0xfd, - 0x9f, 0x7d, 0x7b, 0xf1, 0xaf, 0x0b, 0x68, 0x68, 0xdb, 0x50, 0x78, 0x3e, 0x3a, 0xd5, 0x06, 0xa1, - 0xd1, 0xfd, 0xd2, 0x42, 0xa9, 0x7a, 0x3a, 0xc8, 0x1e, 0xbd, 0x8f, 0xd0, 0x54, 0x42, 0x3a, 0x58, - 0x82, 0xa0, 0x24, 0xa6, 0x8f, 0x21, 0xc2, 0x89, 0x6c, 0xe0, 0x18, 0x58, 0x43, 0x35, 0xfd, 0xff, - 0x2d, 0x94, 0xaa, 0x27, 0x82, 0xc9, 0x84, 0x74, 0x76, 0xf2, 0xf5, 0x2d, 0xd9, 0xb8, 0x67, 0x56, - 0x3d, 0x82, 0xca, 0x09, 0x65, 0x58, 0xf1, 0x94, 0x86, 0xf8, 0x10, 0x68, 0xa3, 0xa9, 0xfc, 0x13, - 0x1a, 0xfd, 0xf6, 0xca, 0x93, 0x67, 0xf3, 0x03, 0xbf, 0x3f, 0x9b, 0xaf, 0x35, 0xa8, 0x6a, 0xb6, - 0xf6, 0x97, 0x43, 0x9e, 0xd4, 0x48, 0x1c, 0x73, 0x41, 0xae, 0x31, 0x50, 0x87, 0x5c, 0x1c, 0x64, - 0x8f, 0x61, 0x93, 0x50, 0x56, 0x4b, 0x88, 0x6a, 0x2e, 0xaf, 0x42, 0x18, 0x8c, 0x26, 0x94, 0xed, - 0x6a, 0xbc, 0x3d, 0x03, 0xe7, 0xd5, 0xd1, 0xa4, 0x80, 0x47, 0x2d, 0x2a, 0x74, 0x5c, 0x94, 0xd1, - 0xa4, 0x95, 0x60, 0xa9, 0xc8, 0x01, 0xf8, 0x27, 0x0d, 0xd1, 0x75, 0x47, 0x74, 0xce, 0xca, 0x21, - 0xa3, 0x83, 0x65, 0xca, 0x2d, 0xdc, 0x06, 0x53, 0xbf, 0xfe, 0x72, 0x0d, 0x39, 0x9d, 0x36, 0x98, - 0xfa, 0xe9, 0xcf, 0x9f, 0x97, 0x4a, 0xc1, 0x44, 0x86, 0xb7, 0x65, 0xe1, 0x76, 0x34, 0x9a, 0x56, - 0x41, 0x40, 0xc2, 0xdb, 0x60, 0xd1, 0x71, 0x04, 0x31, 0x39, 0xc2, 0x87, 0x94, 0x45, 0xfc, 0xd0, - 0x1f, 0xb2, 0x2a, 0x58, 0x03, 0x63, 0xbf, 0xaa, 0x97, 0xf7, 0xcc, 0xaa, 0x57, 0xb5, 0x2a, 0x40, - 0xca, 0xc3, 0x66, 0xa6, 0xdb, 0x29, 0xe3, 0xa1, 0x3f, 0x66, 0x4d, 0xbf, 0x76, 0x7a, 0x3d, 0x44, - 0x23, 0xfb, 0xa0, 0x08, 0x06, 0xa6, 0x04, 0x4f, 0x8f, 0xfc, 0xe1, 0x62, 0x5a, 0x9d, 0xd1, 0x60, - 0x6b, 0x16, 0xcb, 0xfb, 0x1a, 0x9d, 0x8d, 0x81, 0x08, 0x46, 0x59, 0x03, 0x0b, 0xa2, 0xc0, 0x3f, - 0x5d, 0x0c, 0x7c, 0x24, 0x43, 0x0b, 0x88, 0x02, 0x2f, 0x41, 0x3a, 0x07, 0x70, 0x43, 0x90, 0x88, - 0x02, 0x53, 0x58, 0x35, 0x05, 0xc8, 0x26, 0x8f, 0x23, 0x1f, 0x15, 0xa3, 0x99, 0x48, 0x48, 0xe7, - 0xae, 0x43, 0xdd, 0xcd, 0x40, 0x3d, 0x40, 0x9e, 0x96, 0xd4, 0x6e, 0x45, 0x5d, 0x90, 0x50, 0xe9, - 0xc4, 0x3d, 0x53, 0x8c, 0x4a, 0xef, 0x92, 0xd9, 0xbc, 0x75, 0x07, 0xe8, 0xad, 0xa1, 0x79, 0xfd, - 0x55, 0x2d, 0x56, 0x6f, 0xc5, 0x75, 0x1a, 0xc7, 0x10, 0x61, 0xed, 0x0f, 0x02, 0xeb, 0x1c, 0x01, - 0xa9, 0xa4, 0x7f, 0x76, 0xa1, 0x54, 0x1d, 0x0c, 0x66, 0x13, 0xd2, 0xf9, 0xb2, 0x6b, 0xb5, 0x67, - 0x8c, 0x02, 0x67, 0xe3, 0xdd, 0x45, 0x0b, 0x2f, 0xc3, 0x08, 0x48, 0x5b, 0xaa, 0x17, 0x67, 0xd4, - 0xe0, 0xcc, 0xf5, 0xe3, 0x04, 0xd6, 0x2a, 0x07, 0x7a, 0x8c, 0xe6, 0xec, 0x59, 0x12, 0x70, 0x48, - 0x44, 0xe4, 0xbe, 0x9f, 0x26, 0x29, 0x17, 0x8a, 0xb0, 0x10, 0xfc, 0xb1, 0x62, 0x0a, 0x4c, 0x1b, - 0xf4, 0xc0, 0x80, 0x1b, 0x25, 0x36, 0x72, 0x68, 0xef, 0xfb, 0x12, 0x5a, 0xec, 0x23, 0xaf, 0x03, - 0x60, 0x01, 0x6d, 0x60, 0xad, 0xbe, 0x10, 0xca, 0xc5, 0x42, 0x98, 0xef, 0x09, 0x61, 0x1d, 0x20, - 0xb0, 0x04, 0x3d, 0x71, 0x00, 0xf2, 0xfa, 0xc2, 0x20, 0x71, 0xda, 0x24, 0xfe, 0x78, 0xc1, 0xad, - 0xef, 0x61, 0xbd, 0xa5, 0x01, 0xbd, 0x10, 0x8d, 0x2b, 0x22, 0x0f, 0xfa, 0x59, 0xbc, 0x62, 0x2c, - 0x63, 0x1a, 0xb1, 0x97, 0x44, 0x6b, 0xda, 0x26, 0x31, 0x8d, 0x88, 0xe2, 0x42, 0xe2, 0xb6, 0xc4, - 0xd6, 0x11, 0xa7, 0x20, 0x42, 0x7d, 0x8c, 0x2c, 0xbb, 0xff, 0xff, 0x82, 0x9a, 0x76, 0x39, 0x1e, - 0xc8, 0x5b, 0xc6, 0x64, 0xdb, 0x12, 0xd8, 0x60, 0xbc, 0x4f, 0xd1, 0x8c, 0x29, 0xf1, 0x24, 0x49, - 0x63, 0x90, 0x58, 0x71, 0x2c, 0x43, 0x12, 0x03, 0x96, 0x21, 0x17, 0x20, 0xfd, 0x09, 0x93, 0x9b, - 0xe7, 0x75, 0x91, 0xb7, 0x16, 0xbb, 0x7c, 0x47, 0xaf, 0xef, 0x98, 0x65, 0xef, 0x63, 0x34, 0xad, - 0xbd, 0x15, 0x4f, 0x31, 0x65, 0x75, 0x10, 0x20, 0x0c, 0x84, 0x8b, 0xfd, 0x9c, 0x71, 0xd6, 0xd5, - 0x61, 0x97, 0xa7, 0x1b, 0x6e, 0x7d, 0x97, 0x3b, 0xe6, 0xcf, 0xd0, 0x5c, 0xe6, 0x5b, 0xe7, 0x02, - 0x42, 0x22, 0x55, 0xbf, 0xfb, 0xa4, 0x71, 0x9f, 0xb2, 0xee, 0xeb, 0x5d, 0x93, 0x1c, 0xa1, 0x87, - 0xdd, 0x1d, 0xaa, 0x5e, 0xf7, 0xf3, 0xbd, 0xec, 0xee, 0x38, 0x75, 0x7d, 0x1f, 0xa2, 0x72, 0x28, - 0x80, 0x28, 0x70, 0x2d, 0xaa, 0x0e, 0xe0, 0xfb, 0x6f, 0xd8, 0x36, 0x46, 0x2d, 0x92, 0xe9, 0x4d, - 0xeb, 0x00, 0xde, 0x27, 0x68, 0x3a, 0xaf, 0x86, 0x11, 0x48, 0xb3, 0x9d, 0x3a, 0x50, 0xaa, 0x23, - 0xf0, 0xa7, 0xac, 0xa4, 0x99, 0xc5, 0xaa, 0x35, 0xd8, 0x22, 0x9d, 0x0d, 0xbd, 0xec, 0x7d, 0x85, - 0xca, 0x02, 0x1a, 0x54, 0x2a, 0x41, 0x74, 0x21, 0x32, 0x81, 0xcd, 0xbe, 0x61, 0x60, 0x63, 0xbd, - 0x48, 0x3a, 0xb2, 0xab, 0xc8, 0x8b, 0xa0, 0x4e, 0x5a, 0xb1, 0xc2, 0x29, 0x69, 0x00, 0x8e, 0x69, - 0x42, 0x95, 0x3f, 0x67, 0x22, 0x2a, 0xbb, 0x95, 0x6d, 0xd2, 0x80, 0x7b, 0xfa, 0xbd, 0x77, 0x09, - 0x8d, 0xea, 0xb0, 0x7b, 0x2c, 0x2b, 0xc6, 0x72, 0x24, 0x21, 0x9d, 0xae, 0x95, 0xde, 0xc7, 0x97, - 0x7a, 0x1c, 0x16, 0x10, 0x72, 0x11, 0x39, 0xa7, 0x79, 0xd3, 0xf0, 0xa6, 0xfa, 0x1b, 0x5e, 0x60, - 0x2c, 0x2c, 0x42, 0x15, 0x95, 0xf7, 0x63, 0x1e, 0x1e, 0x48, 0x9d, 0xfc, 0x38, 0xe1, 0x4c, 0x35, - 0xfd, 0x05, 0xc3, 0x34, 0x6a, 0xdf, 0x6f, 0x83, 0xd8, 0xd2, 0x6f, 0x75, 0x05, 0x48, 0xb3, 0x73, - 0x69, 0x13, 0x4e, 0xd7, 0x9d, 0x0b, 0x05, 0x2b, 0x40, 0x6a, 0x73, 0x62, 0x23, 0x03, 0xd4, 0x15, - 0x20, 0xa7, 0xc9, 0x72, 0xd3, 0xbf, 0x58, 0xb0, 0x02, 0x38, 0x96, 0x2c, 0x91, 0xf5, 0x84, 0x94, - 0x93, 0xb8, 0xf4, 0xf5, 0x17, 0x0b, 0x4e, 0x48, 0x8e, 0xc3, 0x65, 0xbb, 0x96, 0x2b, 0x3c, 0x2e, - 0xd7, 0xa5, 0x82, 0x72, 0x85, 0xaf, 0x90, 0x2b, 0x3c, 0x26, 0xd7, 0xe5, 0x82, 0x72, 0x85, 0x2f, - 0xc9, 0x75, 0x1f, 0x0d, 0x85, 0x98, 0x71, 0x91, 0xf8, 0x6f, 0x15, 0x43, 0x3e, 0x19, 0xde, 0xe7, - 0x22, 0xf1, 0xbe, 0x45, 0x63, 0x90, 0x4a, 0x1a, 0x73, 0x96, 0xab, 0x5f, 0x2d, 0xa8, 0xbe, 0xc3, - 0xcb, 0xd4, 0x7f, 0x80, 0xae, 0x34, 0x49, 0x5c, 0x37, 0x47, 0x3f, 0x15, 0x3c, 0x04, 0x29, 0x5d, - 0xdb, 0x36, 0xd3, 0x22, 0x89, 0x25, 0x06, 0x16, 0x61, 0x93, 0xe2, 0xfe, 0x92, 0xc9, 0xf7, 0x45, - 0xed, 0xb0, 0x45, 0x3a, 0xdb, 0xd6, 0xdc, 0x34, 0xe2, 0xc0, 0x19, 0xaf, 0xb1, 0xe8, 0xb6, 0x36, - 0xd5, 0x89, 0x93, 0x45, 0x2e, 0x49, 0x1d, 0x70, 0x44, 0xdb, 0xfe, 0x3b, 0xff, 0x4d, 0xe8, 0x3b, - 0xa4, 0x0e, 0xab, 0xb4, 0xad, 0xab, 0x63, 0x44, 0x14, 0xc1, 0x12, 0x58, 0xa4, 0xa7, 0x46, 0x5d, - 0x84, 0xae, 0xbe, 0x69, 0x75, 0xd4, 0x48, 0x3b, 0x16, 0x48, 0xd7, 0x20, 0x77, 0xa9, 0x80, 0x18, - 0x12, 0x60, 0xca, 0x9e, 0xf9, 0x3c, 0x6b, 0xae, 0xe5, 0x45, 0x7b, 0xcd, 0xad, 0x6f, 0x83, 0xc8, - 0x73, 0xc0, 0x35, 0x2b, 0x3d, 0xa2, 0xb5, 0x5d, 0xe1, 0xb6, 0xfe, 0x56, 0xc3, 0xe5, 0xbc, 0x59, - 0xdd, 0x32, 0x16, 0xa6, 0x20, 0x6b, 0x00, 0xab, 0xdb, 0x12, 0x1a, 0x37, 0xad, 0x4e, 0x09, 0xfd, - 0x49, 0x6e, 0x1a, 0xaf, 0x19, 0x9f, 0x31, 0xdd, 0xe0, 0xcc, 0x7b, 0x37, 0x8e, 0x73, 0x74, 0x9e, - 0x32, 0xaa, 0x28, 0x89, 0xb1, 0x80, 0x86, 0x00, 0x85, 0x1f, 0xb5, 0x08, 0x53, 0x34, 0x06, 0xff, - 0x7a, 0x31, 0xa9, 0xcf, 0x39, 0xdc, 0xc0, 0xc0, 0x7e, 0xe1, 0x50, 0xbd, 0x6f, 0xd0, 0x58, 0x6a, - 0xd2, 0xbb, 0xbb, 0xa7, 0xef, 0x16, 0x9c, 0xd2, 0x53, 0x9d, 0xe7, 0xd9, 0x8e, 0xde, 0x44, 0x7e, - 0x23, 0xe6, 0xfb, 0x24, 0xc6, 0x87, 0x4d, 0xaa, 0x20, 0xa6, 0x52, 0x61, 0x60, 0x64, 0x3f, 0x86, - 0xc8, 0x7f, 0x6f, 0xa1, 0x54, 0x1d, 0x0e, 0x26, 0xed, 0xfa, 0x5e, 0xb6, 0xbc, 0x66, 0x57, 0xf5, - 0x24, 0x6c, 0x5b, 0xa4, 0xe9, 0x72, 0x5c, 0xbc, 0x02, 0xe0, 0x86, 0x01, 0x98, 0x35, 0x66, 0x77, - 0xac, 0xd5, 0x31, 0x98, 0x3b, 0xa8, 0x62, 0xda, 0x44, 0x27, 0x05, 0x41, 0x75, 0xd9, 0xe8, 0x19, - 0xa8, 0xb5, 0x12, 0xd2, 0x7f, 0xdf, 0x6c, 0xc5, 0x8c, 0xee, 0x13, 0x5d, 0xa3, 0x6c, 0x9e, 0x36, - 0x26, 0xde, 0x0f, 0x25, 0x74, 0x39, 0x2f, 0x64, 0x98, 0xb7, 0x54, 0x4c, 0x41, 0xe0, 0x08, 0x14, - 0x98, 0xa9, 0xbd, 0xe7, 0xee, 0xf1, 0x41, 0x31, 0xf1, 0x2e, 0xe6, 0x2c, 0x9f, 0x5b, 0x92, 0xd5, - 0x8c, 0xa3, 0x7b, 0x13, 0xf9, 0xae, 0x84, 0x2e, 0xbc, 0x2e, 0x18, 0x3b, 0x38, 0x7e, 0x58, 0x2c, - 0x90, 0xca, 0x3f, 0x06, 0x62, 0xe7, 0xc8, 0x47, 0xc8, 0x97, 0x5c, 0x28, 0x6a, 0x18, 0x63, 0x92, - 0xec, 0x47, 0x7a, 0x84, 0x64, 0x24, 0x56, 0x47, 0xfe, 0x4a, 0x31, 0xea, 0xc9, 0x1c, 0xf8, 0x9e, - 0xc1, 0xdd, 0xb6, 0xb0, 0x9b, 0x83, 0xc3, 0x83, 0xe5, 0x93, 0x9b, 0x83, 0xc3, 0xd3, 0xe5, 0x99, - 0xcd, 0xc1, 0xe1, 0x99, 0xf2, 0xec, 0xe6, 0xe0, 0xf0, 0xdb, 0xe5, 0xea, 0xe6, 0xe0, 0xf0, 0x95, - 0xf2, 0x92, 0xb9, 0xb5, 0x1d, 0x3b, 0x9a, 0x66, 0x57, 0x31, 0xd4, 0xeb, 0xd0, 0x73, 0x74, 0xb3, - 0x2b, 0x44, 0xb0, 0xa8, 0x5d, 0x04, 0x28, 0x41, 0xed, 0x04, 0x6a, 0x2f, 0x41, 0x98, 0x71, 0x16, - 0x82, 0x74, 0x59, 0xe2, 0xb2, 0xab, 0xef, 0xea, 0x11, 0x41, 0x48, 0x8e, 0xcc, 0x8d, 0x36, 0xb8, - 0xf4, 0x5a, 0x08, 0x57, 0xe0, 0x6f, 0x07, 0x4f, 0x9e, 0x57, 0x4a, 0x4f, 0x9f, 0x57, 0x4a, 0x7f, - 0x3c, 0xaf, 0x94, 0x7e, 0x7c, 0x51, 0x19, 0x78, 0xfa, 0xa2, 0x32, 0xf0, 0xdb, 0x8b, 0xca, 0xc0, - 0xc3, 0x9b, 0xff, 0x52, 0x9c, 0x4e, 0xad, 0xfb, 0x23, 0x8d, 0x3a, 0x4a, 0x41, 0xee, 0x0f, 0x99, - 0xdf, 0x53, 0x6e, 0xfc, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x9b, 0xb5, 0xed, 0xbe, 0x11, 0x00, - 0x00, + 0x22, 0x38, 0x44, 0xca, 0xaf, 0x88, 0xfa, 0x63, 0x66, 0x77, 0x31, 0x41, 0x11, 0x93, 0x8b, 0xe5, + 0x99, 0xae, 0x7a, 0x9e, 0x9a, 0xa7, 0xab, 0xab, 0xaa, 0x17, 0x4d, 0x41, 0x42, 0xa5, 0xa4, 0x9c, + 0xc9, 0x5a, 0x7b, 0xa5, 0x96, 0x12, 0x41, 0x12, 0xb9, 0x9c, 0x0a, 0xae, 0xb8, 0x37, 0x92, 0x2f, + 0x2d, 0xb7, 0x57, 0xa6, 0xc7, 0x49, 0x42, 0x19, 0xaf, 0x99, 0xbf, 0xd6, 0x60, 0x7a, 0x2a, 0xe4, + 0x32, 0xe1, 0x12, 0x9b, 0xa7, 0x9a, 0x7d, 0x70, 0x4b, 0x13, 0x0d, 0xde, 0xe0, 0xf6, 0xbd, 0xfe, + 0xcf, 0xbe, 0xbd, 0xf8, 0xd7, 0x05, 0x34, 0xb4, 0x6d, 0x28, 0x3c, 0x1f, 0x9d, 0x6a, 0x83, 0xd0, + 0xe8, 0x7e, 0x69, 0xa1, 0x54, 0x3d, 0x1d, 0x64, 0x8f, 0xde, 0x47, 0x68, 0x2a, 0x21, 0x1d, 0x2c, + 0x41, 0x50, 0x12, 0xd3, 0xc7, 0x10, 0xe1, 0x44, 0x36, 0x70, 0x0c, 0xac, 0xa1, 0x9a, 0xfe, 0xff, + 0x16, 0x4a, 0xd5, 0x13, 0xc1, 0x64, 0x42, 0x3a, 0x3b, 0xf9, 0xfa, 0x96, 0x6c, 0xdc, 0x33, 0xab, + 0x1e, 0x41, 0xe5, 0x84, 0x32, 0xac, 0x78, 0x4a, 0x43, 0x7c, 0x08, 0xb4, 0xd1, 0x54, 0xfe, 0x09, + 0x8d, 0x7e, 0x7b, 0xe5, 0xc9, 0xb3, 0xf9, 0x81, 0xdf, 0x9f, 0xcd, 0xd7, 0x1a, 0x54, 0x35, 0x5b, + 0xfb, 0xcb, 0x21, 0x4f, 0x6a, 0x24, 0x8e, 0xb9, 0x20, 0xd7, 0x18, 0xa8, 0x43, 0x2e, 0x0e, 0xb2, + 0xc7, 0xb0, 0x49, 0x28, 0xab, 0x25, 0x44, 0x35, 0x97, 0x57, 0x21, 0x0c, 0x46, 0x13, 0xca, 0x76, + 0x35, 0xde, 0x9e, 0x81, 0xf3, 0xea, 0x68, 0x52, 0xc0, 0xa3, 0x16, 0x15, 0x3a, 0x2e, 0xca, 0x68, + 0xd2, 0x4a, 0xb0, 0x54, 0xe4, 0x00, 0xfc, 0x93, 0x86, 0xe8, 0xba, 0x23, 0x3a, 0x67, 0xe5, 0x90, + 0xd1, 0xc1, 0x32, 0xe5, 0x16, 0x6e, 0x83, 0xa9, 0x5f, 0x7f, 0xb9, 0x86, 0x9c, 0x4e, 0x1b, 0x4c, + 0xfd, 0xf4, 0xe7, 0xcf, 0x4b, 0xa5, 0x60, 0x22, 0xc3, 0xdb, 0xb2, 0x70, 0x3b, 0x1a, 0x4d, 0xab, + 0x20, 0x20, 0xe1, 0x6d, 0xb0, 0xe8, 0x38, 0x82, 0x98, 0x1c, 0xe1, 0x43, 0xca, 0x22, 0x7e, 0xe8, + 0x0f, 0x59, 0x15, 0xac, 0x81, 0xb1, 0x5f, 0xd5, 0xcb, 0x7b, 0x66, 0xd5, 0xab, 0x5a, 0x15, 0x20, + 0xe5, 0x61, 0x33, 0xd3, 0xed, 0x94, 0xf1, 0xd0, 0x1f, 0xb3, 0xa6, 0x5f, 0x3b, 0xbd, 0x1e, 0xa2, + 0x91, 0x7d, 0x50, 0x04, 0x03, 0x53, 0x82, 0xa7, 0x47, 0xfe, 0x70, 0x31, 0xad, 0xce, 0x68, 0xb0, + 0x35, 0x8b, 0xe5, 0x7d, 0x8d, 0xce, 0xc6, 0x40, 0x04, 0xa3, 0xac, 0x81, 0x05, 0x51, 0xe0, 0x9f, + 0x2e, 0x06, 0x3e, 0x92, 0xa1, 0x05, 0x44, 0x81, 0x97, 0x20, 0x9d, 0x03, 0xb8, 0x21, 0x48, 0x44, + 0x81, 0x29, 0xac, 0x9a, 0x02, 0x64, 0x93, 0xc7, 0x91, 0x8f, 0x8a, 0xd1, 0x4c, 0x24, 0xa4, 0x73, + 0xd7, 0xa1, 0xee, 0x66, 0xa0, 0x1e, 0x20, 0x4f, 0x4b, 0x6a, 0xb7, 0xa2, 0x2e, 0x48, 0xa8, 0x74, + 0xe2, 0x9e, 0x29, 0x46, 0xa5, 0x77, 0xc9, 0x6c, 0xde, 0xba, 0x03, 0xf4, 0xd6, 0xd0, 0xbc, 0xfe, + 0xaa, 0x16, 0xab, 0xb7, 0xe2, 0x3a, 0x8d, 0x63, 0x88, 0xb0, 0xf6, 0x07, 0x81, 0x75, 0x8e, 0x80, + 0x54, 0xd2, 0x3f, 0xbb, 0x50, 0xaa, 0x0e, 0x06, 0xb3, 0x09, 0xe9, 0x7c, 0xd9, 0xb5, 0xda, 0x33, + 0x46, 0x81, 0xb3, 0xf1, 0xee, 0xa2, 0x85, 0x97, 0x61, 0x04, 0xa4, 0x2d, 0xd5, 0x8b, 0x33, 0x6a, + 0x70, 0xe6, 0xfa, 0x71, 0x02, 0x6b, 0x95, 0x03, 0x3d, 0x46, 0x73, 0xf6, 0x2c, 0x09, 0x38, 0x24, + 0x22, 0x72, 0xdf, 0x4f, 0x93, 0x94, 0x0b, 0x45, 0x58, 0x08, 0xfe, 0x58, 0x31, 0x05, 0xa6, 0x0d, + 0x7a, 0x60, 0xc0, 0x8d, 0x12, 0x1b, 0x39, 0xb4, 0xf7, 0x7d, 0x09, 0x2d, 0xf6, 0x91, 0xd7, 0x01, + 0xb0, 0x80, 0x36, 0xb0, 0x56, 0x5f, 0x08, 0xe5, 0x62, 0x21, 0xcc, 0xf7, 0x84, 0xb0, 0x0e, 0x10, + 0x58, 0x82, 0x9e, 0x38, 0x00, 0x79, 0x7d, 0x61, 0x90, 0x38, 0x6d, 0x12, 0x7f, 0xbc, 0xe0, 0xd6, + 0xf7, 0xb0, 0xde, 0xd2, 0x80, 0x5e, 0x88, 0xc6, 0x15, 0x91, 0x07, 0xfd, 0x2c, 0x5e, 0x31, 0x96, + 0x31, 0x8d, 0xd8, 0x4b, 0xa2, 0x35, 0x6d, 0x93, 0x98, 0x46, 0x44, 0x71, 0x21, 0x71, 0x5b, 0x62, + 0xeb, 0x88, 0x53, 0x10, 0xa1, 0x3e, 0x46, 0x96, 0xdd, 0xff, 0x7f, 0x41, 0x4d, 0xbb, 0x1c, 0x0f, + 0xe4, 0x2d, 0x63, 0xb2, 0x6d, 0x09, 0x6c, 0x30, 0xde, 0xa7, 0x68, 0xc6, 0x94, 0x78, 0x92, 0xa4, + 0x31, 0x48, 0xac, 0x38, 0x96, 0x21, 0x89, 0x01, 0xcb, 0x90, 0x0b, 0x90, 0xfe, 0x84, 0xc9, 0xcd, + 0xf3, 0xba, 0xc8, 0x5b, 0x8b, 0x5d, 0xbe, 0xa3, 0xd7, 0x77, 0xcc, 0xb2, 0xf7, 0x31, 0x9a, 0xd6, + 0xde, 0x8a, 0xa7, 0x98, 0xb2, 0x3a, 0x08, 0x10, 0x06, 0xc2, 0xc5, 0x7e, 0xce, 0x38, 0xeb, 0xea, + 0xb0, 0xcb, 0xd3, 0x0d, 0xb7, 0xbe, 0xcb, 0x1d, 0xf3, 0x67, 0x68, 0x2e, 0xf3, 0xad, 0x73, 0x01, + 0x21, 0x91, 0xaa, 0xdf, 0x7d, 0xd2, 0xb8, 0x4f, 0x59, 0xf7, 0xf5, 0xae, 0x49, 0x8e, 0xd0, 0xc3, + 0xee, 0x0e, 0x55, 0xaf, 0xfb, 0xf9, 0x5e, 0x76, 0x77, 0x9c, 0xba, 0xbe, 0x0f, 0x51, 0x39, 0x14, + 0x40, 0x14, 0xb8, 0x16, 0x55, 0x07, 0xf0, 0xfd, 0x37, 0x6c, 0x1b, 0xa3, 0x16, 0xc9, 0xf4, 0xa6, + 0x75, 0x00, 0xef, 0x13, 0x34, 0x9d, 0x57, 0xc3, 0x08, 0xa4, 0xd9, 0x4e, 0x1d, 0x28, 0xd5, 0x11, + 0xf8, 0x53, 0x56, 0xd2, 0xcc, 0x62, 0xd5, 0x1a, 0x6c, 0x91, 0xce, 0x86, 0x5e, 0xf6, 0xbe, 0x42, + 0x65, 0x01, 0x0d, 0x2a, 0x95, 0x20, 0xba, 0x10, 0x99, 0xc0, 0x66, 0xdf, 0x30, 0xb0, 0xb1, 0x5e, + 0x24, 0x1d, 0xd9, 0x55, 0xe4, 0x45, 0x50, 0x27, 0xad, 0x58, 0xe1, 0x94, 0x34, 0x00, 0xc7, 0x34, + 0xa1, 0xca, 0x9f, 0x33, 0x11, 0x95, 0xdd, 0xca, 0x36, 0x69, 0xc0, 0x3d, 0xfd, 0xde, 0xbb, 0x84, + 0x46, 0x75, 0xd8, 0x3d, 0x96, 0x15, 0x63, 0x39, 0x92, 0x90, 0x4e, 0xd7, 0x4a, 0xef, 0xe3, 0x4b, + 0x3d, 0x0e, 0x0b, 0x08, 0xb9, 0x88, 0x9c, 0xd3, 0xbc, 0x69, 0x78, 0x53, 0xfd, 0x0d, 0x2f, 0x30, + 0x16, 0x16, 0xa1, 0x8a, 0xca, 0xfb, 0x31, 0x0f, 0x0f, 0xa4, 0x4e, 0x7e, 0x9c, 0x70, 0xa6, 0x9a, + 0xfe, 0x82, 0x61, 0x1a, 0xb5, 0xef, 0xb7, 0x41, 0x6c, 0xe9, 0xb7, 0xba, 0x02, 0xa4, 0xd9, 0xb9, + 0xb4, 0x09, 0xa7, 0xeb, 0xce, 0x85, 0x82, 0x15, 0x20, 0xb5, 0x39, 0xb1, 0x91, 0x01, 0xea, 0x0a, + 0x90, 0xd3, 0x64, 0xb9, 0xe9, 0x5f, 0x2c, 0x58, 0x01, 0x1c, 0x4b, 0x96, 0xc8, 0x7a, 0x42, 0xca, + 0x49, 0x5c, 0xfa, 0xfa, 0x8b, 0x05, 0x27, 0x24, 0xc7, 0xe1, 0xb2, 0x5d, 0xcb, 0x15, 0x1e, 0x97, + 0xeb, 0x52, 0x41, 0xb9, 0xc2, 0x57, 0xc8, 0x15, 0x1e, 0x93, 0xeb, 0x72, 0x41, 0xb9, 0xc2, 0x97, + 0xe4, 0xba, 0x8f, 0x86, 0x42, 0xcc, 0xb8, 0x48, 0xfc, 0xb7, 0x8a, 0x21, 0x9f, 0x0c, 0xef, 0x73, + 0x91, 0x78, 0xdf, 0xa2, 0x31, 0x48, 0x25, 0x8d, 0x39, 0xcb, 0xd5, 0xaf, 0x16, 0x54, 0xdf, 0xe1, + 0x65, 0xea, 0x3f, 0x40, 0x57, 0x9a, 0x24, 0xae, 0x9b, 0xa3, 0x9f, 0x0a, 0x1e, 0x82, 0x94, 0xae, + 0x6d, 0x9b, 0x69, 0x91, 0xc4, 0x12, 0x03, 0x8b, 0xb0, 0x49, 0x71, 0x7f, 0xc9, 0xe4, 0xfb, 0xa2, + 0x76, 0xd8, 0x22, 0x9d, 0x6d, 0x6b, 0x6e, 0x1a, 0x71, 0xe0, 0x8c, 0xd7, 0x58, 0x74, 0x5b, 0x9b, + 0xea, 0xc4, 0xc9, 0x22, 0x97, 0xa4, 0x0e, 0x38, 0xa2, 0x6d, 0xff, 0x9d, 0xff, 0x26, 0xf4, 0x1d, + 0x52, 0x87, 0x55, 0xda, 0xd6, 0xd5, 0x31, 0x22, 0x8a, 0x60, 0x09, 0x2c, 0xd2, 0x53, 0xa3, 0x2e, + 0x42, 0x57, 0xdf, 0xb4, 0x3a, 0x6a, 0xa4, 0x1d, 0x0b, 0xa4, 0x6b, 0x90, 0xbb, 0x54, 0x40, 0x0c, + 0x09, 0x30, 0x65, 0xcf, 0x7c, 0x9e, 0x35, 0xd7, 0xf2, 0xa2, 0xbd, 0xe6, 0xd6, 0xb7, 0x41, 0xe4, + 0x39, 0xe0, 0x9a, 0x95, 0x1e, 0xd1, 0xda, 0xae, 0x70, 0x5b, 0x7f, 0xab, 0xe1, 0x72, 0xde, 0xac, + 0x6e, 0x19, 0x0b, 0x53, 0x90, 0x35, 0x80, 0xd5, 0x6d, 0x09, 0x8d, 0x9b, 0x56, 0xa7, 0x84, 0xfe, + 0x24, 0x37, 0x8d, 0xd7, 0x8c, 0xcf, 0x98, 0x6e, 0x70, 0xe6, 0xbd, 0x1b, 0xc7, 0x39, 0x3a, 0x4f, + 0x19, 0x55, 0x94, 0xc4, 0x58, 0x40, 0x43, 0x80, 0xc2, 0x8f, 0x5a, 0x84, 0x29, 0x1a, 0x83, 0x7f, + 0xbd, 0x98, 0xd4, 0xe7, 0x1c, 0x6e, 0x60, 0x60, 0xbf, 0x70, 0xa8, 0xde, 0x37, 0x68, 0x2c, 0x35, + 0xe9, 0xdd, 0xdd, 0xd3, 0x77, 0x0b, 0x4e, 0xe9, 0xa9, 0xce, 0xf3, 0x6c, 0x47, 0x6f, 0x22, 0xbf, + 0x11, 0xf3, 0x7d, 0x12, 0xe3, 0xc3, 0x26, 0x55, 0x10, 0x53, 0xa9, 0x30, 0x30, 0xb2, 0x1f, 0x43, + 0xe4, 0xbf, 0xb7, 0x50, 0xaa, 0x0e, 0x07, 0x93, 0x76, 0x7d, 0x2f, 0x5b, 0x5e, 0xb3, 0xab, 0x7a, + 0x12, 0xb6, 0x2d, 0xd2, 0x74, 0x39, 0x2e, 0x5e, 0x01, 0x70, 0xc3, 0x00, 0xcc, 0x1a, 0xb3, 0x3b, + 0xd6, 0xea, 0x18, 0xcc, 0x1d, 0x54, 0x31, 0x6d, 0xa2, 0x93, 0x82, 0xa0, 0xba, 0x6c, 0xf4, 0x0c, + 0xd4, 0x5a, 0x09, 0xe9, 0xbf, 0x6f, 0xb6, 0x62, 0x46, 0xf7, 0x89, 0xae, 0x51, 0x36, 0x4f, 0x1b, + 0x13, 0xef, 0x87, 0x12, 0xba, 0x9c, 0x17, 0x32, 0xcc, 0x5b, 0x2a, 0xa6, 0x20, 0x70, 0x04, 0x0a, + 0xcc, 0xd4, 0xde, 0x73, 0xf7, 0xf8, 0xa0, 0x98, 0x78, 0x17, 0x73, 0x96, 0xcf, 0x2d, 0xc9, 0x6a, + 0xc6, 0xd1, 0xbd, 0x89, 0x7c, 0x57, 0x42, 0x17, 0x5e, 0x17, 0x8c, 0x1d, 0x1c, 0x3f, 0x2c, 0x16, + 0x48, 0xe5, 0x1f, 0x03, 0xb1, 0x73, 0x24, 0x45, 0x13, 0x31, 0x49, 0xf6, 0x23, 0x82, 0xb3, 0x7c, + 0x35, 0x93, 0x9b, 0xbf, 0x52, 0x8c, 0xd6, 0xb3, 0xa0, 0x1b, 0x16, 0xd3, 0x4c, 0x7b, 0x9b, 0x83, + 0xc3, 0x83, 0xe5, 0x93, 0x9b, 0x83, 0xc3, 0xd3, 0xe5, 0x99, 0xcd, 0xc1, 0xe1, 0x99, 0xf2, 0xec, + 0xe6, 0xe0, 0xf0, 0xdb, 0xe5, 0xea, 0xe6, 0xe0, 0xf0, 0x95, 0xf2, 0x92, 0xb9, 0xad, 0x1d, 0x3b, + 0x92, 0x66, 0x37, 0x31, 0xd4, 0xeb, 0xd0, 0x73, 0x64, 0xb3, 0xab, 0x43, 0xb0, 0xa8, 0x5d, 0x04, + 0x28, 0x41, 0xed, 0xe4, 0x69, 0x2f, 0x3f, 0x98, 0x71, 0x16, 0x82, 0x74, 0xd9, 0xe1, 0xb2, 0xaa, + 0xef, 0xca, 0x11, 0x41, 0x48, 0x8e, 0xcc, 0x4d, 0x36, 0xb8, 0xf4, 0x5a, 0x08, 0x57, 0xd8, 0x6f, + 0x07, 0x4f, 0x9e, 0x57, 0x4a, 0x4f, 0x9f, 0x57, 0x4a, 0x7f, 0x3c, 0xaf, 0x94, 0x7e, 0x7c, 0x51, + 0x19, 0x78, 0xfa, 0xa2, 0x32, 0xf0, 0xdb, 0x8b, 0xca, 0xc0, 0xc3, 0x9b, 0xff, 0x52, 0x98, 0x4e, + 0xad, 0xfb, 0xe3, 0x8c, 0x3a, 0x4a, 0x41, 0xee, 0x0f, 0x99, 0xdf, 0x51, 0x6e, 0xfc, 0x1d, 0x00, + 0x00, 0xff, 0xff, 0x0f, 0x68, 0x46, 0x6e, 0xb6, 0x11, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -416,9 +414,9 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l { - size := m.SortitionLambdaPenalty.Size() + size := m.LambdaInitialScore.Size() i -= size - if _, err := m.SortitionLambdaPenalty.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.LambdaInitialScore.MarshalTo(dAtA[i:]); err != nil { return 0, err } i = encodeVarintParams(dAtA, i, uint64(size)) @@ -1018,7 +1016,7 @@ func (m *Params) Size() (n int) { n += 2 + l + sovParams(uint64(l)) l = m.InferenceOutlierDetectionAlpha.Size() n += 2 + l + sovParams(uint64(l)) - l = m.SortitionLambdaPenalty.Size() + l = m.LambdaInitialScore.Size() n += 2 + l + sovParams(uint64(l)) return n } @@ -2377,7 +2375,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 55: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SortitionLambdaPenalty", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LambdaInitialScore", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -2405,7 +2403,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.SortitionLambdaPenalty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.LambdaInitialScore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/emissions/types/params_test.go b/x/emissions/types/params_test.go index 7178858c5..2af0cce26 100644 --- a/x/emissions/types/params_test.go +++ b/x/emissions/types/params_test.go @@ -58,7 +58,7 @@ func TestDefaultParams(t *testing.T) { MinExperiencedWorkerRegrets: uint64(10), InferenceOutlierDetectionThreshold: alloraMath.MustNewDecFromString("11"), InferenceOutlierDetectionAlpha: alloraMath.MustNewDecFromString("0.2"), - SortitionLambdaPenalty: alloraMath.MustNewDecFromString("2"), + LambdaInitialScore: alloraMath.MustNewDecFromString("2"), } params := DefaultParams() diff --git a/x/emissions/types/tx.pb.go b/x/emissions/types/tx.pb.go index 7ae3ccf75..df7f52fcf 100644 --- a/x/emissions/types/tx.pb.go +++ b/x/emissions/types/tx.pb.go @@ -88,7 +88,7 @@ type OptionalParams struct { MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` InferenceOutlierDetectionThreshold []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,53,rep,name=inference_outlier_detection_threshold,json=inferenceOutlierDetectionThreshold,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_threshold"` InferenceOutlierDetectionAlpha []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,54,rep,name=inference_outlier_detection_alpha,json=inferenceOutlierDetectionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"inference_outlier_detection_alpha"` - SortitionLambdaPenalty []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,rep,name=sortition_lambda_penalty,json=sortitionLambdaPenalty,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"sortition_lambda_penalty"` + LambdaInitialScore []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,55,rep,name=lambda_initial_score,json=lambdaInitialScore,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"lambda_initial_score"` } func (m *OptionalParams) Reset() { *m = OptionalParams{} } @@ -3022,208 +3022,208 @@ func init() { func init() { proto.RegisterFile("emissions/v7/tx.proto", fileDescriptor_25da82f6ba30300b) } var fileDescriptor_25da82f6ba30300b = []byte{ - // 3214 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0x4b, 0x70, 0x1c, 0x47, - 0x19, 0xf6, 0x58, 0x6b, 0x69, 0xf5, 0x4b, 0x96, 0xd6, 0x6d, 0x49, 0x1e, 0xad, 0xde, 0x2b, 0x3f, - 0xd6, 0x26, 0xd6, 0x3a, 0xb6, 0x13, 0x87, 0xc0, 0x01, 0x3b, 0xb2, 0x83, 0x54, 0xb6, 0xa3, 0x8c, - 0x94, 0x98, 0x72, 0x52, 0x4c, 0x5a, 0x33, 0xad, 0xd5, 0xa0, 0x79, 0x6c, 0x7a, 0x66, 0xf5, 0x48, - 0x85, 0x02, 0x5c, 0x95, 0x0b, 0x54, 0x01, 0x27, 0x0e, 0x40, 0x71, 0xe6, 0x44, 0xe5, 0x00, 0x17, - 0x4e, 0x1c, 0x73, 0x4c, 0x71, 0xa2, 0x38, 0xa4, 0xa8, 0xe4, 0x90, 0x2b, 0x67, 0x4e, 0x54, 0x3f, - 0xe6, 0xb9, 0x3b, 0x2b, 0xc9, 0x23, 0xa7, 0x72, 0x49, 0x3c, 0xdd, 0x7f, 0x7f, 0xdf, 0xd7, 0x7f, - 0xff, 0xfd, 0x77, 0xff, 0xbd, 0x25, 0x18, 0x27, 0x8e, 0xe5, 0xfb, 0x96, 0xe7, 0xfa, 0x8d, 0xdd, - 0x3b, 0x8d, 0x60, 0x7f, 0xa9, 0x45, 0xbd, 0xc0, 0x43, 0xc3, 0x51, 0xf3, 0xd2, 0xee, 0x9d, 0xea, - 0x39, 0xec, 0x58, 0xae, 0xd7, 0xe0, 0xff, 0x15, 0x06, 0xd5, 0x0b, 0x86, 0xe7, 0x3b, 0x9e, 0xdf, - 0x70, 0xfc, 0x66, 0x63, 0xf7, 0x65, 0xf6, 0x3f, 0xd9, 0x31, 0x29, 0x3a, 0x74, 0xfe, 0xd5, 0x10, - 0x1f, 0xb2, 0xab, 0x9a, 0xe0, 0xba, 0xd5, 0xa0, 0xa4, 0xd5, 0x0e, 0x08, 0x0d, 0x87, 0xa5, 0xfa, - 0xf6, 0x3c, 0xba, 0x13, 0x75, 0x8d, 0x35, 0xbd, 0xa6, 0x27, 0xe0, 0xd8, 0xbf, 0x44, 0x6b, 0xed, - 0x7f, 0x0b, 0x30, 0xf2, 0x56, 0x2b, 0xb0, 0x3c, 0x17, 0xdb, 0x6b, 0x98, 0x62, 0xc7, 0x47, 0x2a, - 0x0c, 0xec, 0x12, 0xca, 0x40, 0x54, 0x65, 0xbe, 0xaf, 0x3e, 0xa8, 0x85, 0x9f, 0xe8, 0xbb, 0x30, - 0xe9, 0xe0, 0x7d, 0xdd, 0x27, 0xd4, 0xc2, 0xb6, 0xf5, 0x11, 0x31, 0x75, 0xc7, 0x6f, 0xea, 0x36, - 0x71, 0x9b, 0xc1, 0xb6, 0x7a, 0x7a, 0xbe, 0xaf, 0xde, 0xa7, 0x4d, 0x38, 0x78, 0x7f, 0x3d, 0xea, - 0x7f, 0xe4, 0x37, 0x1f, 0xf2, 0x5e, 0x84, 0xa1, 0xe2, 0x58, 0xae, 0x1e, 0x78, 0x2d, 0xcb, 0xd0, - 0xf7, 0x88, 0xd5, 0xdc, 0x0e, 0xd4, 0x3e, 0x86, 0x7e, 0xef, 0xce, 0x67, 0x5f, 0xcc, 0x9d, 0xfa, - 0xf7, 0x17, 0x73, 0x8d, 0xa6, 0x15, 0x6c, 0xb7, 0x37, 0x97, 0x0c, 0xcf, 0x69, 0x60, 0xdb, 0xf6, - 0x28, 0xbe, 0xee, 0x92, 0x80, 0x4d, 0x21, 0xfc, 0x34, 0xb6, 0xb1, 0xe5, 0x36, 0x1c, 0x1c, 0x6c, - 0x2f, 0x2d, 0x13, 0x43, 0x1b, 0x71, 0x2c, 0x77, 0x83, 0xe1, 0x3d, 0xe1, 0x70, 0x68, 0x0b, 0x26, - 0x28, 0xf9, 0xb0, 0x6d, 0x51, 0xa6, 0xcb, 0x72, 0x2d, 0xa7, 0xed, 0xe8, 0x7e, 0x80, 0x77, 0x88, - 0x7a, 0x86, 0x13, 0xdd, 0x90, 0x44, 0xe3, 0xc2, 0x9b, 0xbe, 0xb9, 0xb3, 0x64, 0x79, 0x02, 0x6e, - 0xc5, 0x0d, 0xfe, 0xf9, 0xd7, 0xeb, 0x20, 0xdd, 0xbc, 0xe2, 0x06, 0x7f, 0xfe, 0xfa, 0xd3, 0x6b, - 0x8a, 0x36, 0x16, 0xe2, 0x3d, 0x12, 0x70, 0xeb, 0x0c, 0x8d, 0x79, 0x81, 0x12, 0xc7, 0xdb, 0x25, - 0x02, 0x5d, 0x37, 0x89, 0x8d, 0x0f, 0xf4, 0x3d, 0xcb, 0x35, 0xbd, 0x3d, 0xb5, 0x5f, 0x78, 0x41, - 0x18, 0x70, 0xfb, 0x65, 0xd6, 0xfd, 0x84, 0xf7, 0xa2, 0xba, 0xf0, 0x02, 0x69, 0x79, 0xc6, 0x76, - 0xe8, 0xb7, 0x01, 0x3e, 0x82, 0x4d, 0xe6, 0x3e, 0x6b, 0x96, 0xfe, 0x7a, 0x0a, 0xc3, 0x9b, 0x24, - 0xc0, 0x3a, 0x71, 0x03, 0xea, 0xb5, 0x0e, 0xd4, 0x72, 0x31, 0x5f, 0x0d, 0x31, 0xb0, 0xfb, 0x02, - 0x0b, 0xbd, 0x0f, 0x67, 0x6d, 0x82, 0xa9, 0x6b, 0xb9, 0x4d, 0x9d, 0xe2, 0x80, 0xa8, 0x83, 0xc5, - 0xc0, 0x87, 0x43, 0x34, 0x0d, 0x07, 0x04, 0x39, 0xc0, 0x62, 0x40, 0x6f, 0x52, 0x6c, 0x5a, 0xc4, - 0x0d, 0xf4, 0x60, 0x9b, 0x12, 0x7f, 0xdb, 0xb3, 0x4d, 0x15, 0x8a, 0xd1, 0x8c, 0x39, 0x78, 0xff, - 0x4d, 0x89, 0xba, 0x11, 0x82, 0x22, 0x02, 0x88, 0xb9, 0x54, 0x2c, 0xc5, 0x16, 0xc5, 0x06, 0x8b, - 0x65, 0x75, 0xa8, 0x18, 0x15, 0x5b, 0x25, 0xbe, 0x78, 0x0f, 0x24, 0x20, 0xba, 0x0f, 0x73, 0x6c, - 0x56, 0x6d, 0x77, 0xab, 0x6d, 0x6f, 0x59, 0xb6, 0x4d, 0x4c, 0x5d, 0xec, 0x2e, 0x9d, 0xc5, 0x08, - 0xf1, 0x03, 0x5f, 0x3d, 0x3b, 0xdf, 0x57, 0x2f, 0x69, 0xd3, 0x0e, 0xde, 0x7f, 0x27, 0xb6, 0x7a, - 0xc2, 0x8d, 0x34, 0x69, 0x83, 0xde, 0x84, 0xf9, 0x2c, 0x8c, 0xdc, 0xc0, 0x31, 0xce, 0x08, 0xc7, - 0x99, 0x49, 0xe3, 0x68, 0xc2, 0x2a, 0x02, 0xfa, 0x08, 0x66, 0xc4, 0x5e, 0xa2, 0x64, 0x0f, 0x53, - 0x53, 0xce, 0xdf, 0x72, 0x5a, 0x1e, 0x0d, 0xb0, 0x6b, 0x10, 0x75, 0xb4, 0x98, 0x07, 0xaa, 0x1c, - 0x5d, 0xe3, 0xe0, 0xdc, 0x13, 0x2b, 0x11, 0x34, 0xfa, 0x44, 0x81, 0xc5, 0x14, 0xf9, 0x16, 0x21, - 0x3a, 0x25, 0xbb, 0xc4, 0x6d, 0xa7, 0x24, 0x54, 0x8a, 0x49, 0x98, 0x4b, 0x48, 0x78, 0x40, 0x88, - 0x26, 0x08, 0x12, 0x3a, 0x08, 0xa0, 0x94, 0x0c, 0x6c, 0xb7, 0xb6, 0xb1, 0x7a, 0xae, 0xe0, 0xd2, - 0x27, 0x58, 0xef, 0x32, 0x40, 0x64, 0xc0, 0xb9, 0x00, 0xfb, 0x3b, 0x69, 0x16, 0x54, 0x8c, 0x65, - 0x94, 0x21, 0x26, 0x49, 0x98, 0x4f, 0x77, 0xb1, 0x6d, 0x99, 0x38, 0xf0, 0xa8, 0xaf, 0xef, 0xfa, - 0xba, 0x18, 0xa8, 0xb7, 0x08, 0x35, 0xd8, 0x36, 0x12, 0xec, 0xea, 0xf9, 0x82, 0x3e, 0x8d, 0x39, - 0xde, 0xf5, 0xef, 0x72, 0x93, 0x35, 0x41, 0x20, 0xc4, 0xa0, 0xef, 0xc3, 0x14, 0x4f, 0xf1, 0xd8, - 0x69, 0xd9, 0xc4, 0xd7, 0x03, 0x4f, 0xf7, 0x0d, 0x6c, 0x13, 0xdd, 0x37, 0x3c, 0x4a, 0x7c, 0x75, - 0x8c, 0xc7, 0xe6, 0x05, 0x96, 0xe4, 0x85, 0xc5, 0x86, 0xb7, 0xce, 0xfa, 0xd7, 0x79, 0x37, 0x7a, - 0x1d, 0xaa, 0x6c, 0x74, 0xe0, 0xb5, 0x74, 0xcb, 0xdd, 0x22, 0x94, 0x50, 0x0e, 0x21, 0xb5, 0x8f, - 0xf3, 0xc1, 0x2c, 0x3b, 0x6c, 0x78, 0xad, 0x15, 0xd9, 0xbf, 0xe1, 0x49, 0xe6, 0x1f, 0xc0, 0x4c, - 0x38, 0x76, 0xcb, 0xa3, 0xc4, 0xc0, 0x7e, 0x90, 0x1e, 0x3e, 0xc1, 0x87, 0x4f, 0x8a, 0xe1, 0x0f, - 0x62, 0x93, 0x08, 0x21, 0xc1, 0x2e, 0x37, 0x55, 0x72, 0xf8, 0x85, 0x24, 0xbb, 0xdc, 0x4e, 0xf1, - 0xd8, 0xa7, 0x50, 0x31, 0x28, 0xc1, 0x01, 0x91, 0x47, 0xd4, 0x16, 0x21, 0xaa, 0xfa, 0x9c, 0xc7, - 0xc6, 0x88, 0x40, 0xe2, 0x67, 0xd3, 0x03, 0x42, 0xd0, 0xf7, 0xa0, 0x1a, 0x65, 0x43, 0x93, 0xf8, - 0x7c, 0x39, 0x99, 0x50, 0x8b, 0x29, 0x50, 0x27, 0x85, 0x4b, 0x43, 0x8b, 0x65, 0x61, 0xf0, 0x08, - 0xef, 0xaf, 0xb0, 0x6e, 0xf4, 0x1e, 0x54, 0x28, 0x69, 0x5a, 0x7e, 0x40, 0x31, 0x4b, 0x44, 0x5c, - 0xd8, 0xf4, 0x73, 0x0a, 0x1b, 0x4d, 0x22, 0x31, 0x65, 0x2f, 0x01, 0x32, 0xc9, 0x16, 0x6e, 0xdb, - 0x81, 0xde, 0xc2, 0x4d, 0xa2, 0xdb, 0x96, 0x63, 0x05, 0xea, 0x0c, 0x57, 0x54, 0x91, 0x3d, 0x6b, - 0xb8, 0x49, 0x1e, 0xb2, 0x76, 0x74, 0x11, 0x46, 0x98, 0xec, 0x84, 0xe5, 0x2c, 0xb7, 0x1c, 0x76, - 0xf0, 0x7e, 0x6c, 0xc5, 0xd6, 0x31, 0x73, 0xc6, 0xe9, 0x94, 0x18, 0x1e, 0x35, 0xe5, 0xa0, 0x39, - 0x7e, 0xe0, 0x4d, 0xa6, 0x0f, 0x3c, 0x8d, 0x5b, 0x08, 0x84, 0x3a, 0x54, 0x36, 0x6d, 0xcf, 0xd8, - 0xf1, 0x59, 0xf0, 0xeb, 0x8e, 0xe7, 0x06, 0xdb, 0xea, 0x3c, 0x67, 0x1a, 0x11, 0xed, 0x6b, 0x84, - 0x3e, 0x62, 0xad, 0x2c, 0x03, 0xb4, 0xc2, 0x7d, 0x29, 0x02, 0x8e, 0xe5, 0x9d, 0x85, 0x82, 0x19, - 0xa0, 0x25, 0x62, 0x62, 0x25, 0x04, 0x64, 0x19, 0x20, 0xa2, 0x09, 0x63, 0x53, 0xad, 0x15, 0xcc, - 0x00, 0x92, 0x25, 0x0c, 0x64, 0x76, 0x43, 0x8a, 0x48, 0x64, 0xf8, 0xaa, 0x8b, 0x05, 0x6f, 0x48, - 0x92, 0x43, 0x46, 0x3b, 0x73, 0x97, 0xd1, 0xe9, 0xae, 0x8b, 0x05, 0xdd, 0x65, 0x74, 0x71, 0x97, - 0xd1, 0xe1, 0xae, 0x4b, 0x05, 0xdd, 0x65, 0x64, 0xdc, 0xf5, 0x18, 0xfa, 0x0d, 0xdd, 0xf5, 0xa8, - 0xa3, 0x5e, 0x2e, 0x86, 0x7c, 0xc6, 0x78, 0xec, 0x51, 0x07, 0x7d, 0x00, 0xa3, 0xa4, 0xe5, 0x5b, - 0xb6, 0xe7, 0x46, 0xde, 0xaf, 0x17, 0xf4, 0xbe, 0xc4, 0x0b, 0xbd, 0xff, 0x2e, 0x5c, 0xdd, 0xc6, - 0xf6, 0x16, 0xdf, 0xfa, 0x2d, 0xea, 0x19, 0xc4, 0xf7, 0xe5, 0xb1, 0xcd, 0x6f, 0x8b, 0xd8, 0xf6, - 0x75, 0xe2, 0x9a, 0x3a, 0x0f, 0x71, 0xf5, 0x1a, 0x8f, 0xf7, 0x45, 0x36, 0xe0, 0x11, 0xde, 0x5f, - 0x13, 0xe6, 0xfc, 0x20, 0xd6, 0xa4, 0xf1, 0x7d, 0xd7, 0xbc, 0xc7, 0x4c, 0x59, 0xea, 0x32, 0x71, - 0x80, 0x75, 0x9f, 0xb8, 0x26, 0xbb, 0xd2, 0xb1, 0x0c, 0xf1, 0x9d, 0xe7, 0x4d, 0x5d, 0x0c, 0x69, - 0x5d, 0x00, 0xb1, 0x04, 0x81, 0xa1, 0x12, 0x7a, 0xc5, 0xc7, 0x5b, 0x44, 0x37, 0xad, 0x5d, 0xf5, - 0xa5, 0x93, 0x71, 0xcb, 0x3a, 0xde, 0x22, 0xcb, 0xd6, 0x6e, 0x58, 0x54, 0x10, 0x9b, 0x38, 0xc4, - 0x0d, 0xc4, 0x9e, 0x8f, 0xa2, 0xe6, 0x7a, 0x94, 0xb4, 0xef, 0xcb, 0xfe, 0x35, 0x42, 0xa3, 0x18, - 0x90, 0x87, 0x15, 0xbb, 0xa2, 0xed, 0xca, 0xc4, 0x2d, 0xc6, 0x0b, 0x1f, 0x2e, 0x45, 0x87, 0xd5, - 0x5d, 0x6e, 0xc1, 0x13, 0x32, 0x03, 0x10, 0x7e, 0xbb, 0x06, 0xe7, 0xf8, 0x51, 0x17, 0x50, 0xe6, - 0x35, 0x79, 0x1b, 0x6f, 0xf0, 0x31, 0xa3, 0xec, 0x80, 0xe3, 0xed, 0xf2, 0x3a, 0xee, 0xc1, 0x05, - 0xcb, 0xb5, 0x02, 0x0b, 0xdb, 0x3a, 0x25, 0x4d, 0x4a, 0x02, 0xfd, 0xc3, 0x36, 0x76, 0x03, 0xcb, - 0x26, 0xea, 0x8d, 0x62, 0xee, 0x18, 0x97, 0xb8, 0x1a, 0x87, 0x7d, 0x5b, 0xa2, 0xa2, 0x1f, 0xc3, - 0x68, 0x8b, 0x87, 0x77, 0xec, 0xf7, 0x97, 0x0b, 0xde, 0xd2, 0x5b, 0x2c, 0xce, 0x43, 0xaf, 0xbf, - 0x06, 0x6a, 0xd3, 0xf6, 0x36, 0xb1, 0xad, 0xef, 0x6d, 0x5b, 0x01, 0xb1, 0x2d, 0x3f, 0xd0, 0x89, - 0x8b, 0x37, 0x6d, 0x62, 0xaa, 0x37, 0xe7, 0xfb, 0xea, 0x65, 0x6d, 0x42, 0xf4, 0x3f, 0x09, 0xbb, - 0xef, 0x8b, 0x5e, 0x76, 0x13, 0x16, 0x47, 0x24, 0x3f, 0xe5, 0x3c, 0xda, 0x05, 0xe0, 0x16, 0x07, - 0x98, 0xe6, 0x66, 0x6f, 0x08, 0xab, 0x0e, 0x98, 0x37, 0x60, 0x96, 0x1f, 0x13, 0xfb, 0x2d, 0x42, - 0x2d, 0x96, 0x36, 0x12, 0x17, 0x6a, 0xe6, 0x09, 0x5f, 0xbd, 0xcd, 0x97, 0x62, 0x8a, 0x9d, 0x13, - 0xb1, 0x51, 0x78, 0x9f, 0xe6, 0x26, 0xe8, 0x97, 0x0a, 0x5c, 0x8a, 0x12, 0x99, 0xee, 0xb5, 0x03, - 0xdb, 0x22, 0x54, 0x37, 0x49, 0x40, 0xf8, 0xad, 0x3d, 0x51, 0x7b, 0xbc, 0x52, 0xcc, 0x79, 0xb5, - 0x88, 0xe5, 0x2d, 0x41, 0xb2, 0x1c, 0x72, 0xc4, 0x95, 0xc8, 0x33, 0x05, 0x16, 0x7a, 0x89, 0x11, - 0x17, 0xc7, 0x57, 0x8b, 0x09, 0x99, 0xcd, 0x15, 0x22, 0xee, 0x91, 0x1f, 0x82, 0xea, 0x7b, 0x34, - 0xb0, 0x38, 0xa3, 0x8d, 0x9d, 0x4d, 0x93, 0x5d, 0x21, 0x5d, 0x6c, 0x07, 0x07, 0xea, 0x9d, 0x62, - 0xd4, 0x13, 0x11, 0xf0, 0x43, 0x8e, 0xbb, 0x26, 0x60, 0x57, 0x4b, 0xe5, 0x52, 0xe5, 0xcc, 0x6a, - 0xa9, 0x5c, 0xad, 0x4c, 0xad, 0x96, 0xca, 0x53, 0x95, 0xe9, 0xd5, 0x52, 0xf9, 0x4a, 0xa5, 0xbe, - 0x5a, 0x2a, 0x5f, 0xad, 0x5c, 0xe3, 0x55, 0x5b, 0xc7, 0xd6, 0xe4, 0xab, 0xaa, 0x93, 0xad, 0x2d, - 0x92, 0xd8, 0xba, 0x61, 0x09, 0xa1, 0x2d, 0xb2, 0x21, 0x94, 0x04, 0xd4, 0x12, 0x37, 0x50, 0x51, - 0x04, 0xe9, 0xae, 0xe7, 0x1a, 0xc4, 0x97, 0x51, 0x22, 0xa3, 0x2b, 0x55, 0x7a, 0x98, 0xc4, 0xc0, - 0x07, 0xbc, 0xa2, 0xd5, 0x2e, 0xf6, 0x84, 0x90, 0x09, 0xbe, 0xd6, 0x82, 0xf3, 0xef, 0xb4, 0x4c, - 0x1c, 0x10, 0xf1, 0xf2, 0x21, 0x8b, 0x2b, 0x34, 0x01, 0xfd, 0x2c, 0x97, 0x12, 0xaa, 0x2a, 0xf3, - 0x4a, 0x7d, 0x50, 0x93, 0x5f, 0xe8, 0x36, 0xf4, 0xb7, 0xb8, 0xa1, 0x7a, 0x7a, 0x5e, 0xa9, 0x0f, - 0xdd, 0x9c, 0x5e, 0x4a, 0x3e, 0xef, 0x2c, 0xa5, 0x9f, 0x51, 0x34, 0x69, 0xfb, 0xfa, 0xd0, 0xb3, - 0xaf, 0x3f, 0xbd, 0x26, 0x21, 0x6a, 0x13, 0x30, 0x96, 0x66, 0xf4, 0x5b, 0x9e, 0xeb, 0x93, 0xda, - 0xdf, 0x06, 0x61, 0x9c, 0xef, 0x14, 0xf2, 0x98, 0xec, 0x6d, 0x88, 0x0a, 0x44, 0x88, 0x51, 0x61, - 0x40, 0x6e, 0x34, 0xa9, 0x26, 0xfc, 0x44, 0x55, 0x28, 0x3b, 0x24, 0xc0, 0x2c, 0x63, 0x73, 0x41, - 0x83, 0x5a, 0xf4, 0x8d, 0xe6, 0x60, 0xc8, 0xf6, 0x7c, 0x5f, 0x77, 0x48, 0xb0, 0xed, 0x99, 0x6a, - 0x89, 0x77, 0x03, 0x6b, 0x7a, 0xc4, 0x5b, 0xd0, 0x02, 0x0c, 0x67, 0x5e, 0x21, 0x94, 0x7a, 0x9f, - 0x36, 0x44, 0x12, 0x4f, 0x10, 0x75, 0xa8, 0x34, 0xa9, 0xd7, 0x76, 0x4d, 0x3d, 0xa0, 0xed, 0x60, - 0x5b, 0xb7, 0x71, 0x53, 0x2d, 0x73, 0xb3, 0x11, 0xd1, 0xbe, 0xc1, 0x9a, 0x1f, 0xe2, 0x26, 0x3b, - 0x8b, 0x45, 0xb2, 0x52, 0x81, 0x11, 0x15, 0x38, 0x8b, 0x79, 0x8e, 0x42, 0x4f, 0x61, 0x98, 0x6f, - 0x16, 0x99, 0x0a, 0xd4, 0xa1, 0x62, 0xa8, 0x43, 0x1c, 0x4c, 0xe4, 0x0c, 0x74, 0x09, 0x46, 0x98, - 0xd5, 0x9e, 0xee, 0x92, 0x26, 0x66, 0xc1, 0xa7, 0x0e, 0xcf, 0x2b, 0xf5, 0xb2, 0x76, 0x96, 0xb7, - 0x3e, 0x96, 0x8d, 0xe8, 0x6d, 0x18, 0x90, 0xe7, 0x94, 0x7a, 0xb6, 0x18, 0x7b, 0x88, 0xc3, 0x52, - 0xae, 0xcc, 0x70, 0x7e, 0x7b, 0x53, 0x06, 0x4e, 0xf8, 0x6c, 0x34, 0xc2, 0xfd, 0x3a, 0x21, 0xfa, - 0xd7, 0xa3, 0x6e, 0xf9, 0x6c, 0xb4, 0x03, 0xe3, 0x0e, 0xa1, 0x56, 0xa0, 0xc7, 0x5b, 0x5b, 0x24, - 0x93, 0xd1, 0x62, 0xd2, 0xce, 0x73, 0xd4, 0xf5, 0x10, 0x54, 0x64, 0x10, 0x0f, 0x2e, 0xc8, 0x03, - 0x55, 0x96, 0x70, 0xf1, 0x51, 0x57, 0x29, 0x46, 0x37, 0x2e, 0x70, 0x65, 0xe5, 0x17, 0x1d, 0x75, - 0x6d, 0xa8, 0x4a, 0xc2, 0xb8, 0xee, 0x8b, 0x39, 0xcf, 0x15, 0xe3, 0x54, 0x05, 0x74, 0x5c, 0x2e, - 0x46, 0xb4, 0xf1, 0x3c, 0xc3, 0x17, 0x98, 0x88, 0x13, 0x9d, 0xc8, 0x3c, 0xe5, 0xbd, 0x2f, 0x22, - 0x7c, 0x15, 0x2e, 0x88, 0x03, 0x32, 0x3c, 0xe8, 0xa2, 0x83, 0x53, 0x3d, 0xcf, 0x43, 0x70, 0x5c, - 0x74, 0x8b, 0x23, 0x2e, 0x3a, 0x30, 0x59, 0xdc, 0xc8, 0x71, 0xa1, 0xd0, 0x78, 0xe0, 0x18, 0x1f, - 0x38, 0x21, 0xfa, 0x25, 0x61, 0x34, 0xf2, 0xf5, 0x61, 0x96, 0x7a, 0xc2, 0x7c, 0xb1, 0x5a, 0x2a, - 0xf7, 0x55, 0x4a, 0xab, 0xa5, 0xf2, 0x99, 0x4a, 0xff, 0x6a, 0xa9, 0xdc, 0x5f, 0x19, 0x58, 0x2d, - 0x95, 0x07, 0x2b, 0x20, 0xd2, 0x82, 0x6e, 0x7b, 0x4d, 0xcb, 0xd0, 0x46, 0xe3, 0x03, 0x4c, 0x34, - 0x54, 0xe2, 0x06, 0x91, 0x4b, 0xb4, 0xa1, 0xb0, 0x62, 0xc4, 0xb4, 0x59, 0xbb, 0x05, 0x13, 0xd9, - 0xb4, 0x25, 0x32, 0x1a, 0x9a, 0x84, 0xb2, 0xc8, 0xd0, 0x96, 0xc9, 0x13, 0x57, 0x49, 0x1b, 0xe0, - 0xdf, 0x2b, 0x66, 0xed, 0x77, 0x0a, 0x4c, 0xad, 0xb8, 0x3e, 0xa1, 0x81, 0x54, 0xbc, 0x86, 0x0f, - 0x6c, 0x0f, 0x9b, 0x87, 0xe5, 0x5f, 0x0d, 0xc6, 0x42, 0x0f, 0xec, 0x62, 0xbb, 0x4d, 0xf4, 0xcd, - 0xb6, 0x6b, 0xda, 0x44, 0x66, 0xe3, 0xf9, 0x64, 0x36, 0xbe, 0xb5, 0x24, 0xa1, 0xdf, 0x65, 0x86, - 0xf7, 0xb8, 0x9d, 0x86, 0x68, 0x47, 0x5b, 0x3a, 0x3b, 0xcf, 0xc2, 0x74, 0x77, 0x5d, 0x32, 0x4b, - 0xff, 0x46, 0x81, 0xaa, 0x30, 0x10, 0x6b, 0x74, 0x44, 0xdd, 0x0f, 0x01, 0xc9, 0x15, 0xe7, 0xf7, - 0xf4, 0x94, 0xea, 0xd9, 0xb4, 0x6a, 0x81, 0xbb, 0x8c, 0x03, 0x2c, 0x35, 0x57, 0xf6, 0x32, 0x2d, - 0x69, 0xc5, 0x33, 0xa1, 0x27, 0x33, 0x82, 0xa4, 0xe0, 0xbf, 0x28, 0x30, 0xaa, 0xf1, 0x9a, 0x3f, - 0x7a, 0x3a, 0xcc, 0x55, 0x99, 0x5c, 0xb0, 0x52, 0x6a, 0xc1, 0xd0, 0x18, 0x9c, 0xf1, 0xf6, 0x5c, - 0x42, 0xd5, 0x33, 0x7c, 0x84, 0xf8, 0x40, 0x33, 0x00, 0x56, 0x74, 0x96, 0xaa, 0xfd, 0x3c, 0x12, - 0x07, 0x2d, 0x5f, 0xfa, 0x2e, 0xa5, 0x73, 0xb5, 0x54, 0x3e, 0x5d, 0xe9, 0x13, 0x11, 0xa8, 0x0d, - 0xd9, 0xd6, 0xa6, 0xde, 0xba, 0xd9, 0xd2, 0x77, 0xc8, 0x81, 0x76, 0xd6, 0x69, 0xdb, 0x81, 0xa5, - 0x63, 0xd3, 0xa4, 0xc4, 0xf7, 0x6b, 0x0f, 0xa0, 0x12, 0xeb, 0x95, 0x91, 0xa4, 0xc2, 0x80, 0xdf, - 0x36, 0x58, 0xfd, 0xc3, 0x15, 0x97, 0xb5, 0xf0, 0x93, 0xf5, 0x38, 0xc4, 0xf7, 0x71, 0x93, 0xc8, - 0x03, 0x30, 0xfc, 0xac, 0x7d, 0x04, 0x93, 0xbc, 0x4e, 0x22, 0x5a, 0xe2, 0xc5, 0xe3, 0x38, 0x1e, - 0x38, 0x9d, 0xf6, 0x40, 0x7a, 0xae, 0x7d, 0xbd, 0xe6, 0x5a, 0x5b, 0x83, 0x6a, 0x37, 0xee, 0x02, - 0xb3, 0xf9, 0x83, 0x02, 0xa3, 0x77, 0x4d, 0x53, 0x96, 0x7f, 0xcf, 0x3d, 0x89, 0x1f, 0x42, 0x3f, - 0x76, 0xbc, 0xb6, 0x1b, 0xf0, 0x09, 0x3c, 0x4f, 0x79, 0x28, 0xc7, 0xa7, 0xe7, 0x8b, 0xa0, 0x12, - 0x8b, 0x93, 0x81, 0xf7, 0x27, 0x05, 0x90, 0x16, 0xff, 0x06, 0xf2, 0xed, 0x13, 0x3d, 0x0e, 0xe7, - 0x53, 0xfa, 0xa4, 0xee, 0xa7, 0xa0, 0xbe, 0x81, 0x5d, 0x83, 0xd8, 0x27, 0x22, 0x3e, 0x4d, 0x39, - 0x05, 0x93, 0x5d, 0xb0, 0x25, 0xf1, 0xdf, 0x15, 0x18, 0x5b, 0x26, 0x36, 0xbb, 0x7e, 0x14, 0x76, - 0x99, 0x0a, 0x03, 0xc9, 0x48, 0x1d, 0xd4, 0xc2, 0xcf, 0x84, 0x33, 0x4b, 0x27, 0xe9, 0xcc, 0x0b, - 0x30, 0x9e, 0xd1, 0x2e, 0x67, 0xf5, 0x0f, 0x25, 0xdc, 0x0b, 0xc7, 0x9a, 0x5b, 0x62, 0x02, 0xa7, - 0xd3, 0x13, 0x48, 0xce, 0xba, 0x2f, 0x2f, 0x50, 0x4e, 0x74, 0x6e, 0x33, 0x30, 0xd5, 0x75, 0x06, - 0x72, 0x86, 0xbf, 0x57, 0x60, 0x3e, 0xb9, 0xaa, 0x27, 0xb5, 0x86, 0xd3, 0x30, 0x68, 0x0a, 0x28, - 0x2f, 0x5c, 0xc5, 0xb8, 0x21, 0xe9, 0xa0, 0x52, 0xca, 0x41, 0x69, 0xed, 0x8b, 0xb0, 0xd0, 0x43, - 0x9b, 0x9c, 0xc1, 0x2e, 0x5b, 0xa2, 0x3d, 0x4c, 0xcd, 0x17, 0x1e, 0x7e, 0x5d, 0x1c, 0xdb, 0x85, - 0x57, 0xca, 0xfa, 0xa3, 0x02, 0x95, 0x07, 0xac, 0xc8, 0x48, 0x16, 0x43, 0xdf, 0x9e, 0xfc, 0x71, - 0x1e, 0xce, 0x25, 0xd4, 0x49, 0xcd, 0xef, 0x41, 0xf5, 0xae, 0x69, 0x6e, 0x78, 0xd1, 0x0d, 0xec, - 0xae, 0xe9, 0x58, 0xee, 0x11, 0xa2, 0x5d, 0x1e, 0x7f, 0x61, 0xb4, 0xcb, 0xcf, 0x0e, 0x7f, 0x75, - 0x05, 0x97, 0xdc, 0x1f, 0xc0, 0x9c, 0x58, 0xe5, 0x07, 0xd4, 0x73, 0x5e, 0x88, 0x80, 0x1a, 0xcc, - 0xe7, 0x33, 0x48, 0x15, 0x06, 0x2c, 0x88, 0x07, 0x1e, 0xf1, 0xc3, 0x7c, 0xfa, 0x26, 0x7b, 0x52, - 0x89, 0xf4, 0x22, 0xd4, 0x7a, 0x91, 0x48, 0x29, 0x26, 0xd4, 0x96, 0x2d, 0xff, 0x45, 0x6b, 0xb9, - 0x04, 0x8b, 0x3d, 0x59, 0x62, 0x31, 0x09, 0xc9, 0xd9, 0x8b, 0xfa, 0x09, 0x8a, 0xe9, 0xc9, 0x22, - 0xc5, 0x90, 0xb4, 0xe6, 0x17, 0xa5, 0xe6, 0x32, 0x5c, 0xec, 0x4d, 0x23, 0xe5, 0xbc, 0x2f, 0x03, - 0xfb, 0xcd, 0xf4, 0x7b, 0xe3, 0x09, 0x45, 0xed, 0x2c, 0x4c, 0x77, 0x47, 0x97, 0xec, 0x38, 0x19, - 0xd5, 0x2f, 0x46, 0xc2, 0x22, 0x2c, 0xf4, 0xa0, 0x90, 0x3a, 0x36, 0x61, 0x81, 0xeb, 0xdc, 0xe8, - 0xf6, 0x68, 0x7a, 0x42, 0x42, 0x2e, 0x42, 0xad, 0x17, 0x87, 0x54, 0xd2, 0x84, 0xcb, 0xb1, 0xdc, - 0x17, 0x29, 0xe7, 0x2a, 0x5c, 0x39, 0x94, 0x48, 0x6a, 0xfa, 0x18, 0xe6, 0x63, 0xe5, 0xc7, 0xdc, - 0xca, 0xb9, 0x6a, 0x7a, 0xdc, 0x26, 0x3a, 0x16, 0xb0, 0x07, 0xbb, 0x94, 0xf8, 0x0b, 0x05, 0x2e, - 0x65, 0xa6, 0xf3, 0x8d, 0x0b, 0xad, 0x77, 0x2c, 0x5d, 0x9e, 0xda, 0x9f, 0x26, 0xa7, 0x74, 0xdc, - 0x0c, 0x50, 0x5c, 0x68, 0x2a, 0x12, 0x73, 0x33, 0xc3, 0x33, 0xa5, 0x63, 0x3e, 0xdf, 0xbc, 0xd4, - 0xce, 0x28, 0xcd, 0xd3, 0x7b, 0xf3, 0xbf, 0x2a, 0xc0, 0x23, 0xbf, 0xb9, 0x4e, 0xe8, 0xae, 0x65, - 0x10, 0xf4, 0x0e, 0x0c, 0x27, 0x1f, 0x7b, 0xd1, 0x42, 0xfa, 0xbd, 0xb8, 0xcb, 0xd3, 0x73, 0xb5, - 0xd6, 0xcb, 0x44, 0x56, 0x90, 0xef, 0xc1, 0x48, 0xfa, 0xcd, 0x05, 0x2d, 0xa6, 0x47, 0x75, 0x7d, - 0x48, 0xae, 0x5e, 0xec, 0x6d, 0x24, 0xc1, 0x57, 0xa0, 0x1c, 0x16, 0xe0, 0x68, 0x26, 0x3d, 0x22, - 0xf3, 0x90, 0x50, 0x9d, 0xcd, 0xeb, 0x96, 0x50, 0xcd, 0xb0, 0x04, 0x4c, 0xd6, 0xc1, 0xe8, 0x4a, - 0x76, 0x54, 0x4e, 0x95, 0x5e, 0xad, 0x1f, 0x6e, 0x18, 0x6b, 0x0e, 0x0b, 0xd0, 0xac, 0xe6, 0x4c, - 0xd5, 0x9c, 0xd5, 0x9c, 0xad, 0x5b, 0x91, 0x06, 0x43, 0x89, 0xea, 0x0c, 0xcd, 0x77, 0xd3, 0x90, - 0x02, 0x5c, 0xe8, 0x61, 0x21, 0x31, 0x4d, 0x38, 0xd7, 0x51, 0xf7, 0xa1, 0xcb, 0x99, 0xd5, 0xc8, - 0x29, 0x3a, 0xab, 0x57, 0x0e, 0xb5, 0x93, 0x2c, 0x3f, 0x82, 0xb3, 0xa9, 0x8b, 0x34, 0xca, 0x84, - 0x52, 0xb7, 0xdb, 0x7d, 0x75, 0xb1, 0xa7, 0x8d, 0x44, 0xfe, 0x09, 0x2b, 0x95, 0x3b, 0x2e, 0xea, - 0xa8, 0x63, 0x7d, 0xf2, 0x6a, 0x88, 0xea, 0xd5, 0x23, 0x58, 0x26, 0xb9, 0x3a, 0x6a, 0x15, 0xd4, - 0x35, 0x16, 0x8e, 0xc6, 0x95, 0x5b, 0xf8, 0xa0, 0x8f, 0xd3, 0xf5, 0x78, 0x9a, 0x71, 0x29, 0xdf, - 0xef, 0x5d, 0x79, 0x1b, 0x47, 0xb6, 0x97, 0xec, 0x0f, 0x61, 0x30, 0x2a, 0x20, 0x50, 0x26, 0x2c, - 0xb3, 0x75, 0x4f, 0x75, 0x2e, 0xb7, 0x3f, 0xf6, 0x5b, 0x97, 0xe2, 0x20, 0xeb, 0xb7, 0xfc, 0xe2, - 0x24, 0xeb, 0xb7, 0x1e, 0x95, 0x06, 0x3a, 0x00, 0x35, 0xaf, 0x0e, 0x40, 0xd7, 0xbb, 0xb9, 0x3f, - 0xb7, 0x22, 0xa9, 0x2e, 0x1d, 0xd5, 0x3c, 0x9e, 0x66, 0x97, 0xe7, 0xce, 0xec, 0x34, 0xf3, 0x9f, - 0x68, 0xb3, 0xd3, 0xec, 0xf1, 0x76, 0x8a, 0x1c, 0x18, 0xeb, 0xf6, 0x18, 0x8c, 0xba, 0x42, 0x74, - 0x7d, 0xc8, 0xae, 0x5e, 0x3b, 0x8a, 0x69, 0x4c, 0xd7, 0xed, 0x9e, 0x8a, 0xba, 0x2d, 0x4c, 0xf7, - 0x6b, 0x6a, 0x96, 0xae, 0xd7, 0xb5, 0x97, 0x05, 0x7f, 0xee, 0x9d, 0x14, 0xe5, 0x2e, 0x4b, 0x0e, - 0x71, 0xe3, 0xc8, 0xf6, 0x92, 0xfd, 0x67, 0x50, 0xcd, 0xaf, 0xe0, 0x50, 0x06, 0xee, 0xd0, 0x82, - 0xb2, 0x7a, 0xe3, 0xe8, 0x03, 0xa4, 0x80, 0x67, 0x0a, 0x4c, 0xf5, 0xa8, 0xdb, 0x50, 0x06, 0xf1, - 0xf0, 0x42, 0xb2, 0xfa, 0xf2, 0x31, 0x46, 0x24, 0x44, 0xf4, 0xa8, 0xd7, 0x50, 0xfe, 0xb4, 0x72, - 0x6e, 0x41, 0x59, 0x11, 0x47, 0x28, 0x06, 0xd1, 0x27, 0x0a, 0x4c, 0xf7, 0x2a, 0xd3, 0x50, 0x8f, - 0x89, 0xe5, 0xc9, 0xb8, 0x79, 0x9c, 0x21, 0x71, 0x48, 0xe4, 0xd7, 0x26, 0xd9, 0x90, 0x38, 0xb4, - 0x52, 0xca, 0x86, 0xc4, 0xe1, 0x65, 0x0f, 0xfa, 0xb5, 0x92, 0x7c, 0x41, 0xe9, 0x2e, 0xe3, 0x76, - 0x5e, 0xa0, 0xf7, 0xd4, 0xf2, 0xca, 0x31, 0x47, 0xc5, 0x5b, 0x34, 0xb7, 0xea, 0xc8, 0x6e, 0xd1, - 0xc3, 0x8a, 0xa3, 0x6a, 0xe3, 0xc8, 0xf6, 0x92, 0xfd, 0x57, 0x0a, 0xcc, 0xf6, 0xae, 0x25, 0xd0, - 0xad, 0x9e, 0xf3, 0xca, 0x11, 0x72, 0xfb, 0x78, 0x83, 0xba, 0x45, 0x47, 0x47, 0x88, 0xe6, 0x4e, - 0x2e, 0x2f, 0x40, 0x6f, 0x1c, 0x7d, 0x40, 0x7e, 0x74, 0x74, 0xc8, 0xe8, 0x3d, 0xb5, 0x3c, 0x2d, - 0xaf, 0x1c, 0x73, 0x94, 0x10, 0x54, 0x3d, 0xf3, 0xf3, 0xaf, 0x3f, 0xbd, 0xa6, 0xdc, 0xd3, 0x3e, - 0xfb, 0x72, 0x56, 0xf9, 0xfc, 0xcb, 0x59, 0xe5, 0x3f, 0x5f, 0xce, 0x2a, 0xbf, 0xfd, 0x6a, 0xf6, - 0xd4, 0xe7, 0x5f, 0xcd, 0x9e, 0xfa, 0xd7, 0x57, 0xb3, 0xa7, 0x9e, 0xbe, 0x76, 0xc4, 0x9f, 0xad, - 0xf7, 0x1b, 0xf1, 0xdf, 0x0c, 0x05, 0x07, 0x2d, 0xe2, 0x6f, 0xf6, 0xf3, 0x3f, 0x0d, 0xba, 0xf5, - 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf4, 0xc4, 0xd6, 0xa1, 0xd5, 0x34, 0x00, 0x00, + // 3210 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0xcd, 0x73, 0x1c, 0x47, + 0x15, 0xf7, 0x58, 0x6b, 0x69, 0xf5, 0x24, 0x4b, 0xeb, 0xb6, 0x24, 0x8f, 0x56, 0xdf, 0x2b, 0x7f, + 0xac, 0x4d, 0xac, 0x75, 0x6c, 0x27, 0x0e, 0x81, 0x03, 0x76, 0x64, 0x07, 0xa9, 0x6c, 0x47, 0x19, + 0x29, 0x31, 0xe5, 0xa4, 0x98, 0xb4, 0x66, 0x5a, 0xab, 0xc1, 0xf3, 0xb1, 0xe9, 0x99, 0x5d, 0xc9, + 0xa9, 0x50, 0x80, 0xab, 0x72, 0x81, 0x2a, 0xe0, 0xc4, 0x01, 0x28, 0xce, 0x9c, 0xa8, 0x1c, 0xe0, + 0xc2, 0x89, 0x63, 0x8e, 0x29, 0x4e, 0x14, 0x87, 0x14, 0x95, 0x1c, 0x72, 0xa5, 0xf8, 0x0b, 0xa8, + 0xfe, 0x98, 0xcf, 0xdd, 0x59, 0x49, 0x1e, 0x39, 0x95, 0x4b, 0xe2, 0xe9, 0x7e, 0xfd, 0x7b, 0xbf, + 0xf7, 0xfa, 0xf5, 0xeb, 0xf7, 0x7a, 0x4b, 0x30, 0x49, 0x1c, 0xcb, 0xf7, 0x2d, 0xcf, 0xf5, 0x1b, + 0x9d, 0x5b, 0x8d, 0x60, 0x7f, 0xa5, 0x45, 0xbd, 0xc0, 0x43, 0xa3, 0xd1, 0xf0, 0x4a, 0xe7, 0x56, + 0xf5, 0x0c, 0x76, 0x2c, 0xd7, 0x6b, 0xf0, 0xff, 0x0a, 0x81, 0xea, 0x39, 0xc3, 0xf3, 0x1d, 0xcf, + 0x6f, 0x38, 0x7e, 0xb3, 0xd1, 0x79, 0x99, 0xfd, 0x4f, 0x4e, 0x4c, 0x8b, 0x09, 0x9d, 0x7f, 0x35, + 0xc4, 0x87, 0x9c, 0xaa, 0x26, 0x74, 0xdd, 0x68, 0x50, 0xd2, 0x6a, 0x07, 0x84, 0x86, 0xcb, 0x52, + 0x73, 0x7b, 0x1e, 0x7d, 0x12, 0x4d, 0x4d, 0x34, 0xbd, 0xa6, 0x27, 0xe0, 0xd8, 0xbf, 0xc4, 0x68, + 0xed, 0x7f, 0x4b, 0x30, 0xf6, 0x56, 0x2b, 0xb0, 0x3c, 0x17, 0xdb, 0x1b, 0x98, 0x62, 0xc7, 0x47, + 0x2a, 0x0c, 0x75, 0x08, 0x65, 0x20, 0xaa, 0xb2, 0x38, 0x50, 0x1f, 0xd6, 0xc2, 0x4f, 0xf4, 0x5d, + 0x98, 0x76, 0xf0, 0xbe, 0xee, 0x13, 0x6a, 0x61, 0xdb, 0xfa, 0x88, 0x98, 0xba, 0xe3, 0x37, 0x75, + 0x9b, 0xb8, 0xcd, 0x60, 0x57, 0x3d, 0xb9, 0x38, 0x50, 0x1f, 0xd0, 0xa6, 0x1c, 0xbc, 0xbf, 0x19, + 0xcd, 0x3f, 0xf0, 0x9b, 0xf7, 0xf9, 0x2c, 0xc2, 0x50, 0x71, 0x2c, 0x57, 0x0f, 0xbc, 0x96, 0x65, + 0xe8, 0x7b, 0xc4, 0x6a, 0xee, 0x06, 0xea, 0x00, 0x43, 0xbf, 0x73, 0xeb, 0xb3, 0x2f, 0x16, 0x4e, + 0xfc, 0xfb, 0x8b, 0x85, 0x46, 0xd3, 0x0a, 0x76, 0xdb, 0xdb, 0x2b, 0x86, 0xe7, 0x34, 0xb0, 0x6d, + 0x7b, 0x14, 0x5f, 0x75, 0x49, 0xc0, 0x4c, 0x08, 0x3f, 0x8d, 0x5d, 0x6c, 0xb9, 0x0d, 0x07, 0x07, + 0xbb, 0x2b, 0xab, 0xc4, 0xd0, 0xc6, 0x1c, 0xcb, 0xdd, 0x62, 0x78, 0x8f, 0x38, 0x1c, 0xda, 0x81, + 0x29, 0x4a, 0x3e, 0x6c, 0x5b, 0x94, 0xf1, 0xb2, 0x5c, 0xcb, 0x69, 0x3b, 0xba, 0x1f, 0xe0, 0x27, + 0x44, 0x3d, 0xc5, 0x15, 0x5d, 0x93, 0x8a, 0x26, 0x85, 0x37, 0x7d, 0xf3, 0xc9, 0x8a, 0xe5, 0x09, + 0xb8, 0x35, 0x37, 0xf8, 0xe7, 0x5f, 0xaf, 0x82, 0x74, 0xf3, 0x9a, 0x1b, 0xfc, 0xf9, 0xeb, 0x4f, + 0xaf, 0x28, 0xda, 0x44, 0x88, 0xf7, 0x40, 0xc0, 0x6d, 0x32, 0x34, 0xe6, 0x05, 0x4a, 0x1c, 0xaf, + 0x43, 0x04, 0xba, 0x6e, 0x12, 0x1b, 0x3f, 0xd5, 0xf7, 0x2c, 0xd7, 0xf4, 0xf6, 0xd4, 0x41, 0xe1, + 0x05, 0x21, 0xc0, 0xe5, 0x57, 0xd9, 0xf4, 0x23, 0x3e, 0x8b, 0xea, 0xc2, 0x0b, 0xa4, 0xe5, 0x19, + 0xbb, 0xa1, 0xdf, 0x86, 0xf8, 0x0a, 0x66, 0xcc, 0x5d, 0x36, 0x2c, 0xfd, 0xf5, 0x18, 0x46, 0xb7, + 0x49, 0x80, 0x75, 0xe2, 0x06, 0xd4, 0x6b, 0x3d, 0x55, 0xcb, 0xc5, 0x7c, 0x35, 0xc2, 0xc0, 0xee, + 0x0a, 0x2c, 0xf4, 0x3e, 0x9c, 0xb6, 0x09, 0xa6, 0xae, 0xe5, 0x36, 0x75, 0x8a, 0x03, 0xa2, 0x0e, + 0x17, 0x03, 0x1f, 0x0d, 0xd1, 0x34, 0x1c, 0x10, 0xe4, 0x00, 0x8b, 0x01, 0xbd, 0x49, 0xb1, 0x69, + 0x11, 0x37, 0xd0, 0x83, 0x5d, 0x4a, 0xfc, 0x5d, 0xcf, 0x36, 0x55, 0x28, 0xa6, 0x66, 0xc2, 0xc1, + 0xfb, 0x6f, 0x4a, 0xd4, 0xad, 0x10, 0x14, 0x11, 0x40, 0xcc, 0xa5, 0x62, 0x2b, 0x76, 0x28, 0x36, + 0x58, 0x2c, 0xab, 0x23, 0xc5, 0x54, 0xb1, 0x5d, 0xe2, 0x9b, 0x77, 0x4f, 0x02, 0xa2, 0xbb, 0xb0, + 0xc0, 0xac, 0x6a, 0xbb, 0x3b, 0x6d, 0x7b, 0xc7, 0xb2, 0x6d, 0x62, 0xea, 0xe2, 0x74, 0xe9, 0x2c, + 0x46, 0x88, 0x1f, 0xf8, 0xea, 0xe9, 0xc5, 0x81, 0x7a, 0x49, 0x9b, 0x75, 0xf0, 0xfe, 0x3b, 0xb1, + 0xd4, 0x23, 0x2e, 0xa4, 0x49, 0x19, 0xf4, 0x26, 0x2c, 0x66, 0x61, 0xe4, 0x01, 0x8e, 0x71, 0xc6, + 0x38, 0xce, 0x5c, 0x1a, 0x47, 0x13, 0x52, 0x11, 0xd0, 0x47, 0x30, 0x27, 0xce, 0x12, 0x25, 0x7b, + 0x98, 0x9a, 0xd2, 0x7e, 0xcb, 0x69, 0x79, 0x34, 0xc0, 0xae, 0x41, 0xd4, 0xf1, 0x62, 0x1e, 0xa8, + 0x72, 0x74, 0x8d, 0x83, 0x73, 0x4f, 0xac, 0x45, 0xd0, 0xe8, 0x13, 0x05, 0x96, 0x53, 0xca, 0x77, + 0x08, 0xd1, 0x29, 0xe9, 0x10, 0xb7, 0x9d, 0xa2, 0x50, 0x29, 0x46, 0x61, 0x21, 0x41, 0xe1, 0x1e, + 0x21, 0x9a, 0x50, 0x90, 0xe0, 0x41, 0x00, 0xa5, 0x68, 0x60, 0xbb, 0xb5, 0x8b, 0xd5, 0x33, 0x05, + 0xb7, 0x3e, 0xa1, 0xf5, 0x36, 0x03, 0x44, 0x06, 0x9c, 0x09, 0xb0, 0xff, 0x24, 0xad, 0x05, 0x15, + 0xd3, 0x32, 0xce, 0x10, 0x93, 0x4a, 0x98, 0x4f, 0x3b, 0xd8, 0xb6, 0x4c, 0x1c, 0x78, 0xd4, 0xd7, + 0x3b, 0xbe, 0x2e, 0x16, 0xea, 0x2d, 0x42, 0x0d, 0x76, 0x8c, 0x84, 0x76, 0xf5, 0x6c, 0x41, 0x9f, + 0xc6, 0x3a, 0xde, 0xf5, 0x6f, 0x73, 0x91, 0x0d, 0xa1, 0x40, 0x90, 0x41, 0xdf, 0x87, 0x19, 0x9e, + 0xe2, 0xb1, 0xd3, 0xb2, 0x89, 0xaf, 0x07, 0x9e, 0xee, 0x1b, 0xd8, 0x26, 0xba, 0x6f, 0x78, 0x94, + 0xf8, 0xea, 0x04, 0x8f, 0xcd, 0x73, 0x2c, 0xc9, 0x0b, 0x89, 0x2d, 0x6f, 0x93, 0xcd, 0x6f, 0xf2, + 0x69, 0xf4, 0x3a, 0x54, 0xd9, 0xea, 0xc0, 0x6b, 0xe9, 0x96, 0xbb, 0x43, 0x28, 0xa1, 0x1c, 0x42, + 0x72, 0x9f, 0xe4, 0x8b, 0x59, 0x76, 0xd8, 0xf2, 0x5a, 0x6b, 0x72, 0x7e, 0xcb, 0x93, 0x9a, 0x7f, + 0x00, 0x73, 0xe1, 0xda, 0x1d, 0x8f, 0x12, 0x03, 0xfb, 0x41, 0x7a, 0xf9, 0x14, 0x5f, 0x3e, 0x2d, + 0x96, 0xdf, 0x8b, 0x45, 0x22, 0x84, 0x84, 0x76, 0x79, 0xa8, 0x92, 0xcb, 0xcf, 0x25, 0xb5, 0xcb, + 0xe3, 0x14, 0xaf, 0x7d, 0x0c, 0x15, 0x83, 0x12, 0x1c, 0x10, 0x79, 0x45, 0xed, 0x10, 0xa2, 0xaa, + 0xcf, 0x79, 0x6d, 0x8c, 0x09, 0x24, 0x7e, 0x37, 0xdd, 0x23, 0x04, 0x7d, 0x0f, 0xaa, 0x51, 0x36, + 0x34, 0x89, 0xcf, 0xb7, 0x93, 0x11, 0xb5, 0x18, 0x03, 0x75, 0x5a, 0xb8, 0x34, 0x94, 0x58, 0x15, + 0x02, 0x0f, 0xf0, 0xfe, 0x1a, 0x9b, 0x46, 0xef, 0x41, 0x85, 0x92, 0xa6, 0xe5, 0x07, 0x14, 0xb3, + 0x44, 0xc4, 0x89, 0xcd, 0x3e, 0x27, 0xb1, 0xf1, 0x24, 0x12, 0x63, 0xf6, 0x12, 0x20, 0x93, 0xec, + 0xe0, 0xb6, 0x1d, 0xe8, 0x2d, 0xdc, 0x24, 0xba, 0x6d, 0x39, 0x56, 0xa0, 0xce, 0x71, 0x46, 0x15, + 0x39, 0xb3, 0x81, 0x9b, 0xe4, 0x3e, 0x1b, 0x47, 0xe7, 0x61, 0x8c, 0xd1, 0x4e, 0x48, 0xce, 0x73, + 0xc9, 0x51, 0x07, 0xef, 0xc7, 0x52, 0x6c, 0x1f, 0x33, 0x77, 0x9c, 0x4e, 0x89, 0xe1, 0x51, 0x53, + 0x2e, 0x5a, 0xe0, 0x17, 0xde, 0x74, 0xfa, 0xc2, 0xd3, 0xb8, 0x84, 0x40, 0xa8, 0x43, 0x65, 0xdb, + 0xf6, 0x8c, 0x27, 0x3e, 0x0b, 0x7e, 0xdd, 0xf1, 0xdc, 0x60, 0x57, 0x5d, 0xe4, 0x9a, 0xc6, 0xc4, + 0xf8, 0x06, 0xa1, 0x0f, 0xd8, 0x28, 0xcb, 0x00, 0xad, 0xf0, 0x5c, 0x8a, 0x80, 0x63, 0x79, 0x67, + 0xa9, 0x60, 0x06, 0x68, 0x89, 0x98, 0x58, 0x0b, 0x01, 0x59, 0x06, 0x88, 0xd4, 0x84, 0xb1, 0xa9, + 0xd6, 0x0a, 0x66, 0x00, 0xa9, 0x25, 0x0c, 0x64, 0x56, 0x21, 0x45, 0x4a, 0x64, 0xf8, 0xaa, 0xcb, + 0x05, 0x2b, 0x24, 0xa9, 0x43, 0x46, 0x3b, 0x73, 0x97, 0xd1, 0xed, 0xae, 0xf3, 0x05, 0xdd, 0x65, + 0xf4, 0x70, 0x97, 0xd1, 0xe5, 0xae, 0x0b, 0x05, 0xdd, 0x65, 0x64, 0xdc, 0xf5, 0x10, 0x06, 0x0d, + 0xdd, 0xf5, 0xa8, 0xa3, 0x5e, 0x2c, 0x86, 0x7c, 0xca, 0x78, 0xe8, 0x51, 0x07, 0x7d, 0x00, 0xe3, + 0xa4, 0xe5, 0x5b, 0xb6, 0xe7, 0x46, 0xde, 0xaf, 0x17, 0xf4, 0xbe, 0xc4, 0x0b, 0xbd, 0xff, 0x2e, + 0x5c, 0xde, 0xc5, 0xf6, 0x0e, 0x3f, 0xfa, 0x2d, 0xea, 0x19, 0xc4, 0xf7, 0xe5, 0xb5, 0xcd, 0xab, + 0x45, 0x6c, 0xfb, 0x3a, 0x71, 0x4d, 0x9d, 0x87, 0xb8, 0x7a, 0x85, 0xc7, 0xfb, 0x32, 0x5b, 0xf0, + 0x00, 0xef, 0x6f, 0x08, 0x71, 0x7e, 0x11, 0x6b, 0x52, 0xf8, 0xae, 0x6b, 0xde, 0x61, 0xa2, 0x2c, + 0x75, 0x99, 0x38, 0xc0, 0xba, 0x4f, 0x5c, 0x93, 0x95, 0x74, 0x2c, 0x43, 0x7c, 0xe7, 0x79, 0x53, + 0x17, 0x43, 0xda, 0x14, 0x40, 0x2c, 0x41, 0x60, 0xa8, 0x84, 0x5e, 0xf1, 0xf1, 0x0e, 0xd1, 0x4d, + 0xab, 0xa3, 0xbe, 0x74, 0x3c, 0x6e, 0xd9, 0xc4, 0x3b, 0x64, 0xd5, 0xea, 0x84, 0x4d, 0x05, 0xb1, + 0x89, 0x43, 0xdc, 0x40, 0x9c, 0xf9, 0x28, 0x6a, 0xae, 0x46, 0x49, 0xfb, 0xae, 0x9c, 0xdf, 0x20, + 0x34, 0x8a, 0x01, 0x79, 0x59, 0xb1, 0x12, 0xad, 0x23, 0x13, 0xb7, 0x58, 0x2f, 0x7c, 0xb8, 0x12, + 0x5d, 0x56, 0xb7, 0xb9, 0x04, 0x4f, 0xc8, 0x0c, 0x40, 0xf8, 0xed, 0x0a, 0x9c, 0xe1, 0x57, 0x5d, + 0x40, 0x99, 0xd7, 0x64, 0x35, 0xde, 0xe0, 0x6b, 0xc6, 0xd9, 0x05, 0xc7, 0xc7, 0x65, 0x39, 0xee, + 0xc1, 0x39, 0xcb, 0xb5, 0x02, 0x0b, 0xdb, 0x3a, 0x25, 0x4d, 0x4a, 0x02, 0xfd, 0xc3, 0x36, 0x76, + 0x03, 0xcb, 0x26, 0xea, 0xb5, 0x62, 0xee, 0x98, 0x94, 0xb8, 0x1a, 0x87, 0x7d, 0x5b, 0xa2, 0xa2, + 0x1f, 0xc3, 0x78, 0x8b, 0x87, 0x77, 0xec, 0xf7, 0x97, 0x0b, 0x56, 0xe9, 0x2d, 0x16, 0xe7, 0xa1, + 0xd7, 0x5f, 0x03, 0xb5, 0x69, 0x7b, 0xdb, 0xd8, 0xd6, 0xf7, 0x76, 0xad, 0x80, 0xd8, 0x96, 0x1f, + 0xe8, 0xc4, 0xc5, 0xdb, 0x36, 0x31, 0xd5, 0xeb, 0x8b, 0x03, 0xf5, 0xb2, 0x36, 0x25, 0xe6, 0x1f, + 0x85, 0xd3, 0x77, 0xc5, 0x2c, 0xab, 0x84, 0xc5, 0x15, 0xc9, 0x6f, 0x39, 0x8f, 0xf6, 0x00, 0xb8, + 0xc1, 0x01, 0x66, 0xb9, 0xd8, 0x1b, 0x42, 0xaa, 0x0b, 0xe6, 0x0d, 0x98, 0xe7, 0xd7, 0xc4, 0x7e, + 0x8b, 0x50, 0x8b, 0xa5, 0x8d, 0x44, 0x41, 0xcd, 0x3c, 0xe1, 0xab, 0x37, 0xf9, 0x56, 0xcc, 0xb0, + 0x7b, 0x22, 0x16, 0x0a, 0xeb, 0x69, 0x2e, 0x82, 0x7e, 0xa9, 0xc0, 0x85, 0x28, 0x91, 0xe9, 0x5e, + 0x3b, 0xb0, 0x2d, 0x42, 0x75, 0x93, 0x04, 0x84, 0x57, 0xed, 0x89, 0xde, 0xe3, 0x95, 0x62, 0xce, + 0xab, 0x45, 0x5a, 0xde, 0x12, 0x4a, 0x56, 0x43, 0x1d, 0x71, 0x27, 0xf2, 0x4c, 0x81, 0xa5, 0x7e, + 0x64, 0x44, 0xe1, 0xf8, 0x6a, 0x31, 0x22, 0xf3, 0xb9, 0x44, 0x44, 0x1d, 0x69, 0xc1, 0x84, 0x8d, + 0x9d, 0x6d, 0x13, 0xeb, 0x61, 0xbc, 0xf2, 0xca, 0x4d, 0xbd, 0x55, 0x4c, 0x2d, 0x12, 0xa0, 0x6b, + 0x02, 0x93, 0x57, 0x7b, 0xeb, 0xa5, 0x72, 0xa9, 0x72, 0x6a, 0xbd, 0x54, 0xae, 0x56, 0x66, 0xd6, + 0x4b, 0xe5, 0x99, 0xca, 0xec, 0x7a, 0xa9, 0x7c, 0xa9, 0x52, 0x5f, 0x2f, 0x95, 0x2f, 0x57, 0xae, + 0xf0, 0x6e, 0xad, 0xeb, 0x48, 0xf2, 0xdd, 0xd4, 0xc9, 0xce, 0x0e, 0x49, 0x1c, 0xd9, 0xb0, 0x75, + 0xd0, 0x96, 0xd9, 0x12, 0x4a, 0x02, 0x6a, 0x89, 0xca, 0x53, 0x34, 0x3f, 0xba, 0xeb, 0xb9, 0x06, + 0xf1, 0x65, 0x74, 0xc8, 0xa8, 0x4a, 0xb5, 0x1c, 0x26, 0x31, 0xf0, 0x53, 0xde, 0xc9, 0x6a, 0xe7, + 0xfb, 0x42, 0xc8, 0xc4, 0x5e, 0x6b, 0xc1, 0xd9, 0x77, 0x5a, 0x26, 0x0e, 0x88, 0x78, 0xf1, 0x90, + 0x4d, 0x15, 0x9a, 0x82, 0x41, 0x96, 0x43, 0x09, 0x55, 0x95, 0x45, 0xa5, 0x3e, 0xac, 0xc9, 0x2f, + 0x74, 0x13, 0x06, 0x5b, 0x5c, 0x50, 0x3d, 0xb9, 0xa8, 0xd4, 0x47, 0xae, 0xcf, 0xae, 0x24, 0x9f, + 0x75, 0x56, 0xd2, 0xcf, 0x27, 0x9a, 0x94, 0x7d, 0x7d, 0xe4, 0xd9, 0xd7, 0x9f, 0x5e, 0x91, 0x10, + 0xb5, 0x29, 0x98, 0x48, 0x6b, 0xf4, 0x5b, 0x9e, 0xeb, 0x93, 0xda, 0xdf, 0x86, 0x61, 0x92, 0x9f, + 0x10, 0xf2, 0x90, 0xec, 0x6d, 0x89, 0xce, 0x43, 0x90, 0x51, 0x61, 0x48, 0x1e, 0x30, 0xc9, 0x26, + 0xfc, 0x44, 0x55, 0x28, 0x3b, 0x24, 0xc0, 0x2c, 0x53, 0x73, 0x42, 0xc3, 0x5a, 0xf4, 0x8d, 0x16, + 0x60, 0xc4, 0xf6, 0x7c, 0x5f, 0x77, 0x48, 0xb0, 0xeb, 0x99, 0x6a, 0x89, 0x4f, 0x03, 0x1b, 0x7a, + 0xc0, 0x47, 0xd0, 0x12, 0x8c, 0x66, 0x5e, 0x1f, 0x94, 0xfa, 0x80, 0x36, 0x42, 0x12, 0x4f, 0x0f, + 0x75, 0xa8, 0x34, 0xa9, 0xd7, 0x76, 0x4d, 0x3d, 0xa0, 0xed, 0x60, 0x57, 0xb7, 0x71, 0x53, 0x2d, + 0x73, 0xb1, 0x31, 0x31, 0xbe, 0xc5, 0x86, 0xef, 0xe3, 0x26, 0xbb, 0x83, 0x45, 0x92, 0x52, 0x81, + 0x29, 0x2a, 0x70, 0x07, 0xf3, 0xdc, 0x84, 0x1e, 0xc3, 0x28, 0x3f, 0x24, 0x32, 0x05, 0xa8, 0x23, + 0xc5, 0x50, 0x47, 0x38, 0x98, 0xc8, 0x15, 0xe8, 0x02, 0x8c, 0x31, 0xa9, 0x3d, 0xdd, 0x25, 0x4d, + 0xcc, 0x82, 0x4f, 0x1d, 0x5d, 0x54, 0xea, 0x65, 0xed, 0x34, 0x1f, 0x7d, 0x28, 0x07, 0xd1, 0xdb, + 0x30, 0x24, 0xef, 0x27, 0xf5, 0x74, 0x31, 0xed, 0x21, 0x0e, 0x4b, 0xb5, 0x32, 0xb3, 0xf9, 0xed, + 0x6d, 0x19, 0x38, 0xe1, 0x73, 0xd1, 0x18, 0xf7, 0xeb, 0x94, 0x98, 0xdf, 0x8c, 0xa6, 0xe5, 0x73, + 0xd1, 0x13, 0x98, 0x74, 0x08, 0xb5, 0x02, 0xdd, 0xf7, 0x68, 0x60, 0x25, 0x92, 0xc8, 0x78, 0x31, + 0x6a, 0x67, 0x39, 0xea, 0x66, 0x08, 0x2a, 0x32, 0x87, 0x07, 0xe7, 0xe4, 0x45, 0x2a, 0x5b, 0xb7, + 0xf8, 0x8a, 0xab, 0x14, 0x53, 0x37, 0x29, 0x70, 0x65, 0xc7, 0x17, 0x5d, 0x71, 0x6d, 0xa8, 0x4a, + 0x85, 0x71, 0xbf, 0x17, 0xeb, 0x3c, 0x53, 0x4c, 0xa7, 0x2a, 0xa0, 0xe3, 0x36, 0x31, 0x52, 0x1b, + 0xdb, 0x19, 0xbe, 0xbc, 0x44, 0x3a, 0xd1, 0xb1, 0xd8, 0x29, 0xeb, 0xbd, 0x48, 0xe1, 0xab, 0x70, + 0x4e, 0x5c, 0x8c, 0xe1, 0x05, 0x17, 0x5d, 0x98, 0xea, 0x59, 0x1e, 0x82, 0x93, 0x62, 0x5a, 0x5c, + 0x6d, 0xd1, 0x45, 0xc9, 0xe2, 0x46, 0xae, 0x0b, 0x89, 0xc6, 0x0b, 0x27, 0xf8, 0xc2, 0x29, 0x31, + 0x2f, 0x15, 0x46, 0x2b, 0x5f, 0x1f, 0x65, 0xa9, 0x27, 0xcc, 0x17, 0xeb, 0xa5, 0xf2, 0x40, 0xa5, + 0xb4, 0x5e, 0x2a, 0x9f, 0xaa, 0x0c, 0xae, 0x97, 0xca, 0x83, 0x95, 0xa1, 0xf5, 0x52, 0x79, 0xb8, + 0x02, 0x22, 0x2d, 0xe8, 0xb6, 0xd7, 0xb4, 0x0c, 0x6d, 0x3c, 0xbe, 0xb8, 0xc4, 0x40, 0x25, 0x1e, + 0x10, 0xb9, 0x44, 0x1b, 0x09, 0x3b, 0x45, 0x4c, 0x9b, 0xb5, 0x1b, 0x30, 0x95, 0x4d, 0x5b, 0x22, + 0xa3, 0xa1, 0x69, 0x28, 0x8b, 0x0c, 0x6d, 0x99, 0x3c, 0x71, 0x95, 0xb4, 0x21, 0xfe, 0xbd, 0x66, + 0xd6, 0x7e, 0xa7, 0xc0, 0xcc, 0x9a, 0xeb, 0x13, 0x1a, 0x48, 0xc6, 0x1b, 0xf8, 0xa9, 0xed, 0x61, + 0xf3, 0xa0, 0xfc, 0xab, 0xc1, 0x44, 0xe8, 0x81, 0x0e, 0xb6, 0xdb, 0x44, 0xdf, 0x6e, 0xbb, 0xa6, + 0x4d, 0x64, 0x36, 0x5e, 0x4c, 0x66, 0xe3, 0x1b, 0x2b, 0x12, 0xfa, 0x5d, 0x26, 0x78, 0x87, 0xcb, + 0x69, 0x88, 0x76, 0x8d, 0xa5, 0xb3, 0xf3, 0x3c, 0xcc, 0xf6, 0xe6, 0x25, 0xb3, 0xf4, 0x6f, 0x14, + 0xa8, 0x0a, 0x01, 0xb1, 0x47, 0x87, 0xe4, 0x7d, 0x1f, 0x90, 0xdc, 0x71, 0x5e, 0x9f, 0xa7, 0x58, + 0xcf, 0xa7, 0x59, 0x0b, 0xdc, 0x55, 0x1c, 0x60, 0xc9, 0xb9, 0xb2, 0x97, 0x19, 0x49, 0x33, 0x9e, + 0x0b, 0x3d, 0x99, 0x21, 0x24, 0x09, 0xff, 0x45, 0x81, 0x71, 0x8d, 0xf7, 0xfa, 0xd1, 0x93, 0x61, + 0x2e, 0xcb, 0xe4, 0x86, 0x95, 0x52, 0x1b, 0x86, 0x26, 0xe0, 0x94, 0xb7, 0xe7, 0x12, 0xaa, 0x9e, + 0xe2, 0x2b, 0xc4, 0x07, 0x9a, 0x03, 0xb0, 0xa2, 0xbb, 0x54, 0x1d, 0xe4, 0x91, 0x38, 0x6c, 0xf9, + 0xd2, 0x77, 0x29, 0x9e, 0xeb, 0xa5, 0xf2, 0xc9, 0xca, 0x80, 0x88, 0x40, 0x6d, 0xc4, 0xb6, 0xb6, + 0xf5, 0xd6, 0xf5, 0x96, 0xfe, 0x84, 0x3c, 0xd5, 0x4e, 0x3b, 0x6d, 0x3b, 0xb0, 0x74, 0x6c, 0x9a, + 0x94, 0xf8, 0x7e, 0xed, 0x1e, 0x54, 0x62, 0xbe, 0x32, 0x92, 0x54, 0x18, 0xf2, 0xdb, 0x06, 0xeb, + 0x7b, 0x38, 0xe3, 0xb2, 0x16, 0x7e, 0xb2, 0x19, 0x87, 0xf8, 0x3e, 0x6e, 0x12, 0x79, 0x01, 0x86, + 0x9f, 0xb5, 0x8f, 0x60, 0x9a, 0xf7, 0x47, 0x44, 0x4b, 0xbc, 0x74, 0x1c, 0xc5, 0x03, 0x27, 0xd3, + 0x1e, 0x48, 0xdb, 0x3a, 0xd0, 0xcf, 0xd6, 0xda, 0x06, 0x54, 0x7b, 0xe9, 0x2e, 0x60, 0xcd, 0x1f, + 0x14, 0x18, 0xbf, 0x6d, 0x9a, 0xb2, 0xed, 0x7b, 0x6e, 0x23, 0x7e, 0x08, 0x83, 0xd8, 0xf1, 0xda, + 0x6e, 0xc0, 0x0d, 0x78, 0x9e, 0xb6, 0x50, 0xae, 0x4f, 0xdb, 0x8b, 0xa0, 0x12, 0x93, 0x93, 0x81, + 0xf7, 0x27, 0x05, 0x90, 0x16, 0xff, 0xf6, 0xf1, 0xed, 0x23, 0x3d, 0x09, 0x67, 0x53, 0xfc, 0x24, + 0xef, 0xc7, 0xa0, 0xbe, 0x81, 0x5d, 0x83, 0xd8, 0xc7, 0x42, 0x3e, 0xad, 0x72, 0x06, 0xa6, 0x7b, + 0x60, 0x4b, 0xc5, 0x7f, 0x57, 0x60, 0x62, 0x95, 0xd8, 0xac, 0xfc, 0x28, 0xec, 0x32, 0x15, 0x86, + 0x92, 0x91, 0x3a, 0xac, 0x85, 0x9f, 0x09, 0x67, 0x96, 0x8e, 0xd3, 0x99, 0xe7, 0x60, 0x32, 0xc3, + 0x5d, 0x5a, 0xf5, 0x0f, 0x25, 0x3c, 0x0b, 0x47, 0xb2, 0x2d, 0x61, 0xc0, 0xc9, 0xb4, 0x01, 0x49, + 0xab, 0x07, 0xf2, 0x02, 0xe5, 0x58, 0x6d, 0x9b, 0x83, 0x99, 0x9e, 0x16, 0x48, 0x0b, 0x7f, 0xaf, + 0xc0, 0x62, 0x72, 0x57, 0x8f, 0x6b, 0x0f, 0x67, 0x61, 0xd8, 0x14, 0x50, 0x5e, 0xb8, 0x8b, 0xf1, + 0x40, 0xd2, 0x41, 0xa5, 0x94, 0x83, 0xd2, 0xdc, 0x97, 0x61, 0xa9, 0x0f, 0x37, 0x69, 0x41, 0x87, + 0x6d, 0xd1, 0x1e, 0xa6, 0xe6, 0x0b, 0x0f, 0xbf, 0x1e, 0x8e, 0xed, 0xa1, 0x57, 0xd2, 0xfa, 0xa3, + 0x02, 0x95, 0x7b, 0xac, 0xc9, 0x48, 0x36, 0x43, 0xdf, 0x9e, 0xfc, 0x71, 0x16, 0xce, 0x24, 0xd8, + 0x49, 0xce, 0xef, 0x41, 0xf5, 0xb6, 0x69, 0x6e, 0x79, 0x51, 0x05, 0x76, 0xdb, 0x74, 0x2c, 0xf7, + 0x10, 0xd1, 0x2e, 0xaf, 0xbf, 0x30, 0xda, 0xe5, 0x67, 0x97, 0xbf, 0x7a, 0x82, 0x4b, 0xdd, 0x1f, + 0xc0, 0x82, 0xd8, 0xe5, 0x7b, 0xd4, 0x73, 0x5e, 0x08, 0x81, 0x1a, 0x2c, 0xe6, 0x6b, 0x90, 0x2c, + 0x0c, 0x58, 0x12, 0x0f, 0x3b, 0xe2, 0x07, 0xf9, 0x74, 0x25, 0x7b, 0x5c, 0x89, 0xf4, 0x3c, 0xd4, + 0xfa, 0x29, 0x91, 0x54, 0x4c, 0xa8, 0xad, 0x5a, 0xfe, 0x8b, 0xe6, 0x72, 0x01, 0x96, 0xfb, 0x6a, + 0x89, 0xc9, 0x24, 0x28, 0x67, 0x0b, 0xf5, 0x63, 0x24, 0xd3, 0x57, 0x8b, 0x24, 0x43, 0xd2, 0x9c, + 0x5f, 0x14, 0x9b, 0x8b, 0x70, 0xbe, 0xbf, 0x1a, 0x49, 0xe7, 0x7d, 0x19, 0xd8, 0x6f, 0xa6, 0xdf, + 0x19, 0x8f, 0x29, 0x6a, 0xe7, 0x61, 0xb6, 0x37, 0xba, 0xd4, 0x8e, 0x93, 0x51, 0xfd, 0x62, 0x28, + 0x2c, 0xc3, 0x52, 0x1f, 0x15, 0x92, 0xc7, 0x36, 0x2c, 0x71, 0x9e, 0x5b, 0xbd, 0x1e, 0x4b, 0x8f, + 0x89, 0xc8, 0x79, 0xa8, 0xf5, 0xd3, 0x21, 0x99, 0x34, 0xe1, 0x62, 0x4c, 0xf7, 0x45, 0xd2, 0xb9, + 0x0c, 0x97, 0x0e, 0x54, 0x24, 0x39, 0x7d, 0x0c, 0x8b, 0x31, 0xf3, 0x23, 0x1e, 0xe5, 0x5c, 0x36, + 0x7d, 0xaa, 0x89, 0xae, 0x0d, 0xec, 0xa3, 0x5d, 0x52, 0xfc, 0x85, 0x02, 0x17, 0x32, 0xe6, 0x7c, + 0xe3, 0x44, 0xeb, 0x5d, 0x5b, 0x97, 0xc7, 0xf6, 0xa7, 0x49, 0x93, 0x8e, 0x9a, 0x01, 0x8a, 0x13, + 0x4d, 0x45, 0x62, 0x6e, 0x66, 0x78, 0xa6, 0x74, 0xd9, 0xf3, 0xcd, 0x53, 0xed, 0x8e, 0xd2, 0x3c, + 0xbe, 0xd7, 0xff, 0xab, 0x02, 0x3c, 0xf0, 0x9b, 0x9b, 0x84, 0x76, 0x2c, 0x83, 0xa0, 0x77, 0x60, + 0x34, 0xf9, 0xd8, 0x8b, 0x96, 0xd2, 0xef, 0xc5, 0x3d, 0x9e, 0x9e, 0xab, 0xb5, 0x7e, 0x22, 0xb2, + 0x83, 0x7c, 0x0f, 0xc6, 0xd2, 0x6f, 0x2e, 0x68, 0x39, 0xbd, 0xaa, 0xe7, 0x43, 0x72, 0xf5, 0x7c, + 0x7f, 0x21, 0x09, 0xbe, 0x06, 0xe5, 0xb0, 0x01, 0x47, 0x73, 0xe9, 0x15, 0x99, 0x87, 0x84, 0xea, + 0x7c, 0xde, 0xb4, 0x84, 0x6a, 0x86, 0x2d, 0x60, 0xb2, 0x0f, 0x46, 0x97, 0xb2, 0xab, 0x72, 0xba, + 0xf4, 0x6a, 0xfd, 0x60, 0xc1, 0x98, 0x73, 0xd8, 0x80, 0x66, 0x39, 0x67, 0xba, 0xe6, 0x2c, 0xe7, + 0x6c, 0xdf, 0x8a, 0x34, 0x18, 0x49, 0x74, 0x67, 0x68, 0xb1, 0x17, 0x87, 0x14, 0xe0, 0x52, 0x1f, + 0x09, 0x89, 0x69, 0xc2, 0x99, 0xae, 0xbe, 0x0f, 0x5d, 0xcc, 0xec, 0x46, 0x4e, 0xd3, 0x59, 0xbd, + 0x74, 0xa0, 0x9c, 0xd4, 0xf2, 0x23, 0x38, 0x9d, 0x2a, 0xa4, 0x51, 0x26, 0x94, 0x7a, 0x55, 0xf7, + 0xd5, 0xe5, 0xbe, 0x32, 0x12, 0xf9, 0x27, 0xac, 0x55, 0xee, 0x2a, 0xd4, 0x51, 0xd7, 0xfe, 0xe4, + 0xf5, 0x10, 0xd5, 0xcb, 0x87, 0x90, 0x4c, 0xea, 0xea, 0xea, 0x55, 0x50, 0xcf, 0x58, 0x38, 0x9c, + 0xae, 0xdc, 0xc6, 0x07, 0x7d, 0x9c, 0xee, 0xc7, 0xd3, 0x1a, 0x57, 0xf2, 0xfd, 0xde, 0x53, 0x6f, + 0xe3, 0xd0, 0xf2, 0x52, 0xfb, 0x7d, 0x18, 0x8e, 0x1a, 0x08, 0x94, 0x09, 0xcb, 0x6c, 0xdf, 0x53, + 0x5d, 0xc8, 0x9d, 0x8f, 0xfd, 0xd6, 0xa3, 0x39, 0xc8, 0xfa, 0x2d, 0xbf, 0x39, 0xc9, 0xfa, 0xad, + 0x4f, 0xa7, 0x81, 0x9e, 0x82, 0x9a, 0xd7, 0x07, 0xa0, 0xab, 0xbd, 0xdc, 0x9f, 0xdb, 0x91, 0x54, + 0x57, 0x0e, 0x2b, 0x1e, 0x9b, 0xd9, 0xe3, 0xb9, 0x33, 0x6b, 0x66, 0xfe, 0x13, 0x6d, 0xd6, 0xcc, + 0x3e, 0x6f, 0xa7, 0xc8, 0x81, 0x89, 0x5e, 0x8f, 0xc1, 0xa8, 0x27, 0x44, 0xcf, 0x87, 0xec, 0xea, + 0x95, 0xc3, 0x88, 0xc6, 0xea, 0x7a, 0xd5, 0xa9, 0xa8, 0xd7, 0xc6, 0xf4, 0x2e, 0x53, 0xb3, 0xea, + 0xfa, 0x95, 0xbd, 0x2c, 0xf8, 0x73, 0x6b, 0x52, 0x94, 0xbb, 0x2d, 0x39, 0x8a, 0x1b, 0x87, 0x96, + 0x97, 0xda, 0x7f, 0x06, 0xd5, 0xfc, 0x0e, 0x0e, 0x65, 0xe0, 0x0e, 0x6c, 0x28, 0xab, 0xd7, 0x0e, + 0xbf, 0x40, 0x12, 0x78, 0xa6, 0xc0, 0x4c, 0x9f, 0xbe, 0x0d, 0x65, 0x10, 0x0f, 0x6e, 0x24, 0xab, + 0x2f, 0x1f, 0x61, 0x45, 0x82, 0x44, 0x9f, 0x7e, 0x0d, 0xe5, 0x9b, 0x95, 0x53, 0x05, 0x65, 0x49, + 0x1c, 0xa2, 0x19, 0x44, 0x9f, 0x28, 0x30, 0xdb, 0xaf, 0x4d, 0x43, 0x7d, 0x0c, 0xcb, 0xa3, 0x71, + 0xfd, 0x28, 0x4b, 0xe2, 0x90, 0xc8, 0xef, 0x4d, 0xb2, 0x21, 0x71, 0x60, 0xa7, 0x94, 0x0d, 0x89, + 0x83, 0xdb, 0x1e, 0xf4, 0x6b, 0x25, 0xf9, 0x82, 0xd2, 0x9b, 0xc6, 0xcd, 0xbc, 0x40, 0xef, 0xcb, + 0xe5, 0x95, 0x23, 0xae, 0x8a, 0x8f, 0x68, 0x6e, 0xd7, 0x91, 0x3d, 0xa2, 0x07, 0x35, 0x47, 0xd5, + 0xc6, 0xa1, 0xe5, 0xa5, 0xf6, 0x5f, 0x29, 0x30, 0xdf, 0xbf, 0x97, 0x40, 0x37, 0xfa, 0xda, 0x95, + 0x43, 0xe4, 0xe6, 0xd1, 0x16, 0xf5, 0x8a, 0x8e, 0xae, 0x10, 0xcd, 0x35, 0x2e, 0x2f, 0x40, 0xaf, + 0x1d, 0x7e, 0x41, 0x7e, 0x74, 0x74, 0xd1, 0xe8, 0x6f, 0x5a, 0x1e, 0x97, 0x57, 0x8e, 0xb8, 0x4a, + 0x10, 0xaa, 0x9e, 0xfa, 0xf9, 0xd7, 0x9f, 0x5e, 0x51, 0xee, 0x68, 0x9f, 0x7d, 0x39, 0xaf, 0x7c, + 0xfe, 0xe5, 0xbc, 0xf2, 0x9f, 0x2f, 0xe7, 0x95, 0xdf, 0x7e, 0x35, 0x7f, 0xe2, 0xf3, 0xaf, 0xe6, + 0x4f, 0xfc, 0xeb, 0xab, 0xf9, 0x13, 0x8f, 0x5f, 0x3b, 0xe4, 0xcf, 0xd6, 0xfb, 0x8d, 0xf8, 0x6f, + 0x85, 0x82, 0xa7, 0x2d, 0xe2, 0x6f, 0x0f, 0xf2, 0x3f, 0x09, 0xba, 0xf1, 0xff, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xab, 0xb8, 0x76, 0x40, 0xcd, 0x34, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4299,12 +4299,12 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.SortitionLambdaPenalty) > 0 { - for iNdEx := len(m.SortitionLambdaPenalty) - 1; iNdEx >= 0; iNdEx-- { + if len(m.LambdaInitialScore) > 0 { + for iNdEx := len(m.LambdaInitialScore) - 1; iNdEx >= 0; iNdEx-- { { - size := m.SortitionLambdaPenalty[iNdEx].Size() + size := m.LambdaInitialScore[iNdEx].Size() i -= size - if _, err := m.SortitionLambdaPenalty[iNdEx].MarshalTo(dAtA[i:]); err != nil { + if _, err := m.LambdaInitialScore[iNdEx].MarshalTo(dAtA[i:]); err != nil { return 0, err } i = encodeVarintTx(dAtA, i, uint64(size)) @@ -7421,8 +7421,8 @@ func (m *OptionalParams) Size() (n int) { n += 2 + l + sovTx(uint64(l)) } } - if len(m.SortitionLambdaPenalty) > 0 { - for _, e := range m.SortitionLambdaPenalty { + if len(m.LambdaInitialScore) > 0 { + for _, e := range m.LambdaInitialScore { l = e.Size() n += 2 + l + sovTx(uint64(l)) } @@ -10838,7 +10838,7 @@ func (m *OptionalParams) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 55: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SortitionLambdaPenalty", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LambdaInitialScore", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10867,8 +10867,8 @@ func (m *OptionalParams) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } var v github_com_allora_network_allora_chain_math.Dec - m.SortitionLambdaPenalty = append(m.SortitionLambdaPenalty, v) - if err := m.SortitionLambdaPenalty[len(m.SortitionLambdaPenalty)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.LambdaInitialScore = append(m.LambdaInitialScore, v) + if err := m.LambdaInitialScore[len(m.LambdaInitialScore)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex From 7ea5a28c2557efdc0595bcb2ec1901a14536c885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 17:58:21 -0300 Subject: [PATCH 16/19] Add genesis upgrades --- .../api/emissions/v7/genesis.pulsar.go | 1964 ++++++++++------- x/emissions/keeper/genesis.go | 185 +- x/emissions/proto/emissions/v7/genesis.proto | 12 + x/emissions/types/genesis.go | 3 + x/emissions/types/genesis.pb.go | 612 +++-- 5 files changed, 1769 insertions(+), 1007 deletions(-) diff --git a/x/emissions/api/emissions/v7/genesis.pulsar.go b/x/emissions/api/emissions/v7/genesis.pulsar.go index a7edff3fa..8b133a58a 100644 --- a/x/emissions/api/emissions/v7/genesis.pulsar.go +++ b/x/emissions/api/emissions/v7/genesis.pulsar.go @@ -873,6 +873,159 @@ func (x *_GenesisState_20_list) IsValid() bool { return x.list != nil } +var _ protoreflect.List = (*_GenesisState_86_list)(nil) + +type _GenesisState_86_list struct { + list *[]*TopicIdAndDec +} + +func (x *_GenesisState_86_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_86_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_86_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*TopicIdAndDec) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_86_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*TopicIdAndDec) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_86_list) AppendMutable() protoreflect.Value { + v := new(TopicIdAndDec) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_86_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_86_list) NewElement() protoreflect.Value { + v := new(TopicIdAndDec) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_86_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.List = (*_GenesisState_87_list)(nil) + +type _GenesisState_87_list struct { + list *[]*TopicIdAndDec +} + +func (x *_GenesisState_87_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_87_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_87_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*TopicIdAndDec) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_87_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*TopicIdAndDec) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_87_list) AppendMutable() protoreflect.Value { + v := new(TopicIdAndDec) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_87_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_87_list) NewElement() protoreflect.Value { + v := new(TopicIdAndDec) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_87_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.List = (*_GenesisState_88_list)(nil) + +type _GenesisState_88_list struct { + list *[]*TopicIdAndDec +} + +func (x *_GenesisState_88_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_88_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_88_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*TopicIdAndDec) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_88_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*TopicIdAndDec) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_88_list) AppendMutable() protoreflect.Value { + v := new(TopicIdAndDec) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_88_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_88_list) NewElement() protoreflect.Value { + v := new(TopicIdAndDec) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_88_list) IsValid() bool { + return x.list != nil +} + var _ protoreflect.List = (*_GenesisState_22_list)(nil) type _GenesisState_22_list struct { @@ -3873,6 +4026,9 @@ var ( fd_GenesisState_previous_inference_reward_fraction protoreflect.FieldDescriptor fd_GenesisState_previous_forecast_reward_fraction protoreflect.FieldDescriptor fd_GenesisState_previous_forecaster_score_ratio protoreflect.FieldDescriptor + fd_GenesisState_initial_inferer_ema_score protoreflect.FieldDescriptor + fd_GenesisState_initial_forecaster_ema_score protoreflect.FieldDescriptor + fd_GenesisState_initial_reputer_ema_score protoreflect.FieldDescriptor fd_GenesisState_total_stake protoreflect.FieldDescriptor fd_GenesisState_topic_stake protoreflect.FieldDescriptor fd_GenesisState_stake_reputer_authority protoreflect.FieldDescriptor @@ -3960,6 +4116,9 @@ func init() { fd_GenesisState_previous_inference_reward_fraction = md_GenesisState.Fields().ByName("previous_inference_reward_fraction") fd_GenesisState_previous_forecast_reward_fraction = md_GenesisState.Fields().ByName("previous_forecast_reward_fraction") fd_GenesisState_previous_forecaster_score_ratio = md_GenesisState.Fields().ByName("previous_forecaster_score_ratio") + fd_GenesisState_initial_inferer_ema_score = md_GenesisState.Fields().ByName("initial_inferer_ema_score") + fd_GenesisState_initial_forecaster_ema_score = md_GenesisState.Fields().ByName("initial_forecaster_ema_score") + fd_GenesisState_initial_reputer_ema_score = md_GenesisState.Fields().ByName("initial_reputer_ema_score") fd_GenesisState_total_stake = md_GenesisState.Fields().ByName("total_stake") fd_GenesisState_topic_stake = md_GenesisState.Fields().ByName("topic_stake") fd_GenesisState_stake_reputer_authority = md_GenesisState.Fields().ByName("stake_reputer_authority") @@ -4204,6 +4363,24 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } + if len(x.InitialInfererEmaScore) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_86_list{list: &x.InitialInfererEmaScore}) + if !f(fd_GenesisState_initial_inferer_ema_score, value) { + return + } + } + if len(x.InitialForecasterEmaScore) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_87_list{list: &x.InitialForecasterEmaScore}) + if !f(fd_GenesisState_initial_forecaster_ema_score, value) { + return + } + } + if len(x.InitialReputerEmaScore) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_88_list{list: &x.InitialReputerEmaScore}) + if !f(fd_GenesisState_initial_reputer_ema_score, value) { + return + } + } if x.TotalStake != "" { value := protoreflect.ValueOfString(x.TotalStake) if !f(fd_GenesisState_total_stake, value) { @@ -4635,6 +4812,12 @@ func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool return len(x.PreviousForecastRewardFraction) != 0 case "emissions.v7.GenesisState.previous_forecaster_score_ratio": return len(x.PreviousForecasterScoreRatio) != 0 + case "emissions.v7.GenesisState.initial_inferer_ema_score": + return len(x.InitialInfererEmaScore) != 0 + case "emissions.v7.GenesisState.initial_forecaster_ema_score": + return len(x.InitialForecasterEmaScore) != 0 + case "emissions.v7.GenesisState.initial_reputer_ema_score": + return len(x.InitialReputerEmaScore) != 0 case "emissions.v7.GenesisState.total_stake": return x.TotalStake != "" case "emissions.v7.GenesisState.topic_stake": @@ -4815,6 +4998,12 @@ func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { x.PreviousForecastRewardFraction = nil case "emissions.v7.GenesisState.previous_forecaster_score_ratio": x.PreviousForecasterScoreRatio = nil + case "emissions.v7.GenesisState.initial_inferer_ema_score": + x.InitialInfererEmaScore = nil + case "emissions.v7.GenesisState.initial_forecaster_ema_score": + x.InitialForecasterEmaScore = nil + case "emissions.v7.GenesisState.initial_reputer_ema_score": + x.InitialReputerEmaScore = nil case "emissions.v7.GenesisState.total_stake": x.TotalStake = "" case "emissions.v7.GenesisState.topic_stake": @@ -5065,6 +5254,24 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto } listValue := &_GenesisState_20_list{list: &x.PreviousForecasterScoreRatio} return protoreflect.ValueOfList(listValue) + case "emissions.v7.GenesisState.initial_inferer_ema_score": + if len(x.InitialInfererEmaScore) == 0 { + return protoreflect.ValueOfList(&_GenesisState_86_list{}) + } + listValue := &_GenesisState_86_list{list: &x.InitialInfererEmaScore} + return protoreflect.ValueOfList(listValue) + case "emissions.v7.GenesisState.initial_forecaster_ema_score": + if len(x.InitialForecasterEmaScore) == 0 { + return protoreflect.ValueOfList(&_GenesisState_87_list{}) + } + listValue := &_GenesisState_87_list{list: &x.InitialForecasterEmaScore} + return protoreflect.ValueOfList(listValue) + case "emissions.v7.GenesisState.initial_reputer_ema_score": + if len(x.InitialReputerEmaScore) == 0 { + return protoreflect.ValueOfList(&_GenesisState_88_list{}) + } + listValue := &_GenesisState_88_list{list: &x.InitialReputerEmaScore} + return protoreflect.ValueOfList(listValue) case "emissions.v7.GenesisState.total_stake": value := x.TotalStake return protoreflect.ValueOfString(value) @@ -5523,6 +5730,18 @@ func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value lv := value.List() clv := lv.(*_GenesisState_20_list) x.PreviousForecasterScoreRatio = *clv.list + case "emissions.v7.GenesisState.initial_inferer_ema_score": + lv := value.List() + clv := lv.(*_GenesisState_86_list) + x.InitialInfererEmaScore = *clv.list + case "emissions.v7.GenesisState.initial_forecaster_ema_score": + lv := value.List() + clv := lv.(*_GenesisState_87_list) + x.InitialForecasterEmaScore = *clv.list + case "emissions.v7.GenesisState.initial_reputer_ema_score": + lv := value.List() + clv := lv.(*_GenesisState_88_list) + x.InitialReputerEmaScore = *clv.list case "emissions.v7.GenesisState.total_stake": x.TotalStake = value.Interface().(string) case "emissions.v7.GenesisState.topic_stake": @@ -5894,6 +6113,24 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p } value := &_GenesisState_20_list{list: &x.PreviousForecasterScoreRatio} return protoreflect.ValueOfList(value) + case "emissions.v7.GenesisState.initial_inferer_ema_score": + if x.InitialInfererEmaScore == nil { + x.InitialInfererEmaScore = []*TopicIdAndDec{} + } + value := &_GenesisState_86_list{list: &x.InitialInfererEmaScore} + return protoreflect.ValueOfList(value) + case "emissions.v7.GenesisState.initial_forecaster_ema_score": + if x.InitialForecasterEmaScore == nil { + x.InitialForecasterEmaScore = []*TopicIdAndDec{} + } + value := &_GenesisState_87_list{list: &x.InitialForecasterEmaScore} + return protoreflect.ValueOfList(value) + case "emissions.v7.GenesisState.initial_reputer_ema_score": + if x.InitialReputerEmaScore == nil { + x.InitialReputerEmaScore = []*TopicIdAndDec{} + } + value := &_GenesisState_88_list{list: &x.InitialReputerEmaScore} + return protoreflect.ValueOfList(value) case "emissions.v7.GenesisState.topic_stake": if x.TopicStake == nil { x.TopicStake = []*TopicIdAndInt{} @@ -6327,6 +6564,15 @@ func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) case "emissions.v7.GenesisState.previous_forecaster_score_ratio": list := []*TopicIdAndDec{} return protoreflect.ValueOfList(&_GenesisState_20_list{list: &list}) + case "emissions.v7.GenesisState.initial_inferer_ema_score": + list := []*TopicIdAndDec{} + return protoreflect.ValueOfList(&_GenesisState_86_list{list: &list}) + case "emissions.v7.GenesisState.initial_forecaster_ema_score": + list := []*TopicIdAndDec{} + return protoreflect.ValueOfList(&_GenesisState_87_list{list: &list}) + case "emissions.v7.GenesisState.initial_reputer_ema_score": + list := []*TopicIdAndDec{} + return protoreflect.ValueOfList(&_GenesisState_88_list{list: &list}) case "emissions.v7.GenesisState.total_stake": return protoreflect.ValueOfString("") case "emissions.v7.GenesisState.topic_stake": @@ -6692,6 +6938,24 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { n += 2 + l + runtime.Sov(uint64(l)) } } + if len(x.InitialInfererEmaScore) > 0 { + for _, e := range x.InitialInfererEmaScore { + l = options.Size(e) + n += 2 + l + runtime.Sov(uint64(l)) + } + } + if len(x.InitialForecasterEmaScore) > 0 { + for _, e := range x.InitialForecasterEmaScore { + l = options.Size(e) + n += 2 + l + runtime.Sov(uint64(l)) + } + } + if len(x.InitialReputerEmaScore) > 0 { + for _, e := range x.InitialReputerEmaScore { + l = options.Size(e) + n += 2 + l + runtime.Sov(uint64(l)) + } + } l = len(x.TotalStake) if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) @@ -7093,6 +7357,60 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.InitialReputerEmaScore) > 0 { + for iNdEx := len(x.InitialReputerEmaScore) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.InitialReputerEmaScore[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x5 + i-- + dAtA[i] = 0xc2 + } + } + if len(x.InitialForecasterEmaScore) > 0 { + for iNdEx := len(x.InitialForecasterEmaScore) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.InitialForecasterEmaScore[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x5 + i-- + dAtA[i] = 0xba + } + } + if len(x.InitialInfererEmaScore) > 0 { + for iNdEx := len(x.InitialInfererEmaScore) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.InitialInfererEmaScore[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x5 + i-- + dAtA[i] = 0xb2 + } + } if len(x.MadInferences) > 0 { for iNdEx := len(x.MadInferences) - 1; iNdEx >= 0; iNdEx-- { encoded, err := options.Marshal(x.MadInferences[iNdEx]) @@ -9250,6 +9568,108 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex + case 86: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field InitialInfererEmaScore", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.InitialInfererEmaScore = append(x.InitialInfererEmaScore, &TopicIdAndDec{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.InitialInfererEmaScore[len(x.InitialInfererEmaScore)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 87: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field InitialForecasterEmaScore", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.InitialForecasterEmaScore = append(x.InitialForecasterEmaScore, &TopicIdAndDec{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.InitialForecasterEmaScore[len(x.InitialForecasterEmaScore)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 88: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field InitialReputerEmaScore", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.InitialReputerEmaScore = append(x.InitialReputerEmaScore, &TopicIdAndDec{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.InitialReputerEmaScore[len(x.InitialReputerEmaScore)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex case 21: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TotalStake", wireType) @@ -28482,6 +28902,15 @@ type GenesisState struct { PreviousForecastRewardFraction []*TopicIdActorIdDec `protobuf:"bytes,19,rep,name=previous_forecast_reward_fraction,json=previousForecastRewardFraction,proto3" json:"previous_forecast_reward_fraction,omitempty"` // map of (topic, forecaster) -> ratio of forecaster score PreviousForecasterScoreRatio []*TopicIdAndDec `protobuf:"bytes,20,rep,name=previous_forecaster_score_ratio,json=previousForecasterScoreRatio,proto3" json:"previous_forecaster_score_ratio,omitempty"` + // current inferer ema scores to apply per topic + // map of topic -> inferer ema score + InitialInfererEmaScore []*TopicIdAndDec `protobuf:"bytes,86,rep,name=initial_inferer_ema_score,json=initialInfererEmaScore,proto3" json:"initial_inferer_ema_score,omitempty"` + // current forecaster ema scores to apply per topic + // map of topic -> forecaster ema score + InitialForecasterEmaScore []*TopicIdAndDec `protobuf:"bytes,87,rep,name=initial_forecaster_ema_score,json=initialForecasterEmaScore,proto3" json:"initial_forecaster_ema_score,omitempty"` + // current reputer ema scores to apply per topic + // map of topic -> reputer ema score + InitialReputerEmaScore []*TopicIdAndDec `protobuf:"bytes,88,rep,name=initial_reputer_ema_score,json=initialReputerEmaScore,proto3" json:"initial_reputer_ema_score,omitempty"` // total sum stake of all stakers on the network TotalStake string `protobuf:"bytes,21,opt,name=total_stake,json=totalStake,proto3" json:"total_stake,omitempty"` // for every topic, how much total stake does that topic have accumulated? @@ -28769,6 +29198,27 @@ func (x *GenesisState) GetPreviousForecasterScoreRatio() []*TopicIdAndDec { return nil } +func (x *GenesisState) GetInitialInfererEmaScore() []*TopicIdAndDec { + if x != nil { + return x.InitialInfererEmaScore + } + return nil +} + +func (x *GenesisState) GetInitialForecasterEmaScore() []*TopicIdAndDec { + if x != nil { + return x.InitialForecasterEmaScore + } + return nil +} + +func (x *GenesisState) GetInitialReputerEmaScore() []*TopicIdAndDec { + if x != nil { + return x.InitialReputerEmaScore + } + return nil +} + func (x *GenesisState) GetTotalStake() string { if x != nil { return x.TotalStake @@ -30818,7 +31268,7 @@ var file_emissions_v7_genesis_proto_rawDesc = []byte{ 0x72, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x3d, 0x0a, 0x0c, + 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x3f, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x50, 0x61, 0x72, 0x61, @@ -30915,700 +31365,717 @@ var file_emissions_v7_genesis_proto_rawDesc = []byte{ 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, 0x1c, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x61, 0x74, 0x69, 0x6f, 0x12, 0x51, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, - 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x57, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, - 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x58, - 0x0a, 0x18, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x66, 0x72, 0x6f, 0x6d, - 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, - 0x74, 0x52, 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x53, 0x75, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5d, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x19, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x6b, 0x0a, 0x22, 0x73, 0x74, 0x61, 0x6b, 0x65, - 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x5f, 0x75, 0x70, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x1a, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, - 0x64, 0x49, 0x6e, 0x74, 0x52, 0x1e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x55, 0x70, 0x6f, 0x6e, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x19, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, 0x16, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x12, 0x6e, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x1c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x5e, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1d, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x14, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x90, 0x01, 0x0a, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x5f, 0x62, 0x79, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x78, 0x0a, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x5f, 0x62, - 0x79, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x45, 0x0a, - 0x0a, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x61, 0x74, 0x69, 0x6f, 0x12, 0x56, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, + 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x56, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, + 0x64, 0x44, 0x65, 0x63, 0x52, 0x16, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x5c, 0x0a, 0x1c, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x57, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, + 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x45, 0x6d, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x56, 0x0a, 0x19, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x6d, + 0x61, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x58, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, 0x16, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x12, 0x57, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x17, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x18, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x52, + 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x53, 0x75, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5d, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x6b, 0x0a, 0x22, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x66, + 0x72, 0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x75, + 0x70, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, - 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, - 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, 0x09, 0x66, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, - 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, - 0x65, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x08, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x4c, 0x69, 0x62, 0x50, - 0x32, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x47, - 0x0a, 0x11, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, - 0x6e, 0x75, 0x65, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x46, 0x65, 0x65, - 0x52, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x12, 0x4f, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x76, 0x69, - 0x6f, 0x75, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, - 0x44, 0x65, 0x63, 0x52, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x51, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x5f, - 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0d, 0x61, 0x6c, - 0x6c, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x61, - 0x6c, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x18, 0x27, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x52, 0x0c, 0x61, - 0x6c, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x5d, 0x0a, 0x10, 0x61, - 0x6c, 0x6c, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, - 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x4c, - 0x6f, 0x73, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x14, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, - 0x6f, 0x73, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x2d, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x2a, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x28, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x54, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x18, 0x37, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x37, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6e, 0x64, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x6e, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x12, 0x5a, 0x0a, 0x19, 0x75, - 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x6e, 0x74, 0x52, 0x1e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x55, 0x70, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x19, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, + 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, 0x16, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x6e, + 0x0a, 0x17, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, + 0x5f, 0x62, 0x79, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5e, + 0x0a, 0x17, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, + 0x5f, 0x62, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x41, + 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x90, + 0x01, 0x0a, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x12, 0x78, 0x0a, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x5f, 0x62, 0x79, 0x5f, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x1c, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x69, + 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x18, + 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, 0x09, 0x66, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, + 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, + 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x08, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x11, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, + 0x65, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, + 0x64, 0x49, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x46, 0x65, 0x65, 0x52, 0x65, + 0x76, 0x65, 0x6e, 0x75, 0x65, 0x12, 0x4f, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x25, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, + 0x63, 0x52, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x51, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x17, - 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x6a, 0x0a, 0x1a, 0x75, 0x6e, 0x66, 0x75, 0x6c, - 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, - 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x18, 0x75, 0x6e, 0x66, 0x75, 0x6c, - 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x70, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x49, + 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, + 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x52, 0x0c, 0x61, 0x6c, 0x6c, + 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x5d, 0x0a, 0x10, 0x61, 0x6c, 0x6c, + 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x28, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x4c, 0x6f, 0x73, + 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x14, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, + 0x18, 0x29, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x73, 0x52, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x73, + 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x2d, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, + 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x64, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x28, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x54, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x18, 0x37, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6e, 0x64, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x6e, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x12, 0x5a, 0x0a, 0x19, 0x75, 0x6e, 0x66, + 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, + 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x72, 0x69, 0x70, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x71, 0x0a, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, - 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, - 0x74, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, - 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, - 0x65, 0x74, 0x73, 0x12, 0x77, 0x0a, 0x21, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x6f, - 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1e, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x8a, 0x01, 0x0a, - 0x28, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x66, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, + 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x17, 0x75, 0x6e, + 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x6a, 0x0a, 0x1a, 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, + 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, + 0x63, 0x65, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x41, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x18, 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, + 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x70, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x41, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, + 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x72, 0x69, 0x70, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x71, + 0x0a, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, + 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, + 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x49, - 0x6e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x24, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, - 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x61, 0x69, - 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x2e, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, - 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x28, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, - 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, - 0x9b, 0x01, 0x0a, 0x31, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, - 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, - 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x2b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, + 0x73, 0x12, 0x77, 0x0a, 0x21, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, + 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, + 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1e, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x28, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x66, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x23, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x49, 0x6e, 0x46, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x24, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x6e, 0x61, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, + 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x61, 0x69, 0x76, 0x65, + 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x2e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, + 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x28, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, + 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x9b, 0x01, 0x0a, 0x31, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, - 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, - 0x65, 0x74, 0x73, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, + 0x65, 0x74, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x2b, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, - 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x34, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x9b, 0x01, 0x0a, 0x31, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, - 0x72, 0x65, 0x74, 0x73, 0x18, 0x34, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x2e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, - 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, - 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, - 0x72, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, - 0x63, 0x0a, 0x18, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x35, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x15, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x65, 0x0a, 0x19, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x6c, 0x61, - 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x18, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x74, 0x0a, 0x25, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x6f, 0x73, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x41, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x20, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x54, 0x6f, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6f, 0x73, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x56, 0x0a, 0x16, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x3a, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x73, 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x77, 0x0a, 0x23, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, - 0x69, 0x72, 0x52, 0x1e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x73, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x74, 0x0a, 0x29, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, - 0x3f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, + 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, + 0x73, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x2b, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x34, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, + 0x74, 0x73, 0x18, 0x34, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, + 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x2e, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x2e, 0x0a, + 0x13, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x72, 0x65, + 0x54, 0x65, 0x61, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x63, 0x0a, + 0x18, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x35, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, + 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x15, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x12, 0x65, 0x0a, 0x19, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, + 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x52, 0x16, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x74, 0x0a, 0x25, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x5f, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, + 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x20, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x54, 0x6f, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6f, 0x73, 0x73, 0x69, 0x62, + 0x6c, 0x65, 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, + 0x56, 0x0a, 0x16, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x73, 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x77, 0x0a, 0x23, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x3b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x37, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, + 0x52, 0x1e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x74, 0x0a, 0x29, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x3f, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, + 0x52, 0x24, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x7a, 0x0a, 0x2c, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, + 0x75, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, + 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, 0x27, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, + 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x61, 0x12, 0x74, 0x0a, 0x29, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, + 0x41, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, 0x24, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x7a, 0x0a, 0x2c, 0x70, 0x72, 0x65, 0x76, - 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x40, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, 0x27, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x45, 0x6d, 0x61, 0x12, 0x74, 0x0a, 0x29, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, - 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, - 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, - 0x61, 0x18, 0x41, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, - 0x64, 0x44, 0x65, 0x63, 0x52, 0x24, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x80, 0x01, 0x0a, 0x2c, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x42, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, - 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x55, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x26, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x12, 0x86, 0x01, - 0x0a, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x69, 0x6e, - 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, - 0x74, 0x18, 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x29, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x73, 0x18, 0x44, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x73, 0x12, 0x4c, - 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, - 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x18, - 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x15, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x60, 0x0a, 0x1b, 0x6c, 0x6f, 0x77, 0x65, - 0x73, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x63, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x80, 0x01, 0x0a, 0x2c, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x52, 0x26, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, + 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x12, 0x86, 0x01, 0x0a, 0x2f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, + 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x29, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, + 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x73, 0x18, 0x44, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x52, 0x18, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x46, 0x0a, 0x0f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x48, 0x20, + 0x69, 0x63, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x12, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x6e, 0x64, + 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x18, 0x6c, 0x6f, + 0x77, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x15, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x60, 0x0a, 0x1b, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, + 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x18, + 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x46, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x48, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, + 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x5a, 0x0a, 0x18, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x49, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x15, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x51, 0x0a, 0x0c, + 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x4a, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x0b, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, + 0x7f, 0x0a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x73, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, + 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, + 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, + 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, + 0x65, 0x63, 0x52, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x12, 0x73, 0x0a, 0x1d, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x1a, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x4d, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, + 0x12, 0x29, 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x16, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x50, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x18, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x49, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x15, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x51, - 0x0a, 0x0c, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x4a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0b, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x73, 0x12, 0x7f, 0x0a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x6d, 0x5f, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, - 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, - 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, - 0x2e, 0x44, 0x65, 0x63, 0x52, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x6d, 0x50, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x73, 0x12, 0x73, 0x0a, 0x1d, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, - 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x1a, 0x72, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x77, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x4d, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x77, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, - 0x17, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x4f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x16, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x50, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, - 0x6f, 0x72, 0x49, 0x64, 0x52, 0x14, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x17, 0x74, 0x6f, - 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6d, + 0x49, 0x64, 0x52, 0x14, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x17, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x6e, + 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x15, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, + 0x43, 0x0a, 0x1e, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x18, 0x52, 0x20, 0x03, 0x28, 0x04, 0x52, 0x1b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x1f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x53, 0x20, 0x03, 0x28, 0x04, 0x52, 0x1c, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x51, 0x0a, 0x16, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x54, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x15, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x52, 0x20, 0x03, 0x28, 0x04, 0x52, 0x1b, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x1f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, - 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x53, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x51, 0x0a, - 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x54, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x12, 0x42, 0x0a, 0x0e, 0x6d, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x18, 0x55, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, - 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, 0x0d, 0x6d, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, - 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x52, 0x1b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x52, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x22, 0x57, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, - 0x29, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x47, 0x0a, 0x0f, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, + 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x65, + 0x64, 0x69, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x42, + 0x0a, 0x0e, 0x6d, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x18, 0x55, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x37, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, + 0x44, 0x65, 0x63, 0x52, 0x0d, 0x6d, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x4a, 0x04, + 0x08, 0x0f, 0x10, 0x10, 0x52, 0x1b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x52, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x52, 0x1c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x22, + 0x57, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x29, 0x0a, + 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x47, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x22, 0x55, 0x0a, 0x15, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x58, 0x0a, 0x16, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x0a, + 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x76, 0x0a, 0x13, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x22, 0x64, 0x0a, 0x14, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x22, 0xb3, 0x01, 0x0a, 0x22, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x15, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x22, + 0x94, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x44, 0x65, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x03, 0x64, + 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, + 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, + 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, + 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, + 0x63, 0x52, 0x03, 0x64, 0x65, 0x63, 0x22, 0x6e, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, + 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, + 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, + 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, + 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x24, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd1, 0x01, 0x0a, 0x29, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x12, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x74, 0x0a, 0x19, 0x41, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, + 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x22, 0x99, 0x02, 0x0a, 0x3a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x1b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x18, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x9a, 0x01, 0x0a, + 0x22, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x17, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x09, 0x69, + 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x15, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, - 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x08, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, 0x08, 0x66, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x22, 0x7b, 0x0a, 0x18, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x70, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x69, 0x62, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x50, 0x32, 0x70, + 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x75, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, + 0x6e, 0x64, 0x44, 0x65, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x12, 0x49, 0x0a, 0x03, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, + 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x03, 0x64, 0x65, 0x63, 0x22, 0x96, 0x01, 0x0a, 0x1c, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x58, 0x0a, 0x16, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x2c, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x76, 0x0a, - 0x13, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x69, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0a, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x1b, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, + 0x61, 0x73, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, - 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x05, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x64, 0x0a, 0x14, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x19, 0x0a, - 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x22, 0xb3, 0x01, 0x0a, 0x22, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, - 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, - 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x15, 0x6c, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, - 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, - 0x74, 0x22, 0x94, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, - 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x49, 0x0a, - 0x03, 0x64, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, - 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, - 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, - 0x44, 0x65, 0x63, 0x52, 0x03, 0x64, 0x65, 0x63, 0x22, 0x6e, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, - 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, - 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x24, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd1, 0x01, 0x0a, 0x29, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x4c, - 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x74, 0x0a, 0x19, - 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x99, 0x02, 0x0a, 0x3a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x1b, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x18, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x9a, - 0x01, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x17, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x52, 0x09, + 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x25, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, + 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x55, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x73, 0x52, 0x13, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x5b, 0x0a, 0x10, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x06, 0x6e, 0x6f, + 0x6e, 0x63, 0x65, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x41, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, - 0x09, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, - 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x12, + 0x49, 0x64, 0x12, 0x58, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xa3, 0x01, 0x0a, + 0x1e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x08, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, - 0x08, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x22, 0x7b, 0x0a, 0x18, 0x4c, 0x69, 0x62, - 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x69, 0x62, 0x5f, 0x70, 0x32, 0x70, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x50, - 0x32, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x66, 0x66, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x75, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x12, 0x49, 0x0a, 0x03, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, - 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x03, 0x64, 0x65, 0x63, 0x22, 0x96, 0x01, - 0x0a, 0x1c, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x38, 0x0a, 0x0a, - 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, - 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0a, 0x69, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x1b, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, - 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, - 0x52, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x25, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x55, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x13, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x1e, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0b, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x5b, 0x0a, 0x10, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x6e, 0x6f, 0x6e, 0x63, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x06, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x12, 0x58, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xa3, - 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x25, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, - 0x69, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x32, 0x12, 0x4b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x96, 0x01, 0x0a, 0x1c, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x17, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x52, 0x15, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x6d, 0x0a, 0x13, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, - 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x52, 0x08, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x1c, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x42, 0x0a, 0x0c, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x22, 0xab, 0x01, 0x0a, 0x20, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x72, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0xc2, - 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x37, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, - 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, - 0x3a, 0x56, 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x25, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x69, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x31, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, + 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x32, 0x12, 0x4b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x96, + 0x01, 0x0a, 0x1c, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x17, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, + 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x52, 0x15, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x6d, 0x0a, 0x13, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x52, 0x08, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x1c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, + 0x72, 0x52, 0x0b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xab, + 0x01, 0x0a, 0x20, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0xc2, 0x01, 0x0a, + 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x37, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, + 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, + 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x37, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x76, 0x37, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x37, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x37, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x5c, 0x56, 0x37, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, + 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -31698,86 +32165,89 @@ var file_emissions_v7_genesis_proto_depIdxs = []int32{ 9, // 13: emissions.v7.GenesisState.previous_inference_reward_fraction:type_name -> emissions.v7.TopicIdActorIdDec 9, // 14: emissions.v7.GenesisState.previous_forecast_reward_fraction:type_name -> emissions.v7.TopicIdActorIdDec 20, // 15: emissions.v7.GenesisState.previous_forecaster_score_ratio:type_name -> emissions.v7.TopicIdAndDec - 10, // 16: emissions.v7.GenesisState.topic_stake:type_name -> emissions.v7.TopicIdAndInt - 11, // 17: emissions.v7.GenesisState.stake_reputer_authority:type_name -> emissions.v7.TopicIdActorIdInt - 11, // 18: emissions.v7.GenesisState.stake_sum_from_delegator:type_name -> emissions.v7.TopicIdActorIdInt - 12, // 19: emissions.v7.GenesisState.delegated_stakes:type_name -> emissions.v7.TopicIdDelegatorReputerDelegatorInfo - 11, // 20: emissions.v7.GenesisState.stake_from_delegators_upon_reputer:type_name -> emissions.v7.TopicIdActorIdInt - 9, // 21: emissions.v7.GenesisState.delegate_reward_per_share:type_name -> emissions.v7.TopicIdActorIdDec - 13, // 22: emissions.v7.GenesisState.stake_removals_by_block:type_name -> emissions.v7.BlockHeightTopicIdReputerStakeRemovalInfo - 14, // 23: emissions.v7.GenesisState.stake_removals_by_actor:type_name -> emissions.v7.ActorIdTopicIdBlockHeight - 15, // 24: emissions.v7.GenesisState.delegate_stake_removals_by_block:type_name -> emissions.v7.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo - 16, // 25: emissions.v7.GenesisState.delegate_stake_removals_by_actor:type_name -> emissions.v7.DelegatorReputerTopicIdBlockHeight - 17, // 26: emissions.v7.GenesisState.inferences:type_name -> emissions.v7.TopicIdActorIdInference - 18, // 27: emissions.v7.GenesisState.forecasts:type_name -> emissions.v7.TopicIdActorIdForecast - 19, // 28: emissions.v7.GenesisState.workers:type_name -> emissions.v7.LibP2pKeyAndOffchainNode - 19, // 29: emissions.v7.GenesisState.reputers:type_name -> emissions.v7.LibP2pKeyAndOffchainNode - 10, // 30: emissions.v7.GenesisState.topic_fee_revenue:type_name -> emissions.v7.TopicIdAndInt - 20, // 31: emissions.v7.GenesisState.previous_topic_weight:type_name -> emissions.v7.TopicIdAndDec - 21, // 32: emissions.v7.GenesisState.all_inferences:type_name -> emissions.v7.TopicIdBlockHeightInferences - 22, // 33: emissions.v7.GenesisState.all_forecasts:type_name -> emissions.v7.TopicIdBlockHeightForecasts - 23, // 34: emissions.v7.GenesisState.all_loss_bundles:type_name -> emissions.v7.TopicIdBlockHeightReputerValueBundles - 24, // 35: emissions.v7.GenesisState.network_loss_bundles:type_name -> emissions.v7.TopicIdBlockHeightValueBundles - 4, // 36: emissions.v7.GenesisState.open_worker_windows:type_name -> emissions.v7.BlockHeightAndTopicIds - 25, // 37: emissions.v7.GenesisState.unfulfilled_worker_nonces:type_name -> emissions.v7.TopicIdAndNonces - 26, // 38: emissions.v7.GenesisState.unfulfilled_reputer_nonces:type_name -> emissions.v7.TopicIdAndReputerRequestNonces - 3, // 39: emissions.v7.GenesisState.last_drip_block:type_name -> emissions.v7.TopicIdAndBlockHeight - 27, // 40: emissions.v7.GenesisState.latest_inferer_network_regrets:type_name -> emissions.v7.TopicIdActorIdTimeStampedValue - 27, // 41: emissions.v7.GenesisState.latest_forecaster_network_regrets:type_name -> emissions.v7.TopicIdActorIdTimeStampedValue - 28, // 42: emissions.v7.GenesisState.latest_one_in_forecaster_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue - 27, // 43: emissions.v7.GenesisState.latest_naive_inferer_network_regrets:type_name -> emissions.v7.TopicIdActorIdTimeStampedValue - 28, // 44: emissions.v7.GenesisState.latest_one_out_inferer_inferer_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue - 28, // 45: emissions.v7.GenesisState.latest_one_out_inferer_forecaster_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue - 28, // 46: emissions.v7.GenesisState.latest_one_out_forecaster_inferer_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue - 28, // 47: emissions.v7.GenesisState.latest_one_out_forecaster_forecaster_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue - 29, // 48: emissions.v7.GenesisState.topic_last_worker_commit:type_name -> emissions.v7.TopicIdTimestampedActorNonce - 29, // 49: emissions.v7.GenesisState.topic_last_reputer_commit:type_name -> emissions.v7.TopicIdTimestampedActorNonce - 3, // 50: emissions.v7.GenesisState.topic_to_next_possible_churning_block:type_name -> emissions.v7.TopicIdAndBlockHeight - 30, // 51: emissions.v7.GenesisState.block_to_active_topics:type_name -> emissions.v7.BlockHeightTopicIds - 31, // 52: emissions.v7.GenesisState.block_to_lowest_active_topic_weight:type_name -> emissions.v7.BlockHeightTopicIdWeightPair - 20, // 53: emissions.v7.GenesisState.previous_topic_quantile_inferer_score_ema:type_name -> emissions.v7.TopicIdAndDec - 20, // 54: emissions.v7.GenesisState.previous_topic_quantile_forecaster_score_ema:type_name -> emissions.v7.TopicIdAndDec - 20, // 55: emissions.v7.GenesisState.previous_topic_quantile_reputer_score_ema:type_name -> emissions.v7.TopicIdAndDec - 7, // 56: emissions.v7.GenesisState.count_inferer_inclusions_in_topic_active_set:type_name -> emissions.v7.TopicIdActorIdUint64 - 7, // 57: emissions.v7.GenesisState.count_forecaster_inclusions_in_topic_active_set:type_name -> emissions.v7.TopicIdActorIdUint64 - 2, // 58: emissions.v7.GenesisState.active_inferers:type_name -> emissions.v7.TopicAndActorId - 2, // 59: emissions.v7.GenesisState.active_forecasters:type_name -> emissions.v7.TopicAndActorId - 6, // 60: emissions.v7.GenesisState.lowest_inferer_score_ema:type_name -> emissions.v7.TopicIdActorIdScore - 6, // 61: emissions.v7.GenesisState.lowest_forecaster_score_ema:type_name -> emissions.v7.TopicIdActorIdScore - 2, // 62: emissions.v7.GenesisState.active_reputers:type_name -> emissions.v7.TopicAndActorId - 6, // 63: emissions.v7.GenesisState.lowest_reputer_score_ema:type_name -> emissions.v7.TopicIdActorIdScore - 32, // 64: emissions.v7.GenesisState.loss_bundles:type_name -> emissions.v7.TopicIdReputerReputerValueBundle - 2, // 65: emissions.v7.GenesisState.topic_worker_whitelist:type_name -> emissions.v7.TopicAndActorId - 2, // 66: emissions.v7.GenesisState.topic_reputer_whitelist:type_name -> emissions.v7.TopicAndActorId - 20, // 67: emissions.v7.GenesisState.last_median_inferences:type_name -> emissions.v7.TopicIdAndDec - 20, // 68: emissions.v7.GenesisState.mad_inferences:type_name -> emissions.v7.TopicIdAndDec - 34, // 69: emissions.v7.TopicIdAndTopic.topic:type_name -> emissions.v3.Topic - 35, // 70: emissions.v7.TopicIdBlockHeightScores.scores:type_name -> emissions.v3.Scores - 36, // 71: emissions.v7.TopicIdActorIdScore.score:type_name -> emissions.v3.Score - 37, // 72: emissions.v7.TopicIdActorIdListeningCoefficient.listening_coefficient:type_name -> emissions.v3.ListeningCoefficient - 38, // 73: emissions.v7.TopicIdDelegatorReputerDelegatorInfo.delegator_info:type_name -> emissions.v3.DelegatorInfo - 39, // 74: emissions.v7.BlockHeightTopicIdReputerStakeRemovalInfo.stake_removal_info:type_name -> emissions.v3.StakeRemovalInfo - 40, // 75: emissions.v7.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo.delegate_stake_removal_info:type_name -> emissions.v3.DelegateStakeRemovalInfo - 41, // 76: emissions.v7.TopicIdActorIdInference.inference:type_name -> emissions.v3.Inference - 42, // 77: emissions.v7.TopicIdActorIdForecast.forecast:type_name -> emissions.v3.Forecast - 43, // 78: emissions.v7.LibP2pKeyAndOffchainNode.offchain_node:type_name -> emissions.v3.OffchainNode - 44, // 79: emissions.v7.TopicIdBlockHeightInferences.inferences:type_name -> emissions.v3.Inferences - 45, // 80: emissions.v7.TopicIdBlockHeightForecasts.forecasts:type_name -> emissions.v3.Forecasts - 46, // 81: emissions.v7.TopicIdBlockHeightReputerValueBundles.reputer_value_bundles:type_name -> emissions.v3.ReputerValueBundles - 47, // 82: emissions.v7.TopicIdBlockHeightValueBundles.value_bundle:type_name -> emissions.v3.ValueBundle - 48, // 83: emissions.v7.TopicIdAndNonces.nonces:type_name -> emissions.v3.Nonces - 49, // 84: emissions.v7.TopicIdAndReputerRequestNonces.reputer_request_nonces:type_name -> emissions.v3.ReputerRequestNonces - 50, // 85: emissions.v7.TopicIdActorIdTimeStampedValue.timestamped_value:type_name -> emissions.v3.TimestampedValue - 50, // 86: emissions.v7.TopicIdActorIdActorIdTimeStampedValue.timestamped_value:type_name -> emissions.v3.TimestampedValue - 51, // 87: emissions.v7.TopicIdTimestampedActorNonce.timestamped_actor_nonce:type_name -> emissions.v3.TimestampedActorNonce - 52, // 88: emissions.v7.BlockHeightTopicIds.topic_ids:type_name -> emissions.v3.TopicIds - 53, // 89: emissions.v7.BlockHeightTopicIdWeightPair.topic_weight:type_name -> emissions.v3.TopicIdWeightPair - 54, // 90: emissions.v7.TopicIdReputerReputerValueBundle.reputer_value_bundle:type_name -> emissions.v3.ReputerValueBundle - 91, // [91:91] is the sub-list for method output_type - 91, // [91:91] is the sub-list for method input_type - 91, // [91:91] is the sub-list for extension type_name - 91, // [91:91] is the sub-list for extension extendee - 0, // [0:91] is the sub-list for field type_name + 20, // 16: emissions.v7.GenesisState.initial_inferer_ema_score:type_name -> emissions.v7.TopicIdAndDec + 20, // 17: emissions.v7.GenesisState.initial_forecaster_ema_score:type_name -> emissions.v7.TopicIdAndDec + 20, // 18: emissions.v7.GenesisState.initial_reputer_ema_score:type_name -> emissions.v7.TopicIdAndDec + 10, // 19: emissions.v7.GenesisState.topic_stake:type_name -> emissions.v7.TopicIdAndInt + 11, // 20: emissions.v7.GenesisState.stake_reputer_authority:type_name -> emissions.v7.TopicIdActorIdInt + 11, // 21: emissions.v7.GenesisState.stake_sum_from_delegator:type_name -> emissions.v7.TopicIdActorIdInt + 12, // 22: emissions.v7.GenesisState.delegated_stakes:type_name -> emissions.v7.TopicIdDelegatorReputerDelegatorInfo + 11, // 23: emissions.v7.GenesisState.stake_from_delegators_upon_reputer:type_name -> emissions.v7.TopicIdActorIdInt + 9, // 24: emissions.v7.GenesisState.delegate_reward_per_share:type_name -> emissions.v7.TopicIdActorIdDec + 13, // 25: emissions.v7.GenesisState.stake_removals_by_block:type_name -> emissions.v7.BlockHeightTopicIdReputerStakeRemovalInfo + 14, // 26: emissions.v7.GenesisState.stake_removals_by_actor:type_name -> emissions.v7.ActorIdTopicIdBlockHeight + 15, // 27: emissions.v7.GenesisState.delegate_stake_removals_by_block:type_name -> emissions.v7.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo + 16, // 28: emissions.v7.GenesisState.delegate_stake_removals_by_actor:type_name -> emissions.v7.DelegatorReputerTopicIdBlockHeight + 17, // 29: emissions.v7.GenesisState.inferences:type_name -> emissions.v7.TopicIdActorIdInference + 18, // 30: emissions.v7.GenesisState.forecasts:type_name -> emissions.v7.TopicIdActorIdForecast + 19, // 31: emissions.v7.GenesisState.workers:type_name -> emissions.v7.LibP2pKeyAndOffchainNode + 19, // 32: emissions.v7.GenesisState.reputers:type_name -> emissions.v7.LibP2pKeyAndOffchainNode + 10, // 33: emissions.v7.GenesisState.topic_fee_revenue:type_name -> emissions.v7.TopicIdAndInt + 20, // 34: emissions.v7.GenesisState.previous_topic_weight:type_name -> emissions.v7.TopicIdAndDec + 21, // 35: emissions.v7.GenesisState.all_inferences:type_name -> emissions.v7.TopicIdBlockHeightInferences + 22, // 36: emissions.v7.GenesisState.all_forecasts:type_name -> emissions.v7.TopicIdBlockHeightForecasts + 23, // 37: emissions.v7.GenesisState.all_loss_bundles:type_name -> emissions.v7.TopicIdBlockHeightReputerValueBundles + 24, // 38: emissions.v7.GenesisState.network_loss_bundles:type_name -> emissions.v7.TopicIdBlockHeightValueBundles + 4, // 39: emissions.v7.GenesisState.open_worker_windows:type_name -> emissions.v7.BlockHeightAndTopicIds + 25, // 40: emissions.v7.GenesisState.unfulfilled_worker_nonces:type_name -> emissions.v7.TopicIdAndNonces + 26, // 41: emissions.v7.GenesisState.unfulfilled_reputer_nonces:type_name -> emissions.v7.TopicIdAndReputerRequestNonces + 3, // 42: emissions.v7.GenesisState.last_drip_block:type_name -> emissions.v7.TopicIdAndBlockHeight + 27, // 43: emissions.v7.GenesisState.latest_inferer_network_regrets:type_name -> emissions.v7.TopicIdActorIdTimeStampedValue + 27, // 44: emissions.v7.GenesisState.latest_forecaster_network_regrets:type_name -> emissions.v7.TopicIdActorIdTimeStampedValue + 28, // 45: emissions.v7.GenesisState.latest_one_in_forecaster_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue + 27, // 46: emissions.v7.GenesisState.latest_naive_inferer_network_regrets:type_name -> emissions.v7.TopicIdActorIdTimeStampedValue + 28, // 47: emissions.v7.GenesisState.latest_one_out_inferer_inferer_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue + 28, // 48: emissions.v7.GenesisState.latest_one_out_inferer_forecaster_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue + 28, // 49: emissions.v7.GenesisState.latest_one_out_forecaster_inferer_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue + 28, // 50: emissions.v7.GenesisState.latest_one_out_forecaster_forecaster_network_regrets:type_name -> emissions.v7.TopicIdActorIdActorIdTimeStampedValue + 29, // 51: emissions.v7.GenesisState.topic_last_worker_commit:type_name -> emissions.v7.TopicIdTimestampedActorNonce + 29, // 52: emissions.v7.GenesisState.topic_last_reputer_commit:type_name -> emissions.v7.TopicIdTimestampedActorNonce + 3, // 53: emissions.v7.GenesisState.topic_to_next_possible_churning_block:type_name -> emissions.v7.TopicIdAndBlockHeight + 30, // 54: emissions.v7.GenesisState.block_to_active_topics:type_name -> emissions.v7.BlockHeightTopicIds + 31, // 55: emissions.v7.GenesisState.block_to_lowest_active_topic_weight:type_name -> emissions.v7.BlockHeightTopicIdWeightPair + 20, // 56: emissions.v7.GenesisState.previous_topic_quantile_inferer_score_ema:type_name -> emissions.v7.TopicIdAndDec + 20, // 57: emissions.v7.GenesisState.previous_topic_quantile_forecaster_score_ema:type_name -> emissions.v7.TopicIdAndDec + 20, // 58: emissions.v7.GenesisState.previous_topic_quantile_reputer_score_ema:type_name -> emissions.v7.TopicIdAndDec + 7, // 59: emissions.v7.GenesisState.count_inferer_inclusions_in_topic_active_set:type_name -> emissions.v7.TopicIdActorIdUint64 + 7, // 60: emissions.v7.GenesisState.count_forecaster_inclusions_in_topic_active_set:type_name -> emissions.v7.TopicIdActorIdUint64 + 2, // 61: emissions.v7.GenesisState.active_inferers:type_name -> emissions.v7.TopicAndActorId + 2, // 62: emissions.v7.GenesisState.active_forecasters:type_name -> emissions.v7.TopicAndActorId + 6, // 63: emissions.v7.GenesisState.lowest_inferer_score_ema:type_name -> emissions.v7.TopicIdActorIdScore + 6, // 64: emissions.v7.GenesisState.lowest_forecaster_score_ema:type_name -> emissions.v7.TopicIdActorIdScore + 2, // 65: emissions.v7.GenesisState.active_reputers:type_name -> emissions.v7.TopicAndActorId + 6, // 66: emissions.v7.GenesisState.lowest_reputer_score_ema:type_name -> emissions.v7.TopicIdActorIdScore + 32, // 67: emissions.v7.GenesisState.loss_bundles:type_name -> emissions.v7.TopicIdReputerReputerValueBundle + 2, // 68: emissions.v7.GenesisState.topic_worker_whitelist:type_name -> emissions.v7.TopicAndActorId + 2, // 69: emissions.v7.GenesisState.topic_reputer_whitelist:type_name -> emissions.v7.TopicAndActorId + 20, // 70: emissions.v7.GenesisState.last_median_inferences:type_name -> emissions.v7.TopicIdAndDec + 20, // 71: emissions.v7.GenesisState.mad_inferences:type_name -> emissions.v7.TopicIdAndDec + 34, // 72: emissions.v7.TopicIdAndTopic.topic:type_name -> emissions.v3.Topic + 35, // 73: emissions.v7.TopicIdBlockHeightScores.scores:type_name -> emissions.v3.Scores + 36, // 74: emissions.v7.TopicIdActorIdScore.score:type_name -> emissions.v3.Score + 37, // 75: emissions.v7.TopicIdActorIdListeningCoefficient.listening_coefficient:type_name -> emissions.v3.ListeningCoefficient + 38, // 76: emissions.v7.TopicIdDelegatorReputerDelegatorInfo.delegator_info:type_name -> emissions.v3.DelegatorInfo + 39, // 77: emissions.v7.BlockHeightTopicIdReputerStakeRemovalInfo.stake_removal_info:type_name -> emissions.v3.StakeRemovalInfo + 40, // 78: emissions.v7.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo.delegate_stake_removal_info:type_name -> emissions.v3.DelegateStakeRemovalInfo + 41, // 79: emissions.v7.TopicIdActorIdInference.inference:type_name -> emissions.v3.Inference + 42, // 80: emissions.v7.TopicIdActorIdForecast.forecast:type_name -> emissions.v3.Forecast + 43, // 81: emissions.v7.LibP2pKeyAndOffchainNode.offchain_node:type_name -> emissions.v3.OffchainNode + 44, // 82: emissions.v7.TopicIdBlockHeightInferences.inferences:type_name -> emissions.v3.Inferences + 45, // 83: emissions.v7.TopicIdBlockHeightForecasts.forecasts:type_name -> emissions.v3.Forecasts + 46, // 84: emissions.v7.TopicIdBlockHeightReputerValueBundles.reputer_value_bundles:type_name -> emissions.v3.ReputerValueBundles + 47, // 85: emissions.v7.TopicIdBlockHeightValueBundles.value_bundle:type_name -> emissions.v3.ValueBundle + 48, // 86: emissions.v7.TopicIdAndNonces.nonces:type_name -> emissions.v3.Nonces + 49, // 87: emissions.v7.TopicIdAndReputerRequestNonces.reputer_request_nonces:type_name -> emissions.v3.ReputerRequestNonces + 50, // 88: emissions.v7.TopicIdActorIdTimeStampedValue.timestamped_value:type_name -> emissions.v3.TimestampedValue + 50, // 89: emissions.v7.TopicIdActorIdActorIdTimeStampedValue.timestamped_value:type_name -> emissions.v3.TimestampedValue + 51, // 90: emissions.v7.TopicIdTimestampedActorNonce.timestamped_actor_nonce:type_name -> emissions.v3.TimestampedActorNonce + 52, // 91: emissions.v7.BlockHeightTopicIds.topic_ids:type_name -> emissions.v3.TopicIds + 53, // 92: emissions.v7.BlockHeightTopicIdWeightPair.topic_weight:type_name -> emissions.v3.TopicIdWeightPair + 54, // 93: emissions.v7.TopicIdReputerReputerValueBundle.reputer_value_bundle:type_name -> emissions.v3.ReputerValueBundle + 94, // [94:94] is the sub-list for method output_type + 94, // [94:94] is the sub-list for method input_type + 94, // [94:94] is the sub-list for extension type_name + 94, // [94:94] is the sub-list for extension extendee + 0, // [0:94] is the sub-list for field type_name } func init() { file_emissions_v7_genesis_proto_init() } diff --git a/x/emissions/keeper/genesis.go b/x/emissions/keeper/genesis.go index e60d72de9..ebe0d7014 100644 --- a/x/emissions/keeper/genesis.go +++ b/x/emissions/keeper/genesis.go @@ -744,6 +744,33 @@ func (k *Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) erro } } + //InitialInfererEmaScore []*TopicIdAndDec + for _, topicIdAndDec := range data.InitialInfererEmaScore { + if topicIdAndDec != nil { + if err := k.initialInfererEmaScore.Set(ctx, topicIdAndDec.TopicId, topicIdAndDec.Dec); err != nil { + return errors.Wrap(err, "error setting initialInfererEmaScore") + } + } + } + + //InitialForecasterEmaScore []*TopicIdAndDec + for _, topicIdAndDec := range data.InitialForecasterEmaScore { + if topicIdAndDec != nil { + if err := k.initialForecasterEmaScore.Set(ctx, topicIdAndDec.TopicId, topicIdAndDec.Dec); err != nil { + return errors.Wrap(err, "error setting initialForecasterEmaScore") + } + } + } + + //InitialReputerEmaScore []*TopicIdAndDec + for _, topicIdAndDec := range data.InitialReputerEmaScore { + if topicIdAndDec != nil { + if err := k.initialReputerEmaScore.Set(ctx, topicIdAndDec.TopicId, topicIdAndDec.Dec); err != nil { + return errors.Wrap(err, "error setting initialReputerEmaScore") + } + } + } + // ActiveInferers []*TopicAndActorId for _, topicAndActorId := range data.ActiveInferers { if topicAndActorId != nil { @@ -1079,6 +1106,51 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) topicRewardNonce = append(topicRewardNonce, &topicIdAndBlockHeight) } + var initialInfererEmaScore []*types.TopicIdAndDec + if err := k.initialInfererEmaScore.Walk( + ctx, + nil, + func(key TopicId, value alloraMath.Dec) (stop bool, err error) { + initialInfererEmaScore = append(initialInfererEmaScore, &types.TopicIdAndDec{ + TopicId: key, + Dec: value, + }) + return false, nil + }, + ); err != nil { + return nil, errors.Wrap(err, "failed to walk inferer initial EMA score per topic") + } + + var initialForecasterEmaScore []*types.TopicIdAndDec + if err := k.initialForecasterEmaScore.Walk( + ctx, + nil, + func(key TopicId, value alloraMath.Dec) (stop bool, err error) { + initialForecasterEmaScore = append(initialForecasterEmaScore, &types.TopicIdAndDec{ + TopicId: key, + Dec: value, + }) + return false, nil + }, + ); err != nil { + return nil, errors.Wrap(err, "failed to walk forecaster initial EMA score per topic") + } + + var initialReputerEmaScore []*types.TopicIdAndDec + if err := k.initialReputerEmaScore.Walk( + ctx, + nil, + func(key TopicId, value alloraMath.Dec) (stop bool, err error) { + initialReputerEmaScore = append(initialReputerEmaScore, &types.TopicIdAndDec{ + TopicId: key, + Dec: value, + }) + return false, nil + }, + ); err != nil { + return nil, errors.Wrap(err, "failed to walk reputer initial EMA score per topic") + } + infererScoresByBlock := make([]*types.TopicIdBlockHeightScores, 0) infererScoresByBlockIter, err := k.infererScoresByBlock.Iterate(ctx, nil) if err != nil { @@ -2314,61 +2386,64 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) } return &types.GenesisState{ - Params: moduleParams, - NextTopicId: nextTopicId, - Topics: topics, - ActiveTopics: activeTopics, - RewardableTopics: rewardableTopics, - TopicWorkers: topicWorkers, - TopicReputers: topicReputers, - TopicRewardNonce: topicRewardNonce, - InfererScoresByBlock: infererScoresByBlock, - ForecasterScoresByBlock: forecasterScoresByBlock, - ReputerScoresByBlock: reputerScoresByBlock, - InfererScoreEmas: innfererScoreEmas, - ForecasterScoreEmas: forecasterScoreEmas, - ReputerScoreEmas: reputerScoreEmas, - ReputerListeningCoefficient: reputerListeningCoefficient, - PreviousReputerRewardFraction: previousReputerRewardFraction, - PreviousInferenceRewardFraction: previousInferenceRewardFraction, - PreviousForecastRewardFraction: previousForecastRewardFraction, - TotalStake: totalStake, - TopicStake: topicStake, - StakeReputerAuthority: stakeReputerAuthority, - StakeSumFromDelegator: stakeSumFromDelegator, - DelegatedStakes: delegatedStakes, - StakeFromDelegatorsUponReputer: stakeFromDelegatorsUponReputer, - DelegateRewardPerShare: delegateRewardPerShare, - StakeRemovalsByBlock: stakeRemovalsByBlock, - StakeRemovalsByActor: stakeRemovalsByActor, - DelegateStakeRemovalsByBlock: delegateStakeRemovalsByBlock, - DelegateStakeRemovalsByActor: delegateStakeRemovalsByActor, - Inferences: inferences, - Forecasts: forecasts, - Workers: workers, - Reputers: reputers, - TopicFeeRevenue: topicFeeRevenue, - PreviousTopicWeight: previousTopicWeight, - AllInferences: allInferences, - AllForecasts: allForecasts, - AllLossBundles: allLossBundles, - NetworkLossBundles: networkLossBundles, - PreviousPercentageRewardToStakedReputers: previousPercentageRewardToStakedReputers, - OpenWorkerWindows: openWorkerWindows, - UnfulfilledWorkerNonces: unfulfilledWorkerNonces, - UnfulfilledReputerNonces: unfulfilledReputerNonces, - LastDripBlock: lastDripBlock, - LatestInfererNetworkRegrets: latestInfererNetworkRegrets, - LatestForecasterNetworkRegrets: latestForecasterNetworkRegrets, - LatestOneInForecasterNetworkRegrets: latestOneInForecasterNetworkRegrets, - PreviousForecasterScoreRatio: previousForecasterScoreRatio, - CoreTeamAddresses: coreTeamAddresses, - TopicLastWorkerCommit: topicLastWorkerCommit, - TopicLastReputerCommit: topicLastReputerCommit, - LatestNaiveInfererNetworkRegrets: latestNaiveInfererNetworkRegrets, - LatestOneOutInfererInfererNetworkRegrets: latestOneOutInfererInfererNetworkRegrets, - LatestOneOutForecasterInfererNetworkRegrets: latestOneOutForecasterInfererNetworkRegrets, - LatestOneOutInfererForecasterNetworkRegrets: latestOneOutInfererForecasterNetworkRegrets, + Params: moduleParams, + NextTopicId: nextTopicId, + Topics: topics, + ActiveTopics: activeTopics, + RewardableTopics: rewardableTopics, + TopicWorkers: topicWorkers, + TopicReputers: topicReputers, + TopicRewardNonce: topicRewardNonce, + InitialInfererEmaScore: initialInfererEmaScore, + InitialForecasterEmaScore: initialForecasterEmaScore, + InitialReputerEmaScore: initialReputerEmaScore, + InfererScoresByBlock: infererScoresByBlock, + ForecasterScoresByBlock: forecasterScoresByBlock, + ReputerScoresByBlock: reputerScoresByBlock, + InfererScoreEmas: innfererScoreEmas, + ForecasterScoreEmas: forecasterScoreEmas, + ReputerScoreEmas: reputerScoreEmas, + ReputerListeningCoefficient: reputerListeningCoefficient, + PreviousReputerRewardFraction: previousReputerRewardFraction, + PreviousInferenceRewardFraction: previousInferenceRewardFraction, + PreviousForecastRewardFraction: previousForecastRewardFraction, + TotalStake: totalStake, + TopicStake: topicStake, + StakeReputerAuthority: stakeReputerAuthority, + StakeSumFromDelegator: stakeSumFromDelegator, + DelegatedStakes: delegatedStakes, + StakeFromDelegatorsUponReputer: stakeFromDelegatorsUponReputer, + DelegateRewardPerShare: delegateRewardPerShare, + StakeRemovalsByBlock: stakeRemovalsByBlock, + StakeRemovalsByActor: stakeRemovalsByActor, + DelegateStakeRemovalsByBlock: delegateStakeRemovalsByBlock, + DelegateStakeRemovalsByActor: delegateStakeRemovalsByActor, + Inferences: inferences, + Forecasts: forecasts, + Workers: workers, + Reputers: reputers, + TopicFeeRevenue: topicFeeRevenue, + PreviousTopicWeight: previousTopicWeight, + AllInferences: allInferences, + AllForecasts: allForecasts, + AllLossBundles: allLossBundles, + NetworkLossBundles: networkLossBundles, + PreviousPercentageRewardToStakedReputers: previousPercentageRewardToStakedReputers, + OpenWorkerWindows: openWorkerWindows, + UnfulfilledWorkerNonces: unfulfilledWorkerNonces, + UnfulfilledReputerNonces: unfulfilledReputerNonces, + LastDripBlock: lastDripBlock, + LatestInfererNetworkRegrets: latestInfererNetworkRegrets, + LatestForecasterNetworkRegrets: latestForecasterNetworkRegrets, + LatestOneInForecasterNetworkRegrets: latestOneInForecasterNetworkRegrets, + PreviousForecasterScoreRatio: previousForecasterScoreRatio, + CoreTeamAddresses: coreTeamAddresses, + TopicLastWorkerCommit: topicLastWorkerCommit, + TopicLastReputerCommit: topicLastReputerCommit, + LatestNaiveInfererNetworkRegrets: latestNaiveInfererNetworkRegrets, + LatestOneOutInfererInfererNetworkRegrets: latestOneOutInfererInfererNetworkRegrets, + LatestOneOutForecasterInfererNetworkRegrets: latestOneOutForecasterInfererNetworkRegrets, + LatestOneOutInfererForecasterNetworkRegrets: latestOneOutInfererForecasterNetworkRegrets, LatestOneOutForecasterForecasterNetworkRegrets: latestOneOutForecasterForecasterNetworkRegrets, TopicToNextPossibleChurningBlock: topicToNextPossibleChurningBlock, BlockToActiveTopics: blockHeightTopicIds, diff --git a/x/emissions/proto/emissions/v7/genesis.proto b/x/emissions/proto/emissions/v7/genesis.proto index 0e5477254..1188c101e 100644 --- a/x/emissions/proto/emissions/v7/genesis.proto +++ b/x/emissions/proto/emissions/v7/genesis.proto @@ -66,6 +66,18 @@ message GenesisState { // map of (topic, forecaster) -> ratio of forecaster score repeated TopicIdAndDec previous_forecaster_score_ratio = 20; + /// INITIAL SCORES + + // current inferer ema scores to apply per topic + // map of topic -> inferer ema score + repeated TopicIdAndDec initial_inferer_ema_score = 86; + // current forecaster ema scores to apply per topic + // map of topic -> forecaster ema score + repeated TopicIdAndDec initial_forecaster_ema_score = 87; + // current reputer ema scores to apply per topic + // map of topic -> reputer ema score + repeated TopicIdAndDec initial_reputer_ema_score = 88; + /// STAKING // total sum stake of all stakers on the network diff --git a/x/emissions/types/genesis.go b/x/emissions/types/genesis.go index 259f5a7fd..a466c54ef 100644 --- a/x/emissions/types/genesis.go +++ b/x/emissions/types/genesis.go @@ -70,6 +70,9 @@ func NewGenesisState() *GenesisState { PreviousTopicQuantileInfererScoreEma: []*TopicIdAndDec{}, PreviousTopicQuantileForecasterScoreEma: []*TopicIdAndDec{}, PreviousTopicQuantileReputerScoreEma: []*TopicIdAndDec{}, + InitialInfererEmaScore: []*TopicIdAndDec{}, + InitialForecasterEmaScore: []*TopicIdAndDec{}, + InitialReputerEmaScore: []*TopicIdAndDec{}, ActiveInferers: []*TopicAndActorId{}, ActiveForecasters: []*TopicAndActorId{}, ActiveReputers: []*TopicAndActorId{}, diff --git a/x/emissions/types/genesis.pb.go b/x/emissions/types/genesis.pb.go index 609b9856e..b2b7b9125 100644 --- a/x/emissions/types/genesis.pb.go +++ b/x/emissions/types/genesis.pb.go @@ -71,6 +71,15 @@ type GenesisState struct { PreviousForecastRewardFraction []*TopicIdActorIdDec `protobuf:"bytes,19,rep,name=previous_forecast_reward_fraction,json=previousForecastRewardFraction,proto3" json:"previous_forecast_reward_fraction,omitempty"` // map of (topic, forecaster) -> ratio of forecaster score PreviousForecasterScoreRatio []*TopicIdAndDec `protobuf:"bytes,20,rep,name=previous_forecaster_score_ratio,json=previousForecasterScoreRatio,proto3" json:"previous_forecaster_score_ratio,omitempty"` + // current inferer ema scores to apply per topic + // map of topic -> inferer ema score + InitialInfererEmaScore []*TopicIdAndDec `protobuf:"bytes,86,rep,name=initial_inferer_ema_score,json=initialInfererEmaScore,proto3" json:"initial_inferer_ema_score,omitempty"` + // current forecaster ema scores to apply per topic + // map of topic -> forecaster ema score + InitialForecasterEmaScore []*TopicIdAndDec `protobuf:"bytes,87,rep,name=initial_forecaster_ema_score,json=initialForecasterEmaScore,proto3" json:"initial_forecaster_ema_score,omitempty"` + // current reputer ema scores to apply per topic + // map of topic -> reputer ema score + InitialReputerEmaScore []*TopicIdAndDec `protobuf:"bytes,88,rep,name=initial_reputer_ema_score,json=initialReputerEmaScore,proto3" json:"initial_reputer_ema_score,omitempty"` // total sum stake of all stakers on the network TotalStake cosmossdk_io_math.Int `protobuf:"bytes,21,opt,name=total_stake,json=totalStake,proto3,customtype=cosmossdk.io/math.Int" json:"total_stake"` // for every topic, how much total stake does that topic have accumulated? @@ -371,6 +380,27 @@ func (m *GenesisState) GetPreviousForecasterScoreRatio() []*TopicIdAndDec { return nil } +func (m *GenesisState) GetInitialInfererEmaScore() []*TopicIdAndDec { + if m != nil { + return m.InitialInfererEmaScore + } + return nil +} + +func (m *GenesisState) GetInitialForecasterEmaScore() []*TopicIdAndDec { + if m != nil { + return m.InitialForecasterEmaScore + } + return nil +} + +func (m *GenesisState) GetInitialReputerEmaScore() []*TopicIdAndDec { + if m != nil { + return m.InitialReputerEmaScore + } + return nil +} + func (m *GenesisState) GetTopicStake() []*TopicIdAndInt { if m != nil { return m.TopicStake @@ -2675,211 +2705,215 @@ func init() { func init() { proto.RegisterFile("emissions/v7/genesis.proto", fileDescriptor_3a31f894a338870b) } var fileDescriptor_3a31f894a338870b = []byte{ - // 3263 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0x4b, 0x6f, 0x1c, 0xc7, - 0xb5, 0x56, 0x8b, 0x34, 0x45, 0x1e, 0x92, 0x22, 0x59, 0x7c, 0x35, 0x1f, 0x1a, 0x8e, 0x5a, 0x0f, - 0x93, 0xb6, 0x44, 0x5a, 0xa4, 0x65, 0xf9, 0xfa, 0xda, 0xd7, 0x26, 0x29, 0x51, 0x1e, 0x89, 0xe6, - 0xa3, 0x49, 0x9a, 0x86, 0x0d, 0xbb, 0x6f, 0x73, 0xba, 0x48, 0xb6, 0xd5, 0xd3, 0x35, 0xee, 0xea, - 0x21, 0xa5, 0x7b, 0x03, 0x24, 0x08, 0x10, 0x2f, 0x02, 0x04, 0x30, 0x92, 0x38, 0xc8, 0x6b, 0x13, - 0x64, 0x13, 0x20, 0x9b, 0x00, 0xc9, 0x32, 0xd9, 0x3b, 0x3b, 0x27, 0xab, 0x20, 0x0b, 0x23, 0xb0, - 0x17, 0xf9, 0x1b, 0x41, 0x57, 0x55, 0xbf, 0x66, 0xaa, 0x7b, 0x86, 0x43, 0x6f, 0x04, 0x75, 0x57, - 0x9d, 0xef, 0xfb, 0xea, 0xd4, 0xe9, 0x53, 0x8f, 0x33, 0x84, 0x49, 0x5c, 0xb1, 0x29, 0xb5, 0x89, - 0x4b, 0x17, 0x4e, 0xee, 0x2d, 0x1c, 0x61, 0x17, 0x53, 0x9b, 0xce, 0x57, 0x3d, 0xe2, 0x13, 0xd4, - 0x17, 0xb5, 0xcd, 0x9f, 0xdc, 0x9b, 0x1c, 0x32, 0x2b, 0xb6, 0x4b, 0x16, 0xd8, 0xbf, 0xbc, 0xc3, - 0xe4, 0x44, 0x99, 0xd0, 0x0a, 0xa1, 0x06, 0x7b, 0x5a, 0xe0, 0x0f, 0xa2, 0x69, 0x3c, 0x81, 0xbb, - 0xb4, 0xe0, 0x12, 0x0b, 0x8b, 0x06, 0xb5, 0xae, 0xc1, 0x2d, 0x87, 0x2d, 0x93, 0xa9, 0x16, 0x0f, - 0x57, 0x6b, 0x3e, 0xf6, 0xa4, 0x56, 0xb4, 0x4c, 0x3c, 0x39, 0x1e, 0xf5, 0xcd, 0x27, 0xf2, 0x16, - 0x9f, 0x54, 0xed, 0xb2, 0xbc, 0xe5, 0x59, 0x15, 0x87, 0xb2, 0x27, 0x52, 0x2d, 0xa7, 0xc4, 0x7b, - 0x12, 0x49, 0x98, 0x48, 0x79, 0xaa, 0x6a, 0x7a, 0x66, 0x25, 0xb4, 0x1a, 0x39, 0x22, 0x47, 0x84, - 0x3b, 0x21, 0xf8, 0x1f, 0x7f, 0xab, 0xfd, 0xe4, 0x0d, 0xe8, 0x7b, 0xc8, 0x1d, 0xba, 0xe3, 0x9b, - 0x3e, 0x46, 0x8b, 0xd0, 0xc5, 0xcd, 0x54, 0xa5, 0xa8, 0xcc, 0xf6, 0x2e, 0x8e, 0xcc, 0x27, 0x1d, - 0x3c, 0xbf, 0xc5, 0xda, 0x56, 0x3a, 0xbf, 0xf8, 0x6a, 0xe6, 0x82, 0x2e, 0x7a, 0x22, 0x0d, 0xfa, - 0x5d, 0xfc, 0xd4, 0x37, 0x98, 0x7c, 0xc3, 0xb6, 0xd4, 0x8e, 0xa2, 0x32, 0xdb, 0xa9, 0xf7, 0x06, - 0x2f, 0x77, 0x83, 0x77, 0x25, 0x0b, 0xdd, 0x85, 0x2e, 0xd6, 0x4c, 0xd5, 0xce, 0x62, 0xc7, 0x6c, - 0xef, 0xe2, 0x95, 0x34, 0xae, 0xe8, 0xb6, 0xec, 0x5a, 0xec, 0x7f, 0xba, 0xe8, 0x8c, 0xae, 0x41, - 0xbf, 0x59, 0xf6, 0xed, 0x13, 0x6c, 0x08, 0xeb, 0xe7, 0x8a, 0x1d, 0xb3, 0x9d, 0x7a, 0x1f, 0x7f, - 0xb9, 0xcb, 0x3b, 0xbd, 0x08, 0x43, 0x1e, 0x3e, 0x35, 0x3d, 0xcb, 0x3c, 0x70, 0xa2, 0x8e, 0x5d, - 0xac, 0xe3, 0x60, 0xdc, 0x20, 0x3a, 0xaf, 0x40, 0x3f, 0xd7, 0xc9, 0x1d, 0x47, 0xd5, 0x4b, 0x99, - 0x7a, 0x96, 0x5d, 0x6b, 0xb9, 0xec, 0x13, 0xaf, 0x64, 0xe9, 0x7d, 0xcc, 0x66, 0x9f, 0x9b, 0xa0, - 0xfb, 0x70, 0x99, 0x63, 0x88, 0x00, 0xa0, 0x6a, 0x77, 0x2b, 0x20, 0x9c, 0x58, 0x17, 0x36, 0x68, - 0x1b, 0x50, 0x88, 0x12, 0x68, 0x34, 0x58, 0x9c, 0xa9, 0x3d, 0x0c, 0xe9, 0x5a, 0x96, 0x7b, 0x56, - 0x1c, 0x52, 0x7e, 0xf2, 0x36, 0xb6, 0x8f, 0x8e, 0x7d, 0x7d, 0x50, 0xe0, 0x05, 0xd6, 0x1b, 0x81, - 0x31, 0xfa, 0x10, 0xc6, 0x6d, 0xf7, 0x10, 0x7b, 0xd8, 0x33, 0x58, 0xfc, 0x51, 0xe3, 0xe0, 0x99, - 0x71, 0x10, 0x98, 0xa8, 0xc0, 0x70, 0x6f, 0x4a, 0x71, 0x13, 0xa0, 0x3b, 0xcc, 0x4c, 0x1f, 0x11, - 0x30, 0xfc, 0x71, 0xe5, 0x19, 0xeb, 0x81, 0xca, 0x30, 0x79, 0x48, 0x3c, 0x5c, 0x36, 0xa9, 0x2f, - 0x61, 0xe8, 0x3d, 0x13, 0xc3, 0x78, 0x8c, 0x94, 0x26, 0xf9, 0x10, 0xc6, 0x85, 0x5b, 0x1b, 0x18, - 0xfa, 0xce, 0x36, 0x06, 0x01, 0x93, 0x86, 0xdf, 0x04, 0x94, 0x72, 0x91, 0x81, 0x2b, 0x26, 0x55, - 0x5f, 0x67, 0xc8, 0x57, 0xe5, 0x5e, 0xe7, 0xd3, 0xc7, 0x60, 0xf4, 0xc1, 0xa4, 0x63, 0x1e, 0x54, - 0x4c, 0x8a, 0xf6, 0x60, 0xb4, 0xde, 0x29, 0x1c, 0xf3, 0x8d, 0x56, 0x31, 0x87, 0xeb, 0x5c, 0xc1, - 0x60, 0x37, 0x01, 0xa5, 0xdc, 0xc0, 0x31, 0xff, 0xa7, 0x65, 0x9d, 0xc9, 0xc1, 0x33, 0x40, 0x1f, - 0xae, 0x84, 0x80, 0x8e, 0x4d, 0x7d, 0xec, 0xda, 0xee, 0x91, 0x51, 0x26, 0xf8, 0xf0, 0xd0, 0x2e, - 0xdb, 0xd8, 0xf5, 0xd5, 0x41, 0x86, 0xfd, 0x52, 0x1e, 0xf6, 0x7a, 0x68, 0xb8, 0x1a, 0xdb, 0xe9, - 0x53, 0x02, 0x56, 0xd6, 0x88, 0x8e, 0xa1, 0x58, 0xf5, 0xf0, 0x89, 0x4d, 0x6a, 0x34, 0xfc, 0x5a, - 0xc2, 0x78, 0x3f, 0xf4, 0x82, 0xaf, 0x98, 0xb8, 0xea, 0x10, 0x23, 0x9e, 0xc9, 0x23, 0xbe, 0x8f, - 0xcb, 0xfa, 0x95, 0x10, 0x48, 0x7c, 0x41, 0x3c, 0xf0, 0xd7, 0x04, 0x0a, 0x72, 0x40, 0x8b, 0x98, - 0xf8, 0x24, 0xb9, 0x65, 0xdc, 0xc0, 0x85, 0x5a, 0xe3, 0x9a, 0x09, 0xa1, 0x4a, 0x21, 0x52, 0x1d, - 0xdb, 0xc7, 0x70, 0x35, 0x62, 0x0b, 0xa7, 0xaf, 0x81, 0x6c, 0xb8, 0x35, 0xb2, 0x42, 0x88, 0xb4, - 0x26, 0x80, 0xea, 0xb8, 0x0e, 0x60, 0xa6, 0x81, 0x2b, 0x0a, 0x0b, 0xcf, 0xf4, 0x6d, 0xa2, 0x8e, - 0x30, 0xa6, 0xa9, 0xac, 0xac, 0x11, 0xb0, 0x4c, 0xd7, 0xb3, 0x88, 0xe0, 0xd0, 0x03, 0x00, 0xb4, - 0x0d, 0xbd, 0x3e, 0xf1, 0x4d, 0xc7, 0x60, 0xab, 0x93, 0x3a, 0x5a, 0x54, 0x66, 0x7b, 0x56, 0x5e, - 0x0a, 0xd2, 0xfc, 0x3f, 0xbf, 0x9a, 0x19, 0xe5, 0xcb, 0x26, 0xb5, 0x9e, 0xcc, 0xdb, 0x64, 0xa1, - 0x62, 0xfa, 0xc7, 0xf3, 0x25, 0xd7, 0xff, 0xfb, 0x9f, 0x6e, 0x83, 0x58, 0x4f, 0x4b, 0xae, 0xff, - 0xbb, 0x7f, 0xff, 0xe1, 0x05, 0x45, 0x07, 0x06, 0xb2, 0x13, 0x60, 0xa0, 0xd7, 0x03, 0xc8, 0x20, - 0xbf, 0x71, 0xc8, 0xb1, 0x7c, 0x89, 0x25, 0xd7, 0x0f, 0xac, 0xab, 0x76, 0x99, 0x5b, 0xef, 0xc3, - 0x38, 0xb3, 0x8b, 0xa2, 0xc6, 0xac, 0xf9, 0xc7, 0xc4, 0xb3, 0xfd, 0x67, 0xea, 0x78, 0x73, 0xb7, - 0x06, 0x68, 0xa3, 0xcc, 0x5e, 0x04, 0xcb, 0x72, 0x68, 0x8d, 0xde, 0x03, 0x95, 0x03, 0xd3, 0x5a, - 0xc5, 0x38, 0xf4, 0x48, 0xc5, 0xb0, 0xb0, 0x83, 0x8f, 0x4c, 0x9f, 0x78, 0xaa, 0x7a, 0x16, 0xe4, - 0x9d, 0x5a, 0x65, 0xcd, 0x23, 0x95, 0xfb, 0xa1, 0x35, 0xfa, 0x10, 0x06, 0x05, 0x14, 0xb6, 0xf8, - 0xa0, 0xa9, 0x3a, 0xc1, 0x10, 0x17, 0xa5, 0x88, 0x91, 0xa5, 0xd0, 0x18, 0x3d, 0x97, 0xdc, 0x43, - 0xa2, 0x0f, 0x44, 0x58, 0xcc, 0x21, 0x14, 0x3d, 0x01, 0x8d, 0x0b, 0x4f, 0x8b, 0xa6, 0x46, 0xad, - 0x4a, 0xdc, 0xd0, 0x4d, 0xea, 0x64, 0x6b, 0x43, 0x28, 0x30, 0xa8, 0x94, 0x7e, 0xba, 0x57, 0x25, - 0xae, 0x90, 0x82, 0xde, 0x87, 0x89, 0x90, 0x3f, 0x0c, 0xeb, 0x6a, 0x10, 0x73, 0xc7, 0xa6, 0x87, - 0xd5, 0xa9, 0xd6, 0xe2, 0x7a, 0x2c, 0x44, 0xe0, 0xf1, 0xbc, 0x85, 0xbd, 0x9d, 0xc0, 0x1c, 0xb9, - 0xf1, 0xd4, 0x56, 0xc8, 0x89, 0xe9, 0x24, 0x32, 0xfc, 0x34, 0x43, 0xbe, 0x97, 0x46, 0x4e, 0xa4, - 0x76, 0x41, 0x22, 0x54, 0xee, 0xf0, 0x09, 0x66, 0x20, 0xcc, 0x67, 0x23, 0x34, 0xf1, 0x26, 0x4a, - 0xf9, 0x1f, 0xc9, 0xf8, 0xcc, 0x40, 0xa7, 0x7a, 0x85, 0xf1, 0x3d, 0x9f, 0xe6, 0x13, 0x43, 0x68, - 0x5c, 0x58, 0x1a, 0xf0, 0x59, 0x4f, 0xf4, 0x99, 0x02, 0xc5, 0xc8, 0x59, 0x59, 0x23, 0x2b, 0x30, - 0xa6, 0xb7, 0x9b, 0x8d, 0x2c, 0x23, 0x26, 0x70, 0xc3, 0x50, 0xa7, 0x2d, 0x49, 0x4b, 0x34, 0xe4, - 0xa7, 0xb9, 0x8a, 0xf8, 0xd8, 0x67, 0x64, 0xf9, 0xbe, 0x9e, 0x5f, 0xe2, 0x84, 0x2c, 0x66, 0xee, - 0x8c, 0x07, 0x00, 0x51, 0xf6, 0xa5, 0x6a, 0x91, 0x71, 0xdc, 0xc8, 0x8f, 0xc6, 0x30, 0xc3, 0x26, - 0x0c, 0xd1, 0x0a, 0xf4, 0x84, 0xa9, 0x8e, 0xaa, 0x57, 0x19, 0xca, 0xf5, 0x3c, 0x94, 0x28, 0x75, - 0xc6, 0x66, 0xe8, 0x2d, 0xb8, 0x14, 0x6e, 0xf2, 0x34, 0xd9, 0xce, 0x61, 0xdd, 0x3e, 0xd8, 0x5a, - 0xac, 0x3e, 0xc6, 0xcf, 0x96, 0x5d, 0x6b, 0xf3, 0xf0, 0xb0, 0x7c, 0x6c, 0xda, 0xee, 0x06, 0xb1, - 0xb0, 0x1e, 0x9a, 0xa1, 0x15, 0xe8, 0x8e, 0xb6, 0x78, 0xd7, 0xce, 0x04, 0x11, 0xd9, 0xa1, 0x87, - 0x30, 0xc4, 0xd3, 0xe0, 0x21, 0x0e, 0x66, 0xe1, 0x04, 0xbb, 0x35, 0xac, 0x5e, 0x6f, 0x9e, 0x0c, - 0x07, 0x98, 0xd5, 0x1a, 0xc6, 0x3a, 0xb7, 0x41, 0x9b, 0x30, 0x1a, 0x2d, 0x03, 0x62, 0x0b, 0xcb, - 0x26, 0x44, 0xbd, 0xd1, 0x3c, 0xf9, 0x0f, 0x87, 0x96, 0xec, 0xf5, 0x3e, 0xb3, 0x43, 0xdb, 0x70, - 0xd9, 0x74, 0x1c, 0x23, 0x31, 0x5d, 0x37, 0x19, 0xd2, 0x0b, 0xcd, 0x36, 0x58, 0xd1, 0x94, 0x51, - 0xbd, 0xdf, 0x74, 0x9c, 0xf8, 0x11, 0x6d, 0x40, 0xf0, 0xc2, 0x88, 0xa7, 0xee, 0x79, 0x86, 0x38, - 0xd7, 0x0c, 0x31, 0x9c, 0x3e, 0xaa, 0xf7, 0x99, 0x8e, 0x13, 0x3d, 0x05, 0x29, 0x35, 0xc0, 0x73, - 0x08, 0xa5, 0xc6, 0x41, 0xcd, 0xb5, 0x1c, 0x4c, 0xd5, 0x59, 0x06, 0xb9, 0xd4, 0x0c, 0x52, 0x04, - 0xf0, 0xbb, 0xa6, 0x53, 0xc3, 0x2b, 0xdc, 0x54, 0x0f, 0xc6, 0xbb, 0x4e, 0x28, 0x15, 0xcf, 0xe8, - 0x23, 0x18, 0x71, 0xb1, 0x1f, 0xcc, 0x76, 0x9a, 0x62, 0x8e, 0x51, 0xdc, 0x6a, 0x46, 0x91, 0xc2, - 0x46, 0x02, 0x29, 0x89, 0xff, 0x73, 0x05, 0x6e, 0x47, 0x73, 0x56, 0xc5, 0x5e, 0x19, 0xbb, 0xbe, - 0x79, 0x14, 0x65, 0x54, 0x9f, 0xf0, 0x8f, 0xd3, 0x8a, 0x0f, 0x12, 0x2f, 0xb0, 0x85, 0xf7, 0x9e, - 0x58, 0x78, 0x17, 0x8e, 0x6c, 0xff, 0xb8, 0x76, 0x30, 0x5f, 0x26, 0x95, 0x05, 0xd3, 0x71, 0x88, - 0x67, 0xde, 0x16, 0x2c, 0xe1, 0x23, 0x8b, 0x38, 0xbe, 0x24, 0x07, 0xf3, 0x3c, 0x1b, 0xb2, 0x6d, - 0x45, 0x64, 0x3c, 0xf9, 0xee, 0x12, 0xf6, 0xb5, 0x5a, 0xd1, 0xe9, 0x63, 0x17, 0x86, 0x49, 0x15, - 0xbb, 0xe2, 0x18, 0x64, 0x9c, 0xda, 0xae, 0x45, 0x4e, 0xa9, 0x7a, 0x4f, 0xf6, 0xa9, 0x25, 0x86, - 0x1c, 0x9e, 0xd0, 0x4a, 0x16, 0xd5, 0x87, 0x02, 0x00, 0x7e, 0x26, 0xda, 0xe7, 0xe6, 0xc1, 0xb2, - 0x51, 0x73, 0x0f, 0x6b, 0xce, 0xa1, 0xed, 0x38, 0xd8, 0x0a, 0xc1, 0xd9, 0xc9, 0x86, 0xaa, 0x2f, - 0x32, 0xec, 0x42, 0x56, 0x9c, 0xb2, 0x23, 0x0c, 0xd5, 0xc7, 0x13, 0x00, 0x1c, 0x9c, 0x37, 0xa0, - 0x8f, 0x61, 0x32, 0x89, 0x1d, 0xee, 0x0b, 0x04, 0xf8, 0xad, 0x9c, 0x29, 0x5b, 0x76, 0xad, 0x68, - 0xcf, 0xf8, 0x49, 0x0d, 0x53, 0x5f, 0x50, 0xa9, 0x09, 0x3c, 0xd1, 0x41, 0x70, 0x3d, 0x86, 0x01, - 0x27, 0xd8, 0xd1, 0x59, 0x9e, 0x5d, 0x15, 0x09, 0xfc, 0xd5, 0xd6, 0x0f, 0x66, 0xfd, 0x81, 0xed, - 0x7d, 0xcf, 0xae, 0xf2, 0x64, 0xfc, 0x09, 0x14, 0x1c, 0xd3, 0xc7, 0xd4, 0x37, 0xc2, 0x93, 0x47, - 0x18, 0x74, 0x1e, 0x3e, 0xf2, 0xb0, 0x4f, 0xd5, 0xdb, 0x79, 0xe2, 0xc5, 0x6a, 0x64, 0x57, 0x82, - 0x84, 0x5b, 0xa9, 0x62, 0x8b, 0x85, 0x9d, 0x3e, 0xc5, 0x31, 0xf9, 0xc7, 0xe7, 0x6d, 0x70, 0x44, - 0x9d, 0x03, 0xa2, 0x53, 0xb8, 0x2a, 0x28, 0x13, 0x1b, 0xc6, 0x7a, 0xd6, 0xf9, 0x36, 0x58, 0xc5, - 0x48, 0xe2, 0x3d, 0x64, 0x1d, 0xf1, 0x0f, 0x15, 0x98, 0x15, 0xcc, 0xc4, 0xc5, 0x86, 0xed, 0xe6, - 0x09, 0x58, 0xc8, 0xf9, 0x92, 0x85, 0x80, 0x2c, 0x1d, 0xd7, 0x38, 0xc9, 0xa6, 0x8b, 0x4b, 0x6e, - 0xa6, 0x98, 0xef, 0xc0, 0x75, 0xa1, 0xc5, 0x35, 0xed, 0x13, 0x9c, 0xe9, 0xfe, 0x97, 0xda, 0x70, - 0x44, 0x91, 0x23, 0x6f, 0x04, 0xc0, 0xf2, 0x39, 0xf8, 0x5c, 0x81, 0xf9, 0x84, 0x2b, 0x48, 0x2d, - 0x9e, 0xff, 0x2c, 0x21, 0x77, 0xda, 0x77, 0xc8, 0x6c, 0xe4, 0x90, 0xcd, 0x5a, 0x18, 0x14, 0x72, - 0x5d, 0xbf, 0x52, 0xe0, 0x4e, 0x86, 0xae, 0x9c, 0xb9, 0x5a, 0x6c, 0x5f, 0xda, 0x8b, 0x12, 0x69, - 0x99, 0x73, 0x26, 0x51, 0x97, 0x50, 0x95, 0xe5, 0xb8, 0xa5, 0x6f, 0x49, 0x5d, 0x2c, 0x4b, 0xee, - 0xbb, 0xdf, 0x28, 0xf0, 0x72, 0xb6, 0xba, 0x1c, 0xf7, 0xbd, 0xdc, 0xbe, 0xc0, 0x79, 0xb9, 0xc0, - 0x4c, 0x0f, 0xce, 0xc3, 0x30, 0x3b, 0x19, 0xfa, 0xd8, 0xac, 0x18, 0xa6, 0x65, 0x79, 0x98, 0x52, - 0x4c, 0xd5, 0x8b, 0xc5, 0x8e, 0xd9, 0x1e, 0x7d, 0x28, 0x68, 0xda, 0xc5, 0x66, 0x65, 0x39, 0x6c, - 0x40, 0x65, 0x50, 0xf9, 0x76, 0x82, 0x65, 0x3c, 0x91, 0xb2, 0xcb, 0xa4, 0x52, 0xb1, 0x7d, 0xf5, - 0x6e, 0xce, 0x86, 0x20, 0x10, 0x4a, 0xb9, 0x50, 0x26, 0x9d, 0xa5, 0x4e, 0x7d, 0x94, 0x61, 0xad, - 0x9b, 0xd4, 0xe7, 0xc9, 0x7b, 0x95, 0x01, 0x21, 0x0c, 0x13, 0x09, 0x92, 0x30, 0x77, 0x0b, 0x96, - 0x57, 0xce, 0xcc, 0x32, 0x16, 0xb1, 0x88, 0xbc, 0x2d, 0x68, 0x7c, 0xb8, 0xc1, 0x69, 0x7c, 0x62, - 0xb0, 0x3b, 0xc9, 0x2a, 0xa1, 0xd4, 0x3e, 0x70, 0xb0, 0x51, 0x3e, 0xae, 0x79, 0xec, 0xca, 0x83, - 0x67, 0xf3, 0xff, 0x6a, 0x3d, 0x9b, 0x17, 0x19, 0xe2, 0x2e, 0xd9, 0xc0, 0x4f, 0xfd, 0x2d, 0x01, - 0xb7, 0x2a, 0xd0, 0x78, 0x82, 0x7f, 0x17, 0xc6, 0x18, 0x6a, 0xc0, 0x9a, 0xbe, 0xae, 0x7c, 0x4d, - 0x76, 0x5f, 0xd3, 0xb8, 0xeb, 0xa7, 0xfa, 0x30, 0x03, 0xd8, 0x25, 0xcb, 0xc9, 0x8b, 0xcd, 0x53, - 0xb8, 0x16, 0xe1, 0x3a, 0xe4, 0x34, 0x88, 0xba, 0x24, 0x7c, 0xb8, 0xff, 0xfb, 0x6f, 0x99, 0xfb, - 0x1a, 0x49, 0xf8, 0xae, 0x6f, 0xcb, 0xb4, 0x3d, 0xbd, 0x20, 0xd8, 0xd6, 0x19, 0x68, 0x82, 0x53, - 0xec, 0x0c, 0x7d, 0x98, 0xab, 0xdb, 0x6a, 0x7e, 0x52, 0x33, 0x5d, 0xdf, 0x76, 0xe2, 0x1c, 0x1a, - 0x5d, 0x4a, 0xa9, 0x6f, 0x36, 0xdf, 0x7e, 0x5e, 0x4f, 0x6d, 0x3f, 0xb7, 0x05, 0x56, 0x29, 0x7d, - 0x95, 0x86, 0xfe, 0x0f, 0x6e, 0x65, 0xb1, 0xca, 0x6e, 0xd8, 0xd4, 0xb7, 0x9a, 0x13, 0x3f, 0x2f, - 0x25, 0x5e, 0x6b, 0xb8, 0x6f, 0xcb, 0x1b, 0x71, 0xc3, 0x35, 0x9c, 0xba, 0xdc, 0xee, 0x88, 0xf5, - 0xf4, 0xa5, 0x1c, 0xfa, 0x9e, 0x02, 0xb7, 0xca, 0xa4, 0xe6, 0x26, 0x57, 0x86, 0xb2, 0x53, 0x63, - 0x98, 0xc1, 0xda, 0xc9, 0x95, 0x88, 0x39, 0xa7, 0xd8, 0x57, 0x57, 0x18, 0xb3, 0x96, 0x97, 0x46, - 0xf6, 0x6c, 0xd7, 0x7f, 0xe5, 0x65, 0xfd, 0x26, 0xc3, 0x8d, 0x16, 0x82, 0x10, 0xb5, 0xe4, 0xf2, - 0x5b, 0x69, 0x06, 0xb9, 0x83, 0x7d, 0xf4, 0xa9, 0x02, 0x0b, 0x5c, 0x42, 0x2a, 0xcd, 0xe6, 0xaa, - 0x58, 0x6d, 0x59, 0xc5, 0x1c, 0x83, 0x4e, 0x66, 0xd5, 0x4c, 0x21, 0x6b, 0x30, 0x20, 0x28, 0x84, - 0x2f, 0xa8, 0x7a, 0xbf, 0x95, 0x5b, 0xf5, 0xcb, 0xdc, 0x4a, 0x8c, 0x94, 0xa2, 0x75, 0x40, 0x02, - 0x27, 0x1e, 0x10, 0x55, 0x1f, 0xb4, 0x02, 0x35, 0xc4, 0x0d, 0x63, 0xb9, 0xc1, 0x86, 0x56, 0x15, - 0x5f, 0x5e, 0x63, 0xe0, 0xaf, 0xb5, 0x7a, 0x19, 0x3b, 0xca, 0x21, 0xea, 0xe3, 0xfd, 0x7f, 0x61, - 0x4a, 0x60, 0x4b, 0xc3, 0xfb, 0x61, 0xab, 0xf0, 0x42, 0xa1, 0x24, 0xaa, 0x63, 0x9f, 0x46, 0x07, - 0x8c, 0xb7, 0xcf, 0xe0, 0xd3, 0xe8, 0xb0, 0x10, 0x7b, 0xa1, 0xf1, 0x63, 0x28, 0x9d, 0xd1, 0x0b, - 0xf5, 0xdf, 0xc0, 0x36, 0xf4, 0xa5, 0xce, 0x5e, 0x8f, 0x18, 0xde, 0xbc, 0x14, 0x2f, 0xda, 0xc5, - 0xd7, 0x1f, 0xed, 0xf4, 0x5e, 0x27, 0x71, 0xec, 0xfa, 0x2e, 0x14, 0xc5, 0x65, 0x66, 0xad, 0x62, - 0x48, 0xcf, 0xcc, 0x54, 0x7d, 0x7c, 0xbe, 0x83, 0xd6, 0x34, 0xbf, 0xe8, 0xac, 0x55, 0xb6, 0x1a, - 0x0f, 0xd6, 0x14, 0x51, 0xb8, 0x22, 0x8e, 0x78, 0xe5, 0x9a, 0xe7, 0x61, 0xd7, 0xe7, 0xab, 0x8e, - 0x11, 0x8e, 0x49, 0x5d, 0x6f, 0xf3, 0x7e, 0x75, 0x92, 0xc3, 0xae, 0x72, 0x54, 0x96, 0xe3, 0x1f, - 0x08, 0x4c, 0x34, 0x07, 0x83, 0xa7, 0xc7, 0xb6, 0x8f, 0x1d, 0x3b, 0x58, 0x27, 0xac, 0x8a, 0xed, - 0x52, 0xf5, 0x1d, 0xb6, 0xe8, 0x0f, 0x44, 0xef, 0x97, 0xd9, 0xeb, 0xa0, 0xeb, 0x91, 0x43, 0x0e, - 0x4c, 0xc7, 0x88, 0x5a, 0xd4, 0x0d, 0xde, 0x95, 0xbf, 0xdf, 0x0f, 0x5f, 0xa3, 0x57, 0x60, 0x9c, - 0x3b, 0xae, 0xec, 0x61, 0xd3, 0x27, 0x5e, 0xc2, 0x62, 0x93, 0x59, 0xf0, 0x05, 0x7f, 0x95, 0xb7, - 0xc6, 0x76, 0x3b, 0x30, 0x96, 0xac, 0xb3, 0x25, 0xcc, 0xb6, 0x5a, 0x89, 0xc0, 0x91, 0x44, 0xc1, - 0x2d, 0x06, 0xdd, 0x0b, 0xc5, 0x84, 0x61, 0x18, 0xa3, 0x6e, 0xb7, 0x82, 0x3a, 0x9a, 0xac, 0xc0, - 0xc5, 0xb0, 0xab, 0x50, 0x90, 0x6b, 0x35, 0xb0, 0x6b, 0x1e, 0x38, 0xd8, 0x52, 0x75, 0x56, 0x4d, - 0x9c, 0x92, 0x89, 0x7a, 0xc0, 0xbb, 0xa0, 0x07, 0x30, 0x93, 0xa1, 0x2d, 0x42, 0xd9, 0x61, 0x28, - 0xd3, 0x52, 0x11, 0x21, 0xcc, 0x36, 0x8c, 0xb1, 0x2d, 0x52, 0x05, 0x5b, 0xb6, 0xe9, 0x26, 0x2f, - 0x67, 0x76, 0x9b, 0xaf, 0x3a, 0x23, 0x81, 0xe9, 0x3b, 0xcc, 0xb2, 0x94, 0xbc, 0x4b, 0xbb, 0x5c, - 0x31, 0xad, 0x24, 0xd4, 0x5e, 0x73, 0xa8, 0xfe, 0x8a, 0x19, 0x5f, 0xcd, 0xd1, 0x47, 0x9d, 0xdd, - 0xfd, 0x83, 0x97, 0x1f, 0x75, 0x76, 0x5f, 0x1e, 0x1c, 0x78, 0xd4, 0xd9, 0x3d, 0x30, 0x38, 0x58, - 0x77, 0xfe, 0x0c, 0x8b, 0x6c, 0xdc, 0x39, 0x8d, 0xc7, 0xc4, 0xba, 0xf6, 0x69, 0xde, 0xae, 0xa7, - 0x2b, 0x74, 0xe2, 0x51, 0xdb, 0x87, 0x81, 0xba, 0x82, 0x30, 0x9a, 0x80, 0xee, 0xa8, 0xbc, 0xac, - 0xb0, 0xf2, 0xf2, 0x25, 0x5f, 0x94, 0x96, 0xe7, 0xe0, 0x39, 0xf6, 0x5f, 0xf5, 0x22, 0xab, 0x58, - 0x0f, 0x27, 0x47, 0xb5, 0xc4, 0x47, 0xa5, 0xf3, 0x1e, 0xda, 0x43, 0x01, 0x1c, 0x87, 0x44, 0x1e, - 0xf0, 0x04, 0x74, 0xb3, 0x9b, 0xd2, 0xa0, 0x29, 0xc0, 0xee, 0xd1, 0x2f, 0x99, 0xdc, 0x4a, 0xdb, - 0x83, 0x51, 0xe9, 0x66, 0x31, 0x0f, 0xee, 0x2a, 0xf4, 0xf1, 0x2c, 0x70, 0xcc, 0xb7, 0x6d, 0x01, - 0x64, 0x87, 0xde, 0x7b, 0x10, 0x5b, 0x6b, 0xef, 0xc1, 0x98, 0xfc, 0xae, 0xa5, 0xc1, 0x58, 0x69, - 0x30, 0x46, 0x53, 0xd0, 0x13, 0x52, 0xf3, 0xdd, 0x7e, 0xa7, 0xde, 0x2d, 0xb8, 0xa9, 0xf6, 0xa9, - 0x02, 0x6a, 0x56, 0xa5, 0xf4, 0x7c, 0xa2, 0xd1, 0x2d, 0xe8, 0xe2, 0x85, 0x5a, 0x56, 0xf7, 0xaf, - 0xfb, 0xc9, 0xc0, 0xd2, 0xbc, 0xa8, 0xc6, 0x8a, 0x3e, 0xda, 0x09, 0x0c, 0x4b, 0x16, 0x87, 0xf6, - 0xa6, 0x21, 0x98, 0x7a, 0x06, 0x2b, 0x98, 0x87, 0x25, 0xcc, 0x3a, 0xef, 0xa1, 0x59, 0x30, 0x22, - 0xdb, 0xa1, 0xb4, 0x49, 0x3c, 0x06, 0x5d, 0x35, 0x66, 0x2f, 0x7e, 0xeb, 0x20, 0x9e, 0xb4, 0x3f, - 0x2a, 0xa0, 0x35, 0x2f, 0x99, 0xb6, 0x49, 0xba, 0x0f, 0xa3, 0xf2, 0xca, 0x2d, 0x1f, 0xbd, 0x96, - 0x1e, 0xbd, 0xb4, 0x56, 0x3b, 0xe2, 0x48, 0xde, 0x6a, 0x3f, 0x55, 0x60, 0xa8, 0xa1, 0x7c, 0xd3, - 0xa6, 0xc8, 0x12, 0x74, 0x58, 0xb8, 0xcc, 0x24, 0x9d, 0x63, 0x79, 0x0d, 0x30, 0x34, 0x17, 0xfa, - 0x53, 0x57, 0xe2, 0x79, 0x8a, 0x56, 0xa0, 0xc3, 0x76, 0x79, 0x78, 0xb6, 0xb3, 0xae, 0x06, 0xc6, - 0xda, 0x8f, 0x1a, 0xdc, 0x50, 0x6a, 0x7b, 0xae, 0x84, 0x9e, 0x8e, 0xf3, 0xe8, 0xf9, 0x8b, 0x02, - 0xd7, 0x5b, 0x29, 0x15, 0xe6, 0x49, 0x9c, 0x86, 0x9e, 0xb8, 0xbc, 0xc9, 0x35, 0xc6, 0x2f, 0x90, - 0x0a, 0x97, 0xc2, 0xba, 0x61, 0x07, 0xd7, 0x2f, 0x1e, 0x83, 0x35, 0x23, 0xea, 0x16, 0xac, 0x1c, - 0x44, 0xed, 0x64, 0x41, 0x36, 0x95, 0x0e, 0xb2, 0x74, 0xc9, 0xb2, 0xdf, 0x4a, 0x3e, 0x6a, 0x7f, - 0x53, 0x60, 0xae, 0xe5, 0xda, 0x5d, 0x2b, 0x19, 0x2e, 0x39, 0xce, 0x8b, 0xe9, 0x71, 0x66, 0x8f, - 0x64, 0x1d, 0x50, 0xaa, 0x02, 0x96, 0x1c, 0x4d, 0xa1, 0x2e, 0x61, 0xd4, 0x17, 0xd9, 0x06, 0x69, - 0xdd, 0x1b, 0xcd, 0x87, 0x89, 0xcc, 0xf2, 0x60, 0x2a, 0x1e, 0x94, 0x74, 0x3c, 0xe4, 0x48, 0xaf, - 0x1f, 0x78, 0x47, 0xe3, 0xba, 0xf0, 0x8b, 0x8b, 0xf0, 0x5a, 0xfb, 0xb5, 0xc2, 0x73, 0xba, 0x36, - 0x15, 0x42, 0x1d, 0x39, 0x21, 0xd4, 0x99, 0x76, 0x3c, 0x86, 0x29, 0x79, 0x0d, 0x92, 0xcf, 0xc0, - 0x73, 0x6c, 0x06, 0x6e, 0x4a, 0xe3, 0xa9, 0xb1, 0xdc, 0xa9, 0x5a, 0x19, 0x2d, 0xda, 0x2f, 0x15, - 0xd0, 0x9a, 0x57, 0x2d, 0xd3, 0xa3, 0x50, 0x72, 0x46, 0x71, 0x31, 0x3d, 0x8a, 0xa4, 0x63, 0x3a, - 0xf2, 0x27, 0xae, 0xb3, 0x71, 0xe2, 0x3e, 0x55, 0x60, 0x3c, 0xa3, 0xdc, 0xd9, 0x66, 0x62, 0xb9, - 0x0b, 0x3d, 0xd1, 0x46, 0x4e, 0x24, 0xfe, 0xf1, 0xb4, 0x0f, 0xe3, 0x82, 0x6a, 0xdc, 0x53, 0xfb, - 0xbe, 0x02, 0x63, 0xf2, 0x8a, 0x69, 0x9b, 0x3a, 0x16, 0xa1, 0x3b, 0x3c, 0xb5, 0x0a, 0x19, 0x63, - 0x69, 0x19, 0x51, 0x45, 0x36, 0xea, 0xa7, 0xfd, 0x3f, 0xa8, 0x59, 0x05, 0x53, 0x54, 0x80, 0x5e, - 0xc7, 0x3e, 0x30, 0xaa, 0x8b, 0x55, 0xe3, 0x09, 0x7e, 0x16, 0xce, 0x90, 0x13, 0x76, 0x47, 0x6f, - 0x42, 0x3f, 0x11, 0xfd, 0x0d, 0x97, 0x58, 0x58, 0xec, 0xf6, 0x26, 0xd3, 0xa4, 0xa9, 0x1a, 0x6c, - 0x1f, 0x49, 0x3c, 0x69, 0xb5, 0xe4, 0x6a, 0xd2, 0x64, 0x7d, 0x13, 0x8b, 0xd8, 0xc5, 0x6f, 0x61, - 0x11, 0xfb, 0x99, 0x02, 0xd3, 0x79, 0x15, 0xd4, 0x73, 0x6e, 0xbe, 0x5e, 0x4d, 0x95, 0xdb, 0xf9, - 0x44, 0xa8, 0x19, 0xf1, 0x40, 0x93, 0x15, 0x76, 0xed, 0xc7, 0x0a, 0x4c, 0xe5, 0x14, 0x62, 0xcf, - 0xa9, 0xeb, 0x6e, 0xb2, 0x7e, 0x2f, 0x0d, 0xd3, 0xb8, 0xe4, 0x1b, 0xf7, 0xd4, 0xfe, 0xac, 0xc0, - 0x8d, 0x96, 0x4a, 0xb9, 0xe7, 0x94, 0xb7, 0x07, 0xa3, 0xe1, 0x31, 0xed, 0x24, 0x40, 0x8d, 0x6e, - 0x1f, 0xb8, 0xd4, 0xab, 0x69, 0xa9, 0xb2, 0x52, 0xf2, 0xb0, 0xd7, 0xf8, 0x52, 0xfb, 0xb5, 0x02, - 0x85, 0xfc, 0x32, 0xf1, 0x39, 0x75, 0xbf, 0x0e, 0x7d, 0x49, 0xbd, 0x42, 0xee, 0x44, 0x5a, 0x6e, - 0xea, 0x5e, 0xe4, 0x24, 0x7e, 0xd0, 0x3e, 0x80, 0xc1, 0xfa, 0x72, 0x6b, 0x9e, 0x9e, 0x5b, 0xd0, - 0x25, 0x8a, 0xab, 0x17, 0x65, 0x1b, 0x7b, 0x51, 0x44, 0x15, 0x7d, 0xb4, 0xcf, 0xe3, 0xb1, 0x67, - 0xd4, 0x5b, 0xf3, 0xb8, 0xde, 0x83, 0xb1, 0xf8, 0xe7, 0x81, 0xcc, 0xc6, 0x48, 0x71, 0x6b, 0xd2, - 0x19, 0x49, 0x97, 0x73, 0xc3, 0x1f, 0x7c, 0xa6, 0xde, 0x6a, 0xbf, 0x4d, 0xe8, 0x92, 0x57, 0x58, - 0xda, 0xcc, 0x80, 0x8f, 0x61, 0xc8, 0x8f, 0x8b, 0x13, 0x3c, 0x8e, 0xc4, 0x84, 0xd4, 0xed, 0x2b, - 0x12, 0x35, 0x0c, 0x5e, 0xd2, 0x19, 0xf4, 0xeb, 0xde, 0x68, 0x7f, 0x8d, 0x03, 0x3f, 0xbf, 0x1c, - 0x94, 0x27, 0x76, 0x0a, 0x7a, 0x42, 0xb1, 0x77, 0x84, 0xda, 0x6e, 0xa1, 0xf6, 0x4e, 0xb2, 0x71, - 0x51, 0x2c, 0xe3, 0x61, 0xe3, 0xa2, 0x7c, 0x2c, 0x9d, 0x6d, 0x8e, 0x25, 0x91, 0xf2, 0xa4, 0xd5, - 0x9b, 0xbc, 0x21, 0x7c, 0x00, 0xe3, 0x49, 0x21, 0x5c, 0x31, 0xff, 0x65, 0x34, 0x0f, 0x84, 0x6b, - 0x99, 0x72, 0x52, 0x45, 0x28, 0xd9, 0x6b, 0xad, 0x02, 0xc3, 0x92, 0xda, 0x4b, 0x2b, 0xdb, 0xa3, - 0xa5, 0xf4, 0xd9, 0x5a, 0xb2, 0xdc, 0x45, 0x95, 0x9c, 0xf8, 0xcc, 0xfd, 0x03, 0x05, 0xa6, 0xf3, - 0xca, 0x30, 0xad, 0x10, 0xaf, 0x40, 0x5f, 0xaa, 0xd6, 0xc3, 0xb9, 0x67, 0xa4, 0xdc, 0x89, 0x02, - 0x0f, 0xff, 0xe5, 0x25, 0x7f, 0xa1, 0xfd, 0x5e, 0x81, 0x62, 0xb3, 0x0b, 0xd4, 0xbc, 0x39, 0xc9, - 0xde, 0x1c, 0xe9, 0x30, 0x22, 0x4b, 0xa3, 0xe2, 0x2b, 0x28, 0x36, 0xcb, 0xa2, 0x3a, 0x6a, 0x4c, - 0xa2, 0x2b, 0xfa, 0x17, 0x5f, 0x17, 0x94, 0x2f, 0xbf, 0x2e, 0x28, 0xff, 0xfa, 0xba, 0xa0, 0x7c, - 0xf6, 0x4d, 0xe1, 0xc2, 0x97, 0xdf, 0x14, 0x2e, 0xfc, 0xe3, 0x9b, 0xc2, 0x85, 0xf7, 0x5f, 0x6d, - 0x71, 0x01, 0x7e, 0xba, 0x10, 0xff, 0x19, 0x04, 0xfb, 0xc3, 0x89, 0x83, 0x2e, 0xf6, 0xd7, 0x0e, - 0x4b, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x47, 0x0d, 0x44, 0x55, 0x4a, 0x32, 0x00, 0x00, + // 3323 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5b, 0xcb, 0x6f, 0xdc, 0xd6, + 0xd5, 0x37, 0x25, 0x45, 0x96, 0x8e, 0x24, 0x4b, 0xa2, 0x5e, 0xd4, 0xc3, 0xa3, 0x31, 0xfd, 0x88, + 0x94, 0xd8, 0x52, 0x2c, 0xc5, 0x71, 0xbe, 0x7c, 0x69, 0x13, 0x49, 0x96, 0x9c, 0xb1, 0x15, 0x3d, + 0x28, 0xc9, 0x32, 0x92, 0x26, 0x2c, 0x35, 0xbc, 0x92, 0x18, 0xf3, 0x31, 0xe1, 0xe5, 0x48, 0x76, + 0x5b, 0xa0, 0x45, 0x81, 0x66, 0x51, 0xa0, 0x40, 0x50, 0x34, 0x45, 0x5f, 0x9b, 0xa0, 0x9b, 0x02, + 0xdd, 0x14, 0x68, 0x97, 0xed, 0x3e, 0xdd, 0xa5, 0x5d, 0x15, 0x5d, 0x04, 0x45, 0xbc, 0xe8, 0xbf, + 0x51, 0xf0, 0x3e, 0xf8, 0x98, 0xb9, 0xe4, 0x8c, 0x46, 0xd9, 0x18, 0x26, 0xef, 0x3d, 0xbf, 0xf3, + 0xbb, 0xe7, 0x1e, 0x9e, 0x73, 0xee, 0x3d, 0x23, 0x98, 0x40, 0x8e, 0x85, 0xb1, 0xe5, 0xb9, 0x78, + 0xfe, 0xe4, 0xee, 0xfc, 0x11, 0x72, 0x11, 0xb6, 0xf0, 0x5c, 0xc5, 0xf7, 0x02, 0x4f, 0xee, 0x8d, + 0xc6, 0xe6, 0x4e, 0xee, 0x4e, 0x0c, 0x1a, 0x8e, 0xe5, 0x7a, 0xf3, 0xe4, 0x5f, 0x3a, 0x61, 0x62, + 0xbc, 0xec, 0x61, 0xc7, 0xc3, 0x3a, 0x79, 0x9a, 0xa7, 0x0f, 0x6c, 0x68, 0x2c, 0x81, 0xbb, 0x38, + 0xef, 0x7a, 0x26, 0x62, 0x03, 0x4a, 0xcd, 0x80, 0x5b, 0xe6, 0x23, 0x13, 0xa9, 0x11, 0x1f, 0x55, + 0xaa, 0x01, 0xf2, 0x85, 0x52, 0xb8, 0xec, 0xf9, 0x62, 0x3c, 0x1c, 0x18, 0x4f, 0xc4, 0x23, 0x81, + 0x57, 0xb1, 0xca, 0xe2, 0x91, 0x67, 0x15, 0xc4, 0x69, 0x8f, 0xa7, 0x46, 0x4e, 0x3d, 0xff, 0x49, + 0x44, 0x61, 0x3c, 0x65, 0xa9, 0x8a, 0xe1, 0x1b, 0x0e, 0x97, 0x1a, 0x3e, 0xf2, 0x8e, 0x3c, 0x6a, + 0x84, 0xf0, 0x7f, 0xf4, 0xad, 0xfa, 0xf9, 0x5b, 0xd0, 0x7b, 0x9f, 0x1a, 0x74, 0x27, 0x30, 0x02, + 0x24, 0x2f, 0x40, 0x27, 0x15, 0x53, 0xa4, 0xa2, 0x34, 0xd3, 0xb3, 0x30, 0x3c, 0x97, 0x34, 0xf0, + 0xdc, 0x16, 0x19, 0x5b, 0xee, 0xf8, 0xe2, 0xab, 0xe9, 0x0b, 0x1a, 0x9b, 0x29, 0xab, 0xd0, 0xe7, + 0xa2, 0xa7, 0x81, 0x4e, 0xe8, 0xeb, 0x96, 0xa9, 0xb4, 0x17, 0xa5, 0x99, 0x0e, 0xad, 0x27, 0x7c, + 0xb9, 0x1b, 0xbe, 0x2b, 0x99, 0xf2, 0x1d, 0xe8, 0x24, 0xc3, 0x58, 0xe9, 0x28, 0xb6, 0xcf, 0xf4, + 0x2c, 0x5c, 0x4e, 0xe3, 0xb2, 0x69, 0x4b, 0xae, 0x49, 0xfe, 0xa7, 0xb1, 0xc9, 0xf2, 0x55, 0xe8, + 0x33, 0xca, 0x81, 0x75, 0x82, 0x74, 0x26, 0xfd, 0x42, 0xb1, 0x7d, 0xa6, 0x43, 0xeb, 0xa5, 0x2f, + 0x77, 0xe9, 0xa4, 0x97, 0x61, 0xd0, 0x47, 0xa7, 0x86, 0x6f, 0x1a, 0x07, 0x76, 0x34, 0xb1, 0x93, + 0x4c, 0x1c, 0x88, 0x07, 0xd8, 0xe4, 0x65, 0xe8, 0xa3, 0x3c, 0xa9, 0xe1, 0xb0, 0x72, 0x31, 0x93, + 0xcf, 0x92, 0x6b, 0x2e, 0x95, 0x03, 0xcf, 0x2f, 0x99, 0x5a, 0x2f, 0x91, 0xd9, 0xa7, 0x22, 0xf2, + 0x3d, 0xb8, 0x44, 0x31, 0x98, 0x03, 0x60, 0xa5, 0xab, 0x19, 0x10, 0xaa, 0x58, 0x63, 0x32, 0xf2, + 0x36, 0xc8, 0x1c, 0x25, 0xe4, 0xa8, 0x13, 0x3f, 0x53, 0xba, 0x09, 0xd2, 0xd5, 0x2c, 0xf3, 0x2c, + 0xdb, 0x5e, 0xf9, 0xc9, 0x3b, 0xc8, 0x3a, 0x3a, 0x0e, 0xb4, 0x01, 0x86, 0x17, 0x4a, 0x6f, 0x84, + 0xc2, 0xf2, 0x07, 0x30, 0x66, 0xb9, 0x87, 0xc8, 0x47, 0xbe, 0x4e, 0xfc, 0x0f, 0xeb, 0x07, 0xcf, + 0xf4, 0x83, 0x50, 0x44, 0x01, 0x82, 0x7b, 0x43, 0x88, 0x9b, 0x00, 0xdd, 0x21, 0x62, 0xda, 0x30, + 0x83, 0xa1, 0x8f, 0xcb, 0xcf, 0xc8, 0x0c, 0xb9, 0x0c, 0x13, 0x87, 0x9e, 0x8f, 0xca, 0x06, 0x0e, + 0x04, 0x1a, 0x7a, 0xce, 0xa4, 0x61, 0x2c, 0x46, 0x4a, 0x2b, 0xf9, 0x00, 0xc6, 0x98, 0x59, 0xeb, + 0x34, 0xf4, 0x9e, 0x6d, 0x0d, 0x0c, 0x26, 0x0d, 0xbf, 0x09, 0x72, 0xca, 0x44, 0x3a, 0x72, 0x0c, + 0xac, 0xbc, 0x49, 0x90, 0xaf, 0x88, 0xad, 0x4e, 0xb7, 0x8f, 0xc0, 0x68, 0x03, 0x49, 0xc3, 0xac, + 0x3a, 0x06, 0x96, 0xf7, 0x60, 0xa4, 0xd6, 0x28, 0x14, 0xf3, 0x5b, 0xcd, 0x62, 0x0e, 0xd5, 0x98, + 0x82, 0xc0, 0x6e, 0x82, 0x9c, 0x32, 0x03, 0xc5, 0xfc, 0x76, 0xd3, 0x3c, 0x93, 0x8b, 0x27, 0x80, + 0x01, 0x5c, 0xe6, 0x80, 0xb6, 0x85, 0x03, 0xe4, 0x5a, 0xee, 0x91, 0x5e, 0xf6, 0xd0, 0xe1, 0xa1, + 0x55, 0xb6, 0x90, 0x1b, 0x28, 0x03, 0x04, 0xfb, 0x95, 0x3c, 0xec, 0x75, 0x2e, 0xb8, 0x12, 0xcb, + 0x69, 0x93, 0x0c, 0x56, 0x34, 0x28, 0x1f, 0x43, 0xb1, 0xe2, 0xa3, 0x13, 0xcb, 0xab, 0x62, 0xfe, + 0xb5, 0x70, 0x7f, 0x3f, 0xf4, 0xc3, 0xaf, 0xd8, 0x73, 0x95, 0x41, 0xa2, 0x78, 0x3a, 0x4f, 0xf1, + 0x3d, 0x54, 0xd6, 0x2e, 0x73, 0x20, 0xf6, 0x05, 0x51, 0xc7, 0x5f, 0x63, 0x28, 0xb2, 0x0d, 0x6a, + 0xa4, 0x89, 0x6e, 0x92, 0x5b, 0x46, 0x75, 0xba, 0xe4, 0xe6, 0x74, 0x4d, 0x73, 0xa8, 0x12, 0x47, + 0xaa, 0xd1, 0xf6, 0x11, 0x5c, 0x89, 0xb4, 0xf1, 0xed, 0xab, 0x53, 0x36, 0xd4, 0x9c, 0xb2, 0x02, + 0x47, 0x5a, 0x63, 0x40, 0x35, 0xba, 0x0e, 0x60, 0xba, 0x4e, 0x57, 0xe4, 0x16, 0xbe, 0x11, 0x58, + 0x9e, 0x32, 0x4c, 0x34, 0x4d, 0x66, 0x45, 0x8d, 0x50, 0xcb, 0x54, 0xad, 0x16, 0xe6, 0x1c, 0x5a, + 0x08, 0x20, 0x3f, 0x82, 0x71, 0xcb, 0xb5, 0x02, 0xcb, 0xb0, 0x75, 0xfe, 0x79, 0x20, 0xc7, 0xa0, + 0x3a, 0x94, 0x47, 0x8d, 0xd1, 0x47, 0x99, 0x34, 0xb5, 0x97, 0xbf, 0xea, 0x18, 0x04, 0x5c, 0xfe, + 0x0e, 0x4c, 0x71, 0xdc, 0x04, 0xf5, 0x18, 0x7a, 0xbf, 0x31, 0x34, 0x27, 0x16, 0xf3, 0x8e, 0xd0, + 0x13, 0xac, 0xb9, 0x73, 0xc5, 0xd0, 0x8f, 0x9b, 0x67, 0xcd, 0x3c, 0x2a, 0xc2, 0xdd, 0x86, 0x9e, + 0xc0, 0x0b, 0x0c, 0x5b, 0x27, 0xb9, 0x5a, 0x19, 0x29, 0x4a, 0x33, 0xdd, 0xcb, 0xaf, 0x84, 0x49, + 0xef, 0xdf, 0x5f, 0x4d, 0x8f, 0xd0, 0x22, 0x02, 0x9b, 0x4f, 0xe6, 0x2c, 0x6f, 0xde, 0x31, 0x82, + 0xe3, 0xb9, 0x92, 0x1b, 0xfc, 0xf3, 0x2f, 0xb7, 0x80, 0x55, 0x17, 0x25, 0x37, 0xf8, 0xc3, 0x7f, + 0xff, 0xf4, 0x92, 0xa4, 0x01, 0x01, 0xd9, 0x09, 0x31, 0xe4, 0x37, 0x43, 0xc8, 0x30, 0xda, 0x53, + 0xc8, 0xd1, 0x7c, 0x72, 0x25, 0x37, 0x08, 0xa5, 0x2b, 0x56, 0x99, 0x4a, 0xef, 0xc3, 0x18, 0x91, + 0x8b, 0x96, 0x69, 0x54, 0x83, 0x63, 0xcf, 0xb7, 0x82, 0x67, 0xca, 0x58, 0x63, 0x27, 0x0b, 0xd1, + 0x46, 0x88, 0x3c, 0x5b, 0xe8, 0x12, 0x97, 0x96, 0x1f, 0x83, 0x42, 0x81, 0x71, 0xd5, 0xd1, 0x0f, + 0x7d, 0xcf, 0xd1, 0x4d, 0x64, 0xa3, 0x23, 0x23, 0xf0, 0x7c, 0x45, 0x39, 0x0b, 0xf2, 0x4e, 0xd5, + 0x59, 0xf3, 0x3d, 0xe7, 0x1e, 0x97, 0x96, 0x3f, 0x80, 0x01, 0x06, 0x85, 0x4c, 0xba, 0x68, 0xac, + 0x8c, 0x13, 0xc4, 0x05, 0x21, 0x62, 0x24, 0xc9, 0x38, 0x46, 0xcf, 0x25, 0xf7, 0xd0, 0xd3, 0xfa, + 0x23, 0x2c, 0x62, 0x10, 0x2c, 0x3f, 0x01, 0x95, 0x12, 0x4f, 0x93, 0xc6, 0x7a, 0xb5, 0xe2, 0xb9, + 0xdc, 0x4c, 0xca, 0x44, 0x73, 0x4b, 0x28, 0x10, 0xa8, 0x14, 0x7f, 0xbc, 0x57, 0xf1, 0x5c, 0x46, + 0x45, 0x7e, 0x0f, 0xc6, 0xb9, 0x7e, 0xfe, 0x91, 0x57, 0xc2, 0x2f, 0xf0, 0xd8, 0xf0, 0x91, 0x32, + 0xd9, 0xdc, 0x57, 0x3e, 0xca, 0x11, 0xe8, 0xd7, 0xbd, 0x85, 0xfc, 0x9d, 0x50, 0x5c, 0x76, 0xe3, + 0xad, 0x75, 0xbc, 0x13, 0xc3, 0x4e, 0xe4, 0xbb, 0x29, 0x82, 0x7c, 0x37, 0x8d, 0x9c, 0x48, 0x74, + 0x4c, 0x09, 0x63, 0xb9, 0x43, 0x37, 0x98, 0x80, 0x10, 0x9b, 0x0d, 0xe3, 0xc4, 0x9b, 0x28, 0x01, + 0x7e, 0x28, 0xd2, 0x67, 0x84, 0x3c, 0x95, 0xcb, 0x44, 0xdf, 0x8b, 0x69, 0x7d, 0x6c, 0x09, 0xf5, + 0x69, 0xb6, 0x0e, 0x9f, 0xcc, 0x94, 0x3f, 0x95, 0xa0, 0x18, 0x19, 0x2b, 0x6b, 0x65, 0x05, 0xa2, + 0xe9, 0x9d, 0x46, 0x2b, 0xcb, 0xf0, 0x09, 0x54, 0xb7, 0xd4, 0x29, 0x53, 0x30, 0x12, 0x2d, 0xf9, + 0x69, 0x2e, 0x23, 0xba, 0xf6, 0x69, 0x51, 0xf6, 0xab, 0xd5, 0x2f, 0x30, 0x42, 0x96, 0x66, 0x6a, + 0x8c, 0x55, 0x80, 0x28, 0x17, 0x61, 0xa5, 0x48, 0x74, 0x5c, 0xcf, 0xf7, 0x46, 0x9e, 0x6f, 0x12, + 0x82, 0xf2, 0x32, 0x74, 0xf3, 0xe8, 0x89, 0x95, 0x2b, 0x04, 0xe5, 0x5a, 0x1e, 0x4a, 0x94, 0x48, + 0x62, 0x31, 0xf9, 0x6d, 0xb8, 0xc8, 0x4b, 0x5e, 0x55, 0x54, 0x47, 0xad, 0x5b, 0x07, 0x5b, 0x0b, + 0x95, 0x87, 0xe8, 0xd9, 0x92, 0x6b, 0x6e, 0x1e, 0x1e, 0x96, 0x8f, 0x0d, 0xcb, 0xdd, 0xf0, 0x4c, + 0xa4, 0x71, 0x31, 0x79, 0x19, 0xba, 0xa2, 0x82, 0xf7, 0xea, 0x99, 0x20, 0x22, 0x39, 0xf9, 0x3e, + 0x0c, 0xd2, 0x30, 0x78, 0x88, 0xc2, 0x5d, 0x38, 0x41, 0x6e, 0x15, 0x29, 0xd7, 0x1a, 0x07, 0xc3, + 0x7e, 0x22, 0xb5, 0x86, 0x90, 0x46, 0x65, 0xe4, 0x4d, 0x18, 0x89, 0x92, 0x22, 0x2b, 0xe8, 0xc9, + 0x86, 0x28, 0xd7, 0x1b, 0x87, 0xfd, 0x21, 0x2e, 0x49, 0x5e, 0xef, 0x13, 0x39, 0x79, 0x1b, 0x2e, + 0x19, 0xb6, 0xad, 0x27, 0xb6, 0xeb, 0x06, 0x41, 0x7a, 0xa9, 0x51, 0xb9, 0x19, 0x6d, 0x19, 0xd6, + 0xfa, 0x0c, 0xdb, 0x8e, 0x1f, 0xe5, 0x0d, 0x08, 0x5f, 0xe8, 0xf1, 0xd6, 0xbd, 0x48, 0x10, 0x67, + 0x1b, 0x21, 0xf2, 0xed, 0xc3, 0x5a, 0xaf, 0x61, 0x47, 0x79, 0x0f, 0x87, 0x21, 0x35, 0xc4, 0xb3, + 0x3d, 0x8c, 0xf5, 0x83, 0xaa, 0x6b, 0xda, 0x08, 0x2b, 0x33, 0x04, 0x72, 0xb1, 0x11, 0x24, 0x73, + 0xe0, 0x47, 0x86, 0x5d, 0x45, 0xcb, 0x54, 0x54, 0x0b, 0xd7, 0xbb, 0xee, 0x61, 0xcc, 0x9e, 0xe5, + 0x0f, 0x61, 0xd8, 0x45, 0x41, 0xb8, 0xdb, 0x69, 0x15, 0xb3, 0x44, 0xc5, 0xcd, 0x46, 0x2a, 0x52, + 0xd8, 0x32, 0x43, 0x4a, 0xe2, 0xff, 0x4a, 0x82, 0x5b, 0xd1, 0x9e, 0x55, 0x90, 0x5f, 0x46, 0x6e, + 0x60, 0x1c, 0x45, 0x11, 0x35, 0xf0, 0xe8, 0xc7, 0x69, 0xc6, 0xc7, 0xaa, 0x97, 0x48, 0xe2, 0xbd, + 0xcb, 0x12, 0xef, 0xfc, 0x91, 0x15, 0x1c, 0x57, 0x0f, 0xe6, 0xca, 0x9e, 0x33, 0x6f, 0xd8, 0xb6, + 0xe7, 0x1b, 0xb7, 0x98, 0x16, 0xfe, 0x48, 0x3c, 0x8e, 0xa6, 0xe4, 0x70, 0x9f, 0x67, 0xb8, 0xb6, + 0xad, 0x48, 0x19, 0x0d, 0xbe, 0xbb, 0x1e, 0xf9, 0x5a, 0xcd, 0xe8, 0x2c, 0xb6, 0x0b, 0x43, 0x5e, + 0x05, 0xb9, 0xec, 0x50, 0xa8, 0x9f, 0x5a, 0xae, 0xe9, 0x9d, 0x62, 0xe5, 0xae, 0xe8, 0x53, 0x4b, + 0x2c, 0x99, 0x9f, 0x57, 0x4b, 0x26, 0xd6, 0x06, 0x43, 0x00, 0x7a, 0x42, 0xdc, 0xa7, 0xe2, 0x61, + 0xda, 0xa8, 0xba, 0x87, 0x55, 0xfb, 0xd0, 0xb2, 0x6d, 0x64, 0x72, 0x70, 0x72, 0xce, 0xc3, 0xca, + 0xcb, 0x04, 0xbb, 0x90, 0xe5, 0xa7, 0xe4, 0x40, 0x87, 0xb5, 0xb1, 0x04, 0x00, 0x05, 0xa7, 0x03, + 0xf2, 0x47, 0x30, 0x91, 0xc4, 0xe6, 0x75, 0x01, 0x03, 0xbf, 0x99, 0xb3, 0x65, 0x4b, 0xae, 0x19, + 0x55, 0xd0, 0x1f, 0x57, 0x11, 0x0e, 0x98, 0x2a, 0x25, 0x81, 0xc7, 0x26, 0x30, 0x5d, 0x0f, 0xa1, + 0xdf, 0x0e, 0xeb, 0x5b, 0xd3, 0xb7, 0x2a, 0x2c, 0x80, 0xbf, 0xde, 0xfc, 0x31, 0xb5, 0x2f, 0x94, + 0xbd, 0xe7, 0x5b, 0x15, 0x1a, 0x8c, 0x3f, 0x86, 0x82, 0x6d, 0x04, 0x08, 0x07, 0x51, 0xa1, 0xc9, + 0x9d, 0xce, 0x47, 0x47, 0x3e, 0x0a, 0xb0, 0x72, 0x2b, 0x8f, 0x3c, 0xcb, 0x46, 0x96, 0x13, 0x06, + 0x5c, 0xa7, 0x82, 0x4c, 0xe2, 0x76, 0xda, 0x24, 0xc5, 0x64, 0xe5, 0xe7, 0x06, 0x45, 0xd4, 0x28, + 0xa0, 0x7c, 0x0a, 0x57, 0x98, 0xca, 0x44, 0x0d, 0x5a, 0xab, 0x75, 0xae, 0x05, 0xad, 0x6c, 0x25, + 0x71, 0x65, 0x5a, 0xa3, 0xf8, 0xa7, 0x12, 0xcc, 0x30, 0xcd, 0x9e, 0x8b, 0x74, 0xcb, 0xcd, 0x23, + 0x30, 0x9f, 0xf3, 0x25, 0x33, 0x02, 0x59, 0x3c, 0xae, 0x52, 0x25, 0x9b, 0x2e, 0x2a, 0xb9, 0x99, + 0x64, 0x7e, 0x00, 0xd7, 0x18, 0x17, 0xd7, 0xb0, 0x4e, 0x50, 0xa6, 0xf9, 0x5f, 0x69, 0xc1, 0x10, + 0x45, 0x8a, 0xbc, 0x11, 0x02, 0x8b, 0xf7, 0xe0, 0x33, 0x09, 0xe6, 0x12, 0xa6, 0xf0, 0xaa, 0xf1, + 0xfe, 0x67, 0x11, 0xb9, 0xdd, 0xba, 0x41, 0x66, 0x22, 0x83, 0x6c, 0x56, 0xb9, 0x53, 0x88, 0x79, + 0xfd, 0x56, 0x82, 0xdb, 0x19, 0xbc, 0x72, 0xf6, 0x6a, 0xa1, 0x75, 0x6a, 0x2f, 0x0b, 0xa8, 0x65, + 0xee, 0x99, 0x80, 0x5d, 0x82, 0x55, 0x96, 0xe1, 0x16, 0xbf, 0x21, 0x76, 0x31, 0x2d, 0xb1, 0xed, + 0x3e, 0x97, 0xe0, 0xd5, 0x6c, 0x76, 0x39, 0xe6, 0x7b, 0xb5, 0x75, 0x82, 0x73, 0x62, 0x82, 0x99, + 0x16, 0x9c, 0x83, 0x21, 0x72, 0x4e, 0x0e, 0x90, 0xe1, 0xe8, 0x86, 0x69, 0xfa, 0x08, 0x63, 0x84, + 0x95, 0xb6, 0x62, 0xfb, 0x4c, 0xb7, 0x36, 0x18, 0x0e, 0xed, 0x22, 0xc3, 0x59, 0xe2, 0x03, 0x72, + 0x19, 0x14, 0x5a, 0x4e, 0x90, 0x88, 0xc7, 0x42, 0x76, 0xd9, 0x73, 0x1c, 0x2b, 0x50, 0xee, 0xe4, + 0x14, 0x04, 0x21, 0x51, 0x4c, 0x89, 0x12, 0xea, 0x24, 0x74, 0x6a, 0x23, 0x04, 0x6b, 0xdd, 0xc0, + 0x01, 0x0d, 0xde, 0x2b, 0x04, 0x48, 0x46, 0x30, 0x9e, 0x50, 0xc2, 0x63, 0x37, 0xd3, 0xf2, 0xda, + 0x99, 0xb5, 0x8c, 0x46, 0x5a, 0x58, 0xdc, 0x66, 0x6a, 0x02, 0xb8, 0x4e, 0xd5, 0x04, 0x9e, 0x4e, + 0x6e, 0x68, 0x2b, 0x1e, 0xc6, 0xd6, 0x81, 0x8d, 0xf4, 0xf2, 0x71, 0xd5, 0x27, 0x17, 0x40, 0x34, + 0x9a, 0xff, 0x5f, 0xf3, 0xd1, 0xbc, 0x48, 0x10, 0x77, 0xbd, 0x0d, 0xf4, 0x34, 0xd8, 0x62, 0x70, + 0x2b, 0x0c, 0x8d, 0x06, 0xf8, 0x47, 0x30, 0x4a, 0x50, 0x43, 0xad, 0xe9, 0xcb, 0xdb, 0x37, 0x44, + 0xb7, 0x57, 0xf5, 0x55, 0x3f, 0xd6, 0x86, 0x08, 0xc0, 0xae, 0xb7, 0x94, 0xbc, 0xe6, 0x3d, 0x85, + 0xab, 0x11, 0xae, 0xed, 0x9d, 0x86, 0x5e, 0x97, 0x84, 0xe7, 0xf5, 0xdf, 0xff, 0x8b, 0xcc, 0x57, + 0xaf, 0x84, 0x56, 0x7d, 0x5b, 0x86, 0xe5, 0x6b, 0x05, 0xa6, 0x6d, 0x9d, 0x80, 0x26, 0x74, 0xb2, + 0xca, 0x30, 0x80, 0xd9, 0x9a, 0x52, 0xf3, 0xe3, 0xaa, 0xe1, 0x06, 0x96, 0x1d, 0xc7, 0xd0, 0xe8, + 0x8a, 0x4e, 0x79, 0xab, 0x71, 0xf9, 0x79, 0x2d, 0x55, 0x7e, 0x6e, 0x33, 0xac, 0x52, 0xfa, 0x62, + 0x51, 0xfe, 0x1e, 0xdc, 0xcc, 0xd2, 0x2a, 0xba, 0x6f, 0x54, 0xde, 0x6e, 0xac, 0xf8, 0x45, 0xa1, + 0xe2, 0xb5, 0xba, 0xdb, 0xc7, 0xbc, 0x15, 0xd7, 0x5d, 0x4a, 0x2a, 0x4b, 0xad, 0xae, 0x58, 0x4b, + 0x5f, 0x51, 0xca, 0x3f, 0x92, 0xe0, 0x66, 0xd9, 0xab, 0xba, 0xc9, 0xcc, 0x50, 0xb6, 0xab, 0x04, + 0x33, 0xcc, 0x9d, 0x94, 0x09, 0xdb, 0x73, 0x8c, 0x02, 0x65, 0x99, 0x68, 0x56, 0xf3, 0xc2, 0xc8, + 0x9e, 0xe5, 0x06, 0xaf, 0xbd, 0xaa, 0xdd, 0x20, 0xb8, 0x51, 0x22, 0xe0, 0xa8, 0x25, 0x97, 0xde, + 0xd1, 0x13, 0xc8, 0x1d, 0x14, 0xc8, 0x9f, 0x48, 0x30, 0x4f, 0x29, 0xa4, 0xc2, 0x6c, 0x2e, 0x8b, + 0x95, 0xa6, 0x59, 0xcc, 0x12, 0xe8, 0x64, 0x54, 0xcd, 0x24, 0xb2, 0x06, 0xfd, 0x4c, 0x05, 0xb3, + 0x05, 0x56, 0xee, 0x35, 0xd3, 0x63, 0xb8, 0x44, 0xa5, 0xd8, 0x4a, 0xb1, 0xbc, 0x0e, 0x32, 0xc3, + 0x89, 0x17, 0x84, 0x95, 0xd5, 0x66, 0xa0, 0x06, 0xa9, 0x60, 0x4c, 0x37, 0x2c, 0x68, 0x15, 0xf6, + 0xe5, 0xd5, 0x3b, 0xfe, 0x5a, 0xb3, 0x57, 0xd3, 0x23, 0x14, 0xa2, 0xd6, 0xdf, 0xbf, 0x0b, 0x93, + 0x0c, 0x5b, 0xe8, 0xde, 0xf7, 0x9b, 0x85, 0x67, 0x0c, 0x05, 0x5e, 0x1d, 0xdb, 0x34, 0x3a, 0x60, + 0xbc, 0x73, 0x06, 0x9b, 0x46, 0x87, 0x85, 0xd8, 0x0a, 0xf5, 0x1f, 0x43, 0xe9, 0x8c, 0x56, 0xa8, + 0xfd, 0x06, 0xb6, 0xa1, 0x37, 0x75, 0xf6, 0x7a, 0x40, 0xf0, 0xe6, 0x84, 0x78, 0x51, 0x15, 0x5f, + 0x7b, 0xb4, 0xd3, 0x7a, 0xec, 0xc4, 0xb1, 0xeb, 0x87, 0x50, 0x64, 0x97, 0x99, 0x55, 0x47, 0x17, + 0x9e, 0x99, 0xb1, 0xf2, 0xf0, 0x7c, 0x07, 0xad, 0x29, 0x7a, 0xd1, 0x59, 0x75, 0xb6, 0xea, 0x0f, + 0xd6, 0x58, 0xc6, 0x70, 0x99, 0x1d, 0xf1, 0xca, 0x55, 0xdf, 0x47, 0x6e, 0x40, 0xb3, 0x8e, 0xce, + 0xd7, 0xa4, 0xac, 0xb7, 0x78, 0xbf, 0x3a, 0x41, 0x61, 0x57, 0x28, 0x2a, 0x89, 0xf1, 0xab, 0x0c, + 0x53, 0x9e, 0x85, 0x81, 0xd3, 0x63, 0x2b, 0x40, 0xb6, 0x15, 0xe6, 0x09, 0xd3, 0xb1, 0x5c, 0xac, + 0xbc, 0x4b, 0x92, 0x7e, 0x7f, 0xf4, 0x7e, 0x89, 0xbc, 0x0e, 0xa7, 0x1e, 0xd9, 0xde, 0x81, 0x61, + 0xeb, 0xd1, 0x88, 0xb2, 0x41, 0xa7, 0xd2, 0xf7, 0xfb, 0xfc, 0xb5, 0xfc, 0x1a, 0x8c, 0x51, 0xc3, + 0x95, 0x7d, 0x64, 0x04, 0x9e, 0x9f, 0x90, 0xd8, 0x24, 0x12, 0x34, 0xe1, 0xaf, 0xd0, 0xd1, 0x58, + 0x6e, 0x07, 0x46, 0x93, 0x5d, 0xc7, 0x84, 0xd8, 0x56, 0x33, 0x1e, 0x38, 0x9c, 0x68, 0x3f, 0xc6, + 0xa0, 0x7b, 0x9c, 0x0c, 0x77, 0xc3, 0x18, 0x75, 0xbb, 0x19, 0xd4, 0x91, 0x64, 0x3f, 0x32, 0x86, + 0x5d, 0x81, 0x82, 0x98, 0xab, 0x8e, 0x5c, 0xe3, 0xc0, 0x46, 0xa6, 0xa2, 0x91, 0xde, 0xea, 0xa4, + 0x88, 0xd4, 0x2a, 0x9d, 0x22, 0xaf, 0xc2, 0x74, 0x06, 0xb7, 0x08, 0x65, 0x87, 0xa0, 0x4c, 0x09, + 0x49, 0x70, 0x98, 0x6d, 0x18, 0x25, 0x25, 0x92, 0x83, 0x4c, 0xcb, 0x70, 0x93, 0x97, 0x33, 0xbb, + 0x8d, 0xb3, 0xce, 0x70, 0x28, 0xfa, 0x2e, 0x91, 0x2c, 0x25, 0xef, 0xd2, 0x2e, 0x39, 0x86, 0x99, + 0x84, 0xda, 0x6b, 0x0c, 0xd5, 0xe7, 0x18, 0xf1, 0xd5, 0x1c, 0x7e, 0xd0, 0xd1, 0xd5, 0x37, 0x70, + 0xe9, 0x41, 0x47, 0xd7, 0xa5, 0x81, 0xfe, 0x07, 0x1d, 0x5d, 0xfd, 0x03, 0x03, 0x35, 0xe7, 0x4f, + 0xde, 0x72, 0xa4, 0xc6, 0xa9, 0x3f, 0x26, 0xd6, 0x8c, 0x4f, 0xd1, 0x71, 0x2d, 0xdd, 0xaf, 0x64, + 0x8f, 0xea, 0x3e, 0xf4, 0xd7, 0xb4, 0xc7, 0xe5, 0x71, 0xe8, 0x8a, 0x9a, 0xed, 0x12, 0x69, 0xb6, + 0x5f, 0x0c, 0x58, 0xa3, 0x7d, 0x16, 0x5e, 0x20, 0xff, 0x55, 0xda, 0x48, 0xff, 0x7e, 0x28, 0xb9, + 0xaa, 0x45, 0xba, 0x2a, 0x8d, 0xce, 0x50, 0xef, 0x33, 0xe0, 0xd8, 0x25, 0xf2, 0x80, 0xc7, 0xa1, + 0x8b, 0xdc, 0x94, 0x86, 0x43, 0x21, 0x76, 0xb7, 0x76, 0xd1, 0xa0, 0x52, 0xea, 0x1e, 0x8c, 0x08, + 0x8b, 0xc5, 0x3c, 0xb8, 0x2b, 0xd0, 0x4b, 0xa3, 0xc0, 0x31, 0x2d, 0xdb, 0x42, 0xc8, 0x76, 0xad, + 0xe7, 0x20, 0x96, 0x56, 0x1f, 0xc3, 0xa8, 0xf8, 0xae, 0xa5, 0x4e, 0x58, 0xaa, 0x13, 0x96, 0x27, + 0xa1, 0x9b, 0xab, 0xa6, 0xd5, 0x7e, 0x87, 0xd6, 0xc5, 0x74, 0x63, 0xf5, 0x13, 0x09, 0x94, 0xac, + 0xbe, 0xf1, 0xf9, 0x48, 0xcb, 0x37, 0xa1, 0x93, 0xb6, 0xad, 0xc9, 0xaf, 0x20, 0x6a, 0x7e, 0x40, + 0xb1, 0x38, 0xc7, 0x7a, 0xd3, 0x6c, 0x8e, 0x7a, 0x02, 0x43, 0x82, 0xe4, 0xd0, 0xda, 0x36, 0x84, + 0x5b, 0x4f, 0x3b, 0x5f, 0xed, 0xa2, 0xad, 0xa7, 0x69, 0x87, 0xce, 0x50, 0x4d, 0x18, 0x16, 0x55, + 0x28, 0x2d, 0x2a, 0x1e, 0x85, 0xce, 0x2a, 0x91, 0x67, 0xbf, 0xfc, 0x60, 0x4f, 0xea, 0x9f, 0x25, + 0x50, 0x1b, 0x37, 0x90, 0x5b, 0x54, 0xba, 0x0f, 0x23, 0xe2, 0x3e, 0x36, 0x5d, 0xbd, 0x9a, 0x5e, + 0xbd, 0xb0, 0x73, 0x3d, 0x6c, 0x0b, 0xde, 0xaa, 0xbf, 0x90, 0x60, 0xb0, 0xae, 0x7d, 0xd3, 0x22, + 0xc9, 0x12, 0xb4, 0x9b, 0xa8, 0x4c, 0x28, 0x9d, 0x23, 0xbd, 0x86, 0x18, 0xaa, 0x0b, 0x7d, 0xa9, + 0x2b, 0xf1, 0x3c, 0x46, 0xcb, 0xd0, 0x6e, 0xb9, 0xd4, 0x3d, 0x5b, 0xc9, 0xab, 0xa1, 0xb0, 0xfa, + 0xb3, 0x3a, 0x33, 0x94, 0x5a, 0xde, 0x2b, 0xc6, 0xa7, 0xfd, 0x3c, 0x7c, 0xfe, 0x26, 0xc1, 0xb5, + 0x66, 0x5a, 0x85, 0x79, 0x14, 0xa7, 0xa0, 0x3b, 0x6e, 0x6f, 0x52, 0x8e, 0xf1, 0x0b, 0x59, 0x81, + 0x8b, 0xbc, 0x6f, 0xd8, 0x4e, 0xf9, 0xb3, 0xc7, 0x30, 0x67, 0x44, 0xd3, 0xc2, 0xcc, 0xe1, 0x29, + 0x1d, 0xc4, 0xc9, 0x26, 0xd3, 0x4e, 0x96, 0x6e, 0x59, 0xf6, 0x99, 0xc9, 0x47, 0xf5, 0x1f, 0x12, + 0xcc, 0x36, 0xdd, 0xbb, 0x6b, 0x26, 0xc2, 0x25, 0xd7, 0xd9, 0x96, 0x5e, 0x67, 0xf6, 0x4a, 0xd6, + 0x41, 0x4e, 0x75, 0xc0, 0x92, 0xab, 0x29, 0xd4, 0x04, 0x8c, 0xda, 0x26, 0xdb, 0x00, 0xae, 0x79, + 0xa3, 0x06, 0x30, 0x9e, 0xd9, 0x1e, 0x4c, 0xf9, 0x83, 0x94, 0xf6, 0x87, 0x1c, 0xea, 0xb5, 0x0b, + 0x6f, 0xaf, 0xcf, 0x0b, 0xbf, 0x6e, 0x83, 0x37, 0x5a, 0xef, 0x15, 0x9e, 0xd3, 0xb4, 0x29, 0x17, + 0x6a, 0xcf, 0x71, 0xa1, 0x8e, 0xb4, 0xe1, 0x11, 0x4c, 0x8a, 0x7b, 0x90, 0x74, 0x07, 0x5e, 0x20, + 0x3b, 0x70, 0x43, 0xe8, 0x4f, 0xf5, 0xed, 0x4e, 0xc5, 0xcc, 0x18, 0x51, 0x7f, 0x23, 0x81, 0xda, + 0xb8, 0x6b, 0x99, 0x5e, 0x85, 0x94, 0xb3, 0x8a, 0xb6, 0xf4, 0x2a, 0x92, 0x86, 0x69, 0xcf, 0xdf, + 0xb8, 0x8e, 0xfa, 0x8d, 0xfb, 0x44, 0x82, 0xb1, 0x8c, 0x76, 0x67, 0x8b, 0x81, 0xe5, 0x0e, 0x74, + 0x47, 0x85, 0x1c, 0x0b, 0xfc, 0x63, 0x69, 0x1b, 0xc6, 0x0d, 0xd5, 0x78, 0xa6, 0xfa, 0x63, 0x09, + 0x46, 0xc5, 0x1d, 0xd3, 0x16, 0x79, 0x2c, 0x40, 0x17, 0x3f, 0xb5, 0x32, 0x1a, 0xa3, 0x69, 0x1a, + 0x51, 0x47, 0x36, 0x9a, 0xa7, 0x7e, 0x1f, 0x94, 0xac, 0x86, 0xa9, 0x5c, 0x80, 0x1e, 0xdb, 0x3a, + 0xd0, 0x2b, 0x0b, 0x15, 0xfd, 0x09, 0x7a, 0xc6, 0x77, 0xc8, 0xe6, 0xd3, 0xe5, 0xb7, 0xa0, 0xcf, + 0x63, 0xf3, 0x75, 0xd7, 0x33, 0x11, 0xab, 0xf6, 0x26, 0xd2, 0x4a, 0x53, 0x3d, 0xd8, 0x5e, 0x2f, + 0xf1, 0xa4, 0x56, 0x93, 0xd9, 0xa4, 0x41, 0x7e, 0x63, 0x49, 0xac, 0xed, 0x1b, 0x48, 0x62, 0xbf, + 0x94, 0x60, 0x2a, 0xaf, 0x83, 0x7a, 0xce, 0xe2, 0xeb, 0xf5, 0x54, 0xbb, 0x9d, 0x6e, 0x84, 0x92, + 0xe1, 0x0f, 0x38, 0xd9, 0x61, 0x57, 0x7f, 0x2e, 0xc1, 0x64, 0x4e, 0x23, 0xf6, 0x9c, 0xbc, 0xee, + 0x24, 0xfb, 0xf7, 0x42, 0x37, 0x8d, 0x5b, 0xbe, 0xf1, 0x4c, 0xf5, 0xaf, 0x12, 0x5c, 0x6f, 0xaa, + 0x95, 0x7b, 0x4e, 0x7a, 0x7b, 0x30, 0xc2, 0x8f, 0x69, 0x27, 0x21, 0x6a, 0x74, 0xfb, 0x40, 0xa9, + 0x5e, 0x49, 0x53, 0x15, 0xb5, 0x92, 0x87, 0xfc, 0xfa, 0x97, 0xea, 0xef, 0x24, 0x28, 0xe4, 0xb7, + 0x89, 0xcf, 0xc9, 0xfb, 0x4d, 0xe8, 0x4d, 0xf2, 0x65, 0x74, 0xc7, 0xd3, 0x74, 0x53, 0xf7, 0x22, + 0x27, 0xf1, 0x83, 0xfa, 0x3e, 0x0c, 0xd4, 0xb6, 0x5b, 0xf3, 0xf8, 0xdc, 0x84, 0x4e, 0xd6, 0x5c, + 0x6d, 0x13, 0x15, 0xf6, 0xac, 0x89, 0xca, 0xe6, 0xa8, 0x9f, 0xc5, 0x6b, 0xcf, 0xe8, 0xb7, 0xe6, + 0xe9, 0x7a, 0x0c, 0xa3, 0xf1, 0x8f, 0x25, 0x89, 0x8c, 0x9e, 0xd2, 0xad, 0x0a, 0x77, 0x24, 0xdd, + 0xce, 0xe5, 0x3f, 0x7f, 0x4d, 0xbd, 0x55, 0x7f, 0x9f, 0xe0, 0x25, 0xee, 0xb0, 0xb4, 0x18, 0x01, + 0x1f, 0xc2, 0x60, 0x10, 0x37, 0x27, 0xa8, 0x1f, 0xb1, 0x0d, 0xa9, 0xa9, 0x2b, 0x12, 0x3d, 0x0c, + 0xda, 0xd2, 0x19, 0x08, 0x6a, 0xde, 0xa8, 0x7f, 0x8f, 0x1d, 0x3f, 0xbf, 0x1d, 0x94, 0x47, 0x76, + 0x12, 0xba, 0x39, 0xd9, 0xdb, 0x8c, 0x6d, 0x17, 0x63, 0x7b, 0x3b, 0x39, 0xb8, 0xc0, 0xd2, 0x38, + 0x1f, 0x5c, 0x10, 0xaf, 0xa5, 0xa3, 0xc5, 0xb5, 0x24, 0x42, 0x9e, 0xb0, 0x7b, 0x93, 0xb7, 0x84, + 0xf7, 0x61, 0x2c, 0x49, 0x84, 0x32, 0xa6, 0xbf, 0x13, 0xa7, 0x8e, 0x70, 0x35, 0x93, 0x4e, 0xaa, + 0x09, 0x25, 0x7a, 0xad, 0x3a, 0x30, 0x24, 0xe8, 0xbd, 0x34, 0x53, 0x1e, 0x2d, 0xa6, 0xcf, 0xd6, + 0x82, 0x74, 0x17, 0x75, 0x72, 0xe2, 0x33, 0xf7, 0x4f, 0x24, 0x98, 0xca, 0x6b, 0xc3, 0x34, 0xa3, + 0x78, 0x19, 0x7a, 0x53, 0xbd, 0x1e, 0xaa, 0x7b, 0x5a, 0xa8, 0x3b, 0xd1, 0xe0, 0xa1, 0xbf, 0xbc, + 0xa4, 0x2f, 0xd4, 0x3f, 0x4a, 0x50, 0x6c, 0x74, 0x81, 0x9a, 0xb7, 0x27, 0xd9, 0xc5, 0x91, 0x06, + 0xc3, 0xa2, 0x30, 0xca, 0xbe, 0x82, 0x62, 0xa3, 0x28, 0xaa, 0xc9, 0xf5, 0x41, 0x74, 0x59, 0xfb, + 0xe2, 0xeb, 0x82, 0xf4, 0xe5, 0xd7, 0x05, 0xe9, 0x3f, 0x5f, 0x17, 0xa4, 0x4f, 0x9f, 0x17, 0x2e, + 0x7c, 0xf9, 0xbc, 0x70, 0xe1, 0x5f, 0xcf, 0x0b, 0x17, 0xde, 0x7b, 0xbd, 0xc9, 0x04, 0xfc, 0x74, + 0x3e, 0xfe, 0xa3, 0x10, 0xf2, 0x67, 0x24, 0x07, 0x9d, 0xe4, 0x6f, 0x3f, 0x16, 0xff, 0x17, 0x00, + 0x00, 0xff, 0xff, 0x07, 0xec, 0x3f, 0x67, 0x58, 0x33, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -2902,6 +2936,54 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.InitialReputerEmaScore) > 0 { + for iNdEx := len(m.InitialReputerEmaScore) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.InitialReputerEmaScore[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5 + i-- + dAtA[i] = 0xc2 + } + } + if len(m.InitialForecasterEmaScore) > 0 { + for iNdEx := len(m.InitialForecasterEmaScore) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.InitialForecasterEmaScore[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5 + i-- + dAtA[i] = 0xba + } + } + if len(m.InitialInfererEmaScore) > 0 { + for iNdEx := len(m.InitialInfererEmaScore) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.InitialInfererEmaScore[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5 + i-- + dAtA[i] = 0xb2 + } + } if len(m.MadInferences) > 0 { for iNdEx := len(m.MadInferences) - 1; iNdEx >= 0; iNdEx-- { { @@ -6065,6 +6147,24 @@ func (m *GenesisState) Size() (n int) { n += 2 + l + sovGenesis(uint64(l)) } } + if len(m.InitialInfererEmaScore) > 0 { + for _, e := range m.InitialInfererEmaScore { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } + if len(m.InitialForecasterEmaScore) > 0 { + for _, e := range m.InitialForecasterEmaScore { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } + if len(m.InitialReputerEmaScore) > 0 { + for _, e := range m.InitialReputerEmaScore { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } return n } @@ -9636,6 +9736,108 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 86: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialInfererEmaScore", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.InitialInfererEmaScore = append(m.InitialInfererEmaScore, &TopicIdAndDec{}) + if err := m.InitialInfererEmaScore[len(m.InitialInfererEmaScore)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 87: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialForecasterEmaScore", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.InitialForecasterEmaScore = append(m.InitialForecasterEmaScore, &TopicIdAndDec{}) + if err := m.InitialForecasterEmaScore[len(m.InitialForecasterEmaScore)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 88: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialReputerEmaScore", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.InitialReputerEmaScore = append(m.InitialReputerEmaScore, &TopicIdAndDec{}) + if err := m.InitialReputerEmaScore[len(m.InitialReputerEmaScore)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) From 85d409369eea2a5b8edf6dcfa0976a4a38d5bb10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 17:59:53 -0300 Subject: [PATCH 17/19] Fix lint --- x/emissions/proto/emissions/v7/genesis.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/emissions/proto/emissions/v7/genesis.proto b/x/emissions/proto/emissions/v7/genesis.proto index 1188c101e..4ae354ee7 100644 --- a/x/emissions/proto/emissions/v7/genesis.proto +++ b/x/emissions/proto/emissions/v7/genesis.proto @@ -77,7 +77,7 @@ message GenesisState { // current reputer ema scores to apply per topic // map of topic -> reputer ema score repeated TopicIdAndDec initial_reputer_ema_score = 88; - + /// STAKING // total sum stake of all stakers on the network From 9f8b57d213b21938e8dea11720b31ac5baec9055 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= Date: Wed, 18 Dec 2024 21:59:20 -0300 Subject: [PATCH 18/19] Fixes after review --- .../module/rewards/rewards_internal.go | 2 - x/emissions/module/rewards/scores.go | 68 +++++++++++-------- x/emissions/module/rewards/scores_test.go | 46 +++++++++++++ 3 files changed, 87 insertions(+), 29 deletions(-) diff --git a/x/emissions/module/rewards/rewards_internal.go b/x/emissions/module/rewards/rewards_internal.go index 31e87f05e..78f923a53 100644 --- a/x/emissions/module/rewards/rewards_internal.go +++ b/x/emissions/module/rewards/rewards_internal.go @@ -443,9 +443,7 @@ func GetAllReputersOutput( oldCoefficients := make([]alloraMath.Dec, numReputers) var i uint64 = 0 var maxGradient = alloraMath.OneDec() - // finalScores := make([]alloraMath.Dec, numReputers) newScores := make([]alloraMath.Dec, numReputers) - for maxGradient.Gte(params.MaxGradientThreshold) && i < params.GradientDescentMaxIters { copy(oldCoefficients, coefficients) gradient := make([]alloraMath.Dec, numReputers) diff --git a/x/emissions/module/rewards/scores.go b/x/emissions/module/rewards/scores.go index 21febeb60..3c559d032 100644 --- a/x/emissions/module/rewards/scores.go +++ b/x/emissions/module/rewards/scores.go @@ -166,16 +166,19 @@ func GenerateReputerScores( return nil, err } - // Calculate initial EMA score - initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, emaScores) - if err != nil { - return nil, errors.Wrapf(err, "Error calculating initial EMA score") - } + // Just update the initial EMA score if there are more than 0 scores + if len(emaScores) > 0 { + // Calculate initial EMA score + initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, emaScores) + if err != nil { + return nil, errors.Wrapf(err, "Error calculating initial EMA score") + } - // Store the initial EMA score - err = keeper.SetTopicInitialReputerEmaScore(ctx, topicId, initialEmaScore) - if err != nil { - return nil, errors.Wrapf(err, "Error setting initial reputer EMA score") + // Store the initial EMA score + err = keeper.SetTopicInitialReputerEmaScore(ctx, topicId, initialEmaScore) + if err != nil { + return nil, errors.Wrapf(err, "Error setting initial reputer EMA score") + } } types.EmitNewReputerScoresSetEvent(ctx, instantScores) @@ -254,16 +257,19 @@ func GenerateInferenceScores( return nil, errors.Wrapf(err, "Error setting previous topic quantile inferer score ema") } - // Calculate initial EMA score - initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, emaScores) - if err != nil { - return nil, errors.Wrapf(err, "Error calculating initial EMA score") - } + // Just update the initial EMA score if there are more than 0 scores + if len(emaScores) > 0 { + // Calculate initial EMA score + initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, emaScores) + if err != nil { + return nil, errors.Wrapf(err, "Error calculating initial EMA score") + } - // Store the initial EMA score - err = keeper.SetTopicInitialInfererEmaScore(ctx, topicId, initialEmaScore) - if err != nil { - return nil, errors.Wrapf(err, "Error setting initial inferer EMA score") + // Store the initial EMA score + err = keeper.SetTopicInitialInfererEmaScore(ctx, topicId, initialEmaScore) + if err != nil { + return nil, errors.Wrapf(err, "Error setting initial inferer EMA score") + } } types.EmitNewInfererScoresSetEvent(ctx, instantScores) @@ -366,16 +372,19 @@ func GenerateForecastScores( return nil, err } - // Calculate initial EMA score - initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, emaScores) - if err != nil { - return nil, errors.Wrapf(err, "Error calculating initial EMA score") - } + // Just update the initial EMA score if there are more than 0 scores + if len(emaScores) > 0 { + // Calculate initial EMA score + initialEmaScore, err := CalculateTopicInitialEmaScore(ctx, keeper, emaScores) + if err != nil { + return nil, errors.Wrapf(err, "Error calculating initial EMA score") + } - // Store the initial EMA score - err = keeper.SetTopicInitialForecasterEmaScore(ctx, topicId, initialEmaScore) - if err != nil { - return nil, errors.Wrapf(err, "Error setting initial forecaster EMA score") + // Store the initial EMA score + err = keeper.SetTopicInitialForecasterEmaScore(ctx, topicId, initialEmaScore) + if err != nil { + return nil, errors.Wrapf(err, "Error setting initial forecaster EMA score") + } } // Emit forecaster performance scores @@ -531,6 +540,11 @@ func CalculateTopicInitialEmaScore( keeper keeper.Keeper, activeScores []types.Score, ) (alloraMath.Dec, error) { + // If there are no scores, return zero + if len(activeScores) == 0 { + return alloraMath.ZeroDec(), nil + } + // Get lambda parameter from module params params, err := keeper.GetParams(ctx) if err != nil { diff --git a/x/emissions/module/rewards/scores_test.go b/x/emissions/module/rewards/scores_test.go index 4101765c2..22d1079ba 100644 --- a/x/emissions/module/rewards/scores_test.go +++ b/x/emissions/module/rewards/scores_test.go @@ -1867,3 +1867,49 @@ func (s *RewardsTestSuite) TestCalculateTopicInitialEmaScore() { s.Require().NoError(err) s.Require().True(absDiff.Lt(alloraMath.MustNewDecFromString("0.000001"))) } + +func (s *RewardsTestSuite) TestCalculateTopicInitialEmaScoreEdgeCases() { + testCases := []struct { + name string + scores []types.Score + expectedError bool + expectedScore string + }{ + { + name: "empty scores", + scores: []types.Score{}, + expectedError: false, + expectedScore: "0", // Returns zero when no scores + }, + { + name: "single score", + scores: []types.Score{ + {Score: alloraMath.MustNewDecFromString("0.5")}, + }, + expectedError: false, + expectedScore: "0.5", // With single score, no std dev calculation possible, returns the score + }, + } + + for _, tc := range testCases { + s.Run(tc.name, func() { + initialScore, err := rewards.CalculateTopicInitialEmaScore(s.ctx, s.emissionsKeeper, tc.scores) + + if tc.expectedError { + s.Require().Error(err) + return + } + + s.Require().NoError(err) + expectedScore := alloraMath.MustNewDecFromString(tc.expectedScore) + diff, err := initialScore.Sub(expectedScore) + s.Require().NoError(err) + absDiff, err := diff.Abs() + s.Require().NoError(err) + s.Require().True( + absDiff.Lt(alloraMath.MustNewDecFromString("0.000001")), + "Expected %s but got %s", expectedScore, initialScore, + ) + }) + } +} From e9d838b779d207349e8dd8927330ee92c863d8c9 Mon Sep 17 00:00:00 2001 From: Diego Campo Date: Thu, 19 Dec 2024 02:41:54 +0100 Subject: [PATCH 19/19] fix linter --- x/emissions/module/rewards/scores_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/emissions/module/rewards/scores_test.go b/x/emissions/module/rewards/scores_test.go index 22d1079ba..6a6c720ec 100644 --- a/x/emissions/module/rewards/scores_test.go +++ b/x/emissions/module/rewards/scores_test.go @@ -1884,7 +1884,7 @@ func (s *RewardsTestSuite) TestCalculateTopicInitialEmaScoreEdgeCases() { { name: "single score", scores: []types.Score{ - {Score: alloraMath.MustNewDecFromString("0.5")}, + {Score: alloraMath.MustNewDecFromString("0.5")}, // nolint:exhaustruct }, expectedError: false, expectedScore: "0.5", // With single score, no std dev calculation possible, returns the score