From f93a87a117d887425ebc05342bc3569ba152435a Mon Sep 17 00:00:00 2001 From: Elias Rad <146735585+nnsW3@users.noreply.github.com> Date: Wed, 21 Aug 2024 16:33:31 +0300 Subject: [PATCH 1/4] docs: fix spelling issues (#534) fixed several typos. --------- Signed-off-by: Elias Rad <146735585+nnsW3@users.noreply.github.com> --- CHANGELOG.md | 2 +- README.md | 4 ++-- app/export.go | 2 +- math/dec.go | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a23cb4d0..1324453bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -104,7 +104,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * [#409](https://github.com/allora-network/allora-chain/pull/409) * Added validations for safer data ingress * [#398](https://github.com/allora-network/allora-chain/pull/398) -* Update forecast utiity function +* Update forecast utility function * [#382](https://github.com/allora-network/allora-chain/pull/382) * Automatically expire stake removals instead of requiring a 2nd tx * [#362](https://github.com/allora-network/allora-chain/pull/362) diff --git a/README.md b/README.md index 54845f00a..f98dbc9a4 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ With `curl -so- http://localhost:26657/status | jq .result.sync_info.catching_up ## Run a validator -You can refer to the Allora documentation for detailled instructions on [running a full node](https://docs.allora.network/devs/validators/run-full-node) and [staking a validator](https://docs.allora.network/devs/validators/stake-a-validator). +You can refer to the Allora documentation for detailed instructions on [running a full node](https://docs.allora.network/devs/validators/run-full-node) and [staking a validator](https://docs.allora.network/devs/validators/stake-a-validator). 1. Run and sync a full Allora node following [the instructions](https://docs.allora.network/devs/validators/run-full-node). @@ -127,7 +127,7 @@ Wait until you see the output: "false" `l1_node.sh` script generates keys, you can find created account information in `data/*.account_info`. Get the address from the file and fund, on testnets you can use faucet `https://faucet.${NETWORK}.allora.network`. -4. Stake validator (detailled instructions [here](https://docs.allora.network/devs/validators/stake-a-validator)) +4. Stake validator (detailed instructions [here](https://docs.allora.network/devs/validators/stake-a-validator)) Here's an example with Values which starts with a stake of 10000000uallo. diff --git a/app/export.go b/app/export.go index 0bac19054..0880d4a21 100644 --- a/app/export.go +++ b/app/export.go @@ -57,7 +57,7 @@ func (app *AlloraApp) ExportAppStateAndValidators( func (app *AlloraApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []string) error { applyAllowedAddrs := false - // check if there is a allowed address list + // check if there is an allowed address list if len(jailAllowedAddrs) > 0 { applyAllowedAddrs = true } diff --git a/math/dec.go b/math/dec.go index 27356b04a..d050b2f47 100644 --- a/math/dec.go +++ b/math/dec.go @@ -220,7 +220,7 @@ func (x Dec) Quo(y Dec) (Dec, error) { return z, errors.Wrap(err, "decimal quotient error") } -// MulExact returns a new dec with value x * y. The product must not round or +// MulExact returns a new dec with value x * y. The product must not be rounded or // ErrUnexpectedRounding will be returned. func (x Dec) MulExact(y Dec) (Dec, error) { var z Dec From 91e4388ecae4500148ba53d0eef43bd571e8178c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= <37072140+guilherme-brandao@users.noreply.github.com> Date: Wed, 21 Aug 2024 19:22:46 +0100 Subject: [PATCH 2/4] Updating forecaster score ratio (#537) Added missing update to the forecaster score ratio --- x/emissions/module/rewards/rewards.go | 8 ++- .../module/rewards/rewards_internal_test.go | 16 +++--- x/emissions/module/rewards/worker_rewards.go | 50 +++++++++---------- .../module/rewards/worker_rewards_test.go | 4 +- 4 files changed, 42 insertions(+), 36 deletions(-) diff --git a/x/emissions/module/rewards/rewards.go b/x/emissions/module/rewards/rewards.go index d7d2f4664..7bb45ee4d 100644 --- a/x/emissions/module/rewards/rewards.go +++ b/x/emissions/module/rewards/rewards.go @@ -339,7 +339,7 @@ func GenerateRewardsDistributionByTopicParticipant( } // Get chi (Forecasting Utility) and gamma (Normalization Factor) - chi, gamma, err := GetChiAndGamma( + chi, gamma, updatedForecasterScoreRatio, err := GetChiAndGamma( lossBundles.NaiveValue, lossBundles.CombinedValue, inferenceEntropy, @@ -352,6 +352,12 @@ func GenerateRewardsDistributionByTopicParticipant( return []types.TaskReward{}, alloraMath.Dec{}, errors.Wrapf(err, "failed to get chi and gamma") } + // Set updated forecaster score ratio + err = k.SetPreviousForecasterScoreRatio(ctx, topicId, updatedForecasterScoreRatio) + if err != nil { + return []types.TaskReward{}, alloraMath.Dec{}, errors.Wrapf(err, "failed to set previous forecast score ratio") + } + // Get Total Rewards for Inference task taskInferenceReward, err := GetRewardForInferenceTaskInTopic( inferenceEntropy, diff --git a/x/emissions/module/rewards/rewards_internal_test.go b/x/emissions/module/rewards/rewards_internal_test.go index 86660c8b0..1a685be54 100644 --- a/x/emissions/module/rewards/rewards_internal_test.go +++ b/x/emissions/module/rewards/rewards_internal_test.go @@ -140,7 +140,7 @@ func (s *MathTestSuite) TestInferenceRewardsSimple() { previousForecasterScoreRatio := alloraMath.ZeroDec() alpha := alloraMath.OneDec() totalReward := alloraMath.MustNewDecFromString("2.0") - chi, gamma, err := rewards.GetChiAndGamma( + chi, gamma, _, err := rewards.GetChiAndGamma( alloraMath.MustNewDecFromString("2"), // log10(L_i- (naive)) alloraMath.MustNewDecFromString("1"), // log10(L_i (network)) alloraMath.MustNewDecFromString("2.0"), @@ -181,7 +181,7 @@ func (s *MathTestSuite) TestInferenceRewardsZero() { } previousForecasterScoreRatio := alloraMath.ZeroDec() alpha := alloraMath.OneDec() - chi, gamma, err := rewards.GetChiAndGamma( + chi, gamma, _, err := rewards.GetChiAndGamma( alloraMath.MustNewDecFromString("2"), // log10(L_i- (naive)) alloraMath.MustNewDecFromString("1"), // log10(L_i (network)) alloraMath.MustNewDecFromString("2.0"), @@ -217,7 +217,7 @@ func (s *MathTestSuite) TestForecastRewardsSimple() { previousForecasterScoreRatio := alloraMath.ZeroDec() alpha := alloraMath.OneDec() totalReward := alloraMath.MustNewDecFromString("2.0") - chi, gamma, err := rewards.GetChiAndGamma( + chi, gamma, _, err := rewards.GetChiAndGamma( alloraMath.MustNewDecFromString("2"), // log10(L_i- (naive)) alloraMath.MustNewDecFromString("1"), // log10(L_i (network)) alloraMath.MustNewDecFromString("2.0"), @@ -263,7 +263,7 @@ func (s *MathTestSuite) TestU_iOverV_i() { previousForecasterScoreRatio := alloraMath.ZeroDec() alpha := alloraMath.OneDec() totalReward := alloraMath.MustNewDecFromString("2.0") - chi, gamma, err := rewards.GetChiAndGamma( + chi, gamma, _, err := rewards.GetChiAndGamma( alloraMath.MustNewDecFromString("2"), // log10(L_i- (naive)) alloraMath.MustNewDecFromString("1"), // log10(L_i (network)) alloraMath.MustNewDecFromString("2.0"), @@ -316,7 +316,7 @@ func (s *MathTestSuite) TestForecastRewardsZero() { } previousForecasterScoreRatio := alloraMath.ZeroDec() alpha := alloraMath.OneDec() - chi, gamma, err := rewards.GetChiAndGamma( + chi, gamma, _, err := rewards.GetChiAndGamma( alloraMath.MustNewDecFromString("2"), // log10(L_i- (naive)) alloraMath.MustNewDecFromString("1"), // log10(L_i (network)) alloraMath.MustNewDecFromString("2.0"), @@ -407,13 +407,13 @@ func (s *MathTestSuite) TestForecastingUtilitySimple() { {Score: alloraMath.MustNewDecFromString("0.5")}, {Score: alloraMath.MustNewDecFromString("0.5")}, } - ret, err := rewards.ForecastingUtility(negativeScore, infererScores, previousForecasterScoreRatio, alpha) + ret, _, err := rewards.ForecastingUtility(negativeScore, infererScores, previousForecasterScoreRatio, alpha) s.Require().NoError(err) s.Require().True(alloraMath.InDelta(alloraMath.MustNewDecFromString("0.1"), ret, alloraMath.MustNewDecFromString("0.0001"))) // Test case where score > 1 highScore := alloraMath.MustNewDecFromString("1.1") - ret, err = rewards.ForecastingUtility(highScore, infererScores, previousForecasterScoreRatio, alpha) + ret, _, err = rewards.ForecastingUtility(highScore, infererScores, previousForecasterScoreRatio, alpha) s.Require().NoError(err) s.Require().True(alloraMath.InDelta(alloraMath.MustNewDecFromString("0.5"), ret, alloraMath.MustNewDecFromString("0.0001"))) @@ -421,7 +421,7 @@ func (s *MathTestSuite) TestForecastingUtilitySimple() { forecastingPerformanceScore := alloraMath.MustNewDecFromString("0.125") expectedResult := alloraMath.MustNewDecFromString("0.2") - ret, err = rewards.ForecastingUtility(forecastingPerformanceScore, infererScores, previousForecasterScoreRatio, alpha) + ret, _, err = rewards.ForecastingUtility(forecastingPerformanceScore, infererScores, previousForecasterScoreRatio, alpha) s.Require().NoError(err) s.Require().True(alloraMath.InDelta(expectedResult, ret, alloraMath.MustNewDecFromString("0.0001"))) } diff --git a/x/emissions/module/rewards/worker_rewards.go b/x/emissions/module/rewards/worker_rewards.go index 6791bf32d..9d876b31b 100644 --- a/x/emissions/module/rewards/worker_rewards.go +++ b/x/emissions/module/rewards/worker_rewards.go @@ -242,7 +242,7 @@ func ForecastingUtility( infererScores []types.Score, previousForecasterScoreRatio alloraMath.Dec, alpha alloraMath.Dec, -) (alloraMath.Dec, error) { +) (alloraMath.Dec, alloraMath.Dec, error) { zeroPointOne := alloraMath.MustNewDecFromString("0.1") zeroPointFour := alloraMath.MustNewDecFromString("0.4") zeroPointFive := alloraMath.MustNewDecFromString("0.5") @@ -257,7 +257,7 @@ func ForecastingUtility( scoreDenominator := maxInfererScore.Abs() if maxInfererScore.IsZero() { if forecastingTaskUtilityScore.IsZero() { - return zeroPointFive, nil + return zeroPointFive, alloraMath.Dec{}, nil } else { scoreDenominator = forecastingTaskUtilityScore.Abs() } @@ -265,56 +265,56 @@ func ForecastingUtility( scoreNumerator, err := forecastingTaskUtilityScore.Sub(alloraMath.Min(alloraMath.ZeroDec(), maxInfererScore)) if err != nil { - return alloraMath.Dec{}, err + return alloraMath.Dec{}, alloraMath.Dec{}, err } scoreRatio, err := scoreNumerator.Quo(scoreDenominator) if err != nil { - return alloraMath.Dec{}, err + return alloraMath.Dec{}, alloraMath.Dec{}, err } // Calculate alpha * (scoreRatio) alphaTimesScoreRatio, err := alpha.Mul(scoreRatio) if err != nil { - return alloraMath.Dec{}, err + return alloraMath.Dec{}, alloraMath.Dec{}, err } // Calculate (1 - alpha) * previousForecasterScoreRatio oneMinusAlpha, err := alloraMath.OneDec().Sub(alpha) if err != nil { - return alloraMath.Dec{}, err + return alloraMath.Dec{}, alloraMath.Dec{}, err } oneMinusAlphaTimesPreviousForecasterScoreRatio, err := oneMinusAlpha.Mul(previousForecasterScoreRatio) if err != nil { - return alloraMath.Dec{}, err + return alloraMath.Dec{}, alloraMath.Dec{}, err } - // Calculate the final tau value + // Calculate the updated forecaster score ratio value forecasterScoreRatio, err := alphaTimesScoreRatio.Add(oneMinusAlphaTimesPreviousForecasterScoreRatio) if err != nil { - return alloraMath.Dec{}, err + return alloraMath.Dec{}, alloraMath.Dec{}, err } - // Apply the final tau value based on conditions + // Apply the updated forecaster score value based on conditions if forecasterScoreRatio.Lt(alloraMath.ZeroDec()) { - return zeroPointOne, nil + return zeroPointOne, forecasterScoreRatio, nil } if forecasterScoreRatio.Gte(alloraMath.OneDec()) { - return zeroPointFive, nil + return zeroPointFive, forecasterScoreRatio, nil } - // For 0 <= finalTau < 1, return 0.4 * finalTau + 0.1 - finalTauTimesZeroPointFour, err := forecasterScoreRatio.Mul(zeroPointFour) + // For 0 <= forecasterScoreRatio < 1, return 0.4 * forecasterScoreRatio + 0.1 + forecasterScoreRatioTimesZeroPointFour, err := forecasterScoreRatio.Mul(zeroPointFour) if err != nil { - return alloraMath.Dec{}, err + return alloraMath.Dec{}, alloraMath.Dec{}, err } - chiReturnValue, err := finalTauTimesZeroPointFour.Add(zeroPointOne) + chiReturnValue, err := forecasterScoreRatioTimesZeroPointFour.Add(zeroPointOne) if err != nil { - return alloraMath.Dec{}, err + return alloraMath.Dec{}, alloraMath.Dec{}, err } - return chiReturnValue, nil + return chiReturnValue, forecasterScoreRatio, nil } // renormalize with a factor γ to ensure that the @@ -362,32 +362,32 @@ func GetChiAndGamma( infererScores []types.Score, previousForecasterScoreRatio alloraMath.Dec, alpha alloraMath.Dec, -) (chi alloraMath.Dec, gamma alloraMath.Dec, err error) { +) (alloraMath.Dec, alloraMath.Dec, alloraMath.Dec, error) { forecastingTaskUtilityScore, err := ForecastingPerformanceScore( naiveNetworkInferenceLoss, networkInferenceLoss, ) if err != nil { - return alloraMath.Dec{}, alloraMath.Dec{}, errors.Wrapf(err, "failed to calculate forecasting performance score") + return alloraMath.Dec{}, alloraMath.Dec{}, alloraMath.Dec{}, errors.Wrapf(err, "failed to calculate forecasting performance score") } - chi, err = ForecastingUtility( + chi, updatedForecasterScoreRatio, err := ForecastingUtility( forecastingTaskUtilityScore, infererScores, previousForecasterScoreRatio, alpha, ) if err != nil { - return alloraMath.Dec{}, alloraMath.Dec{}, errors.Wrapf(err, "failed to calculate forecasting utility") + return alloraMath.Dec{}, alloraMath.Dec{}, alloraMath.Dec{}, errors.Wrapf(err, "failed to calculate forecasting utility") } - gamma, err = NormalizationFactor( + gamma, err := NormalizationFactor( entropyInference, entropyForecasting, chi, ) if err != nil { - return alloraMath.Dec{}, alloraMath.Dec{}, errors.Wrapf(err, "failed to calculate normalization factor") + return alloraMath.Dec{}, alloraMath.Dec{}, alloraMath.Dec{}, errors.Wrapf(err, "failed to calculate normalization factor") } - return chi, gamma, nil + return chi, gamma, updatedForecasterScoreRatio, nil } // inference rewards calculation diff --git a/x/emissions/module/rewards/worker_rewards_test.go b/x/emissions/module/rewards/worker_rewards_test.go index 351718bb2..6fb8e5b99 100644 --- a/x/emissions/module/rewards/worker_rewards_test.go +++ b/x/emissions/module/rewards/worker_rewards_test.go @@ -491,7 +491,7 @@ func (s *RewardsTestSuite) TestInferenceRewardsFromCsv() { {Score: epoch3Get("inferer_score_3")}, {Score: epoch3Get("inferer_score_4")}, } - chi, gamma, err := rewards.GetChiAndGamma( + chi, gamma, _, err := rewards.GetChiAndGamma( epoch3Get("network_naive_loss"), epoch3Get("network_loss"), epoch3Get("inferers_entropy"), @@ -529,7 +529,7 @@ func (s *RewardsTestSuite) TestForecastRewardsFromCsv() { {Score: epoch3Get("inferer_score_3")}, {Score: epoch3Get("inferer_score_4")}, } - chi, gamma, err := rewards.GetChiAndGamma( + chi, gamma, _, err := rewards.GetChiAndGamma( epoch3Get("network_naive_loss"), epoch3Get("network_loss"), epoch3Get("inferers_entropy"), From c49aeecd52296b72d9a6990d85e0d8ddc7b1b5ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Brand=C3=A3o?= <37072140+guilherme-brandao@users.noreply.github.com> Date: Wed, 21 Aug 2024 19:46:41 +0100 Subject: [PATCH 3/4] Added telemetry and removed unnecessary logs (#535) - Remove unnecessary `fmt.Print` statements - Added telemetry + new endblock metric for emissions module --------- Co-authored-by: T --- app/topics_handler.go | 7 ------- app/upgrades/v0_3_0/upgrades.go | 2 -- app/upgrades/v0_4_0/upgrades.go | 2 -- scripts/l1_node.sh | 3 +++ test/invariant/invariants.patch | 12 ++++++------ x/emissions/keeper/actor_utils/util_sort.go | 7 +++---- x/emissions/keeper/actor_utils/util_test.go | 7 +++++-- .../inference_synthesis/network_regrets.go | 1 - .../msgserver/msg_server_worker_payload.go | 6 +++--- x/emissions/module/abci.go | 5 +++++ x/emissions/types/events.go | 16 +++++++--------- x/ibc/testing/ibc_setup_test.go | 2 -- x/mint/keeper/emissions_test.go | 7 ------- 13 files changed, 32 insertions(+), 45 deletions(-) diff --git a/app/topics_handler.go b/app/topics_handler.go index e6ef869ca..b5dfb7e7a 100644 --- a/app/topics_handler.go +++ b/app/topics_handler.go @@ -1,8 +1,6 @@ package app import ( - "cosmossdk.io/log" - emissionskeeper "github.com/allora-network/allora-chain/x/emissions/keeper" abci "github.com/cometbft/cometbft/abci/types" @@ -23,11 +21,6 @@ func NewTopicsHandler(emissionsKeeper emissionskeeper.Keeper) *TopicsHandler { func (th *TopicsHandler) PrepareProposalHandler() sdk.PrepareProposalHandler { return func(ctx sdk.Context, req *abci.RequestPrepareProposal) (*abci.ResponsePrepareProposal, error) { - Logger(ctx).Debug("\n ---------------- TopicsHandler ------------------- \n") return &abci.ResponsePrepareProposal{Txs: req.Txs}, nil } } - -func Logger(ctx sdk.Context) log.Logger { - return ctx.Logger().With("module", "topic_handler") -} diff --git a/app/upgrades/v0_3_0/upgrades.go b/app/upgrades/v0_3_0/upgrades.go index 99abb7f04..d13989c4a 100644 --- a/app/upgrades/v0_3_0/upgrades.go +++ b/app/upgrades/v0_3_0/upgrades.go @@ -2,7 +2,6 @@ package v0_3_0 //nolint:revive // var-naming: don't use an underscore in package import ( "context" - "fmt" upgradetypes "cosmossdk.io/x/upgrade/types" "github.com/allora-network/allora-chain/app/upgrades" @@ -23,7 +22,6 @@ func CreateUpgradeHandler( configurator module.Configurator, ) upgradetypes.UpgradeHandler { return func(ctx context.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - fmt.Printf("Running upgrade handler for %s\n", UpgradeName) return moduleManager.RunMigrations(ctx, configurator, vm) } } diff --git a/app/upgrades/v0_4_0/upgrades.go b/app/upgrades/v0_4_0/upgrades.go index 41e9cdf55..4a910ba6c 100644 --- a/app/upgrades/v0_4_0/upgrades.go +++ b/app/upgrades/v0_4_0/upgrades.go @@ -2,7 +2,6 @@ package v0_4_0 //nolint:revive // var-naming: don't use an underscore in package import ( "context" - "fmt" upgradetypes "cosmossdk.io/x/upgrade/types" "github.com/allora-network/allora-chain/app/upgrades" @@ -23,7 +22,6 @@ func CreateUpgradeHandler( configurator module.Configurator, ) upgradetypes.UpgradeHandler { return func(ctx context.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - fmt.Printf("Running upgrade handler for %s\n", UpgradeName) return moduleManager.RunMigrations(ctx, configurator, vm) } } diff --git a/scripts/l1_node.sh b/scripts/l1_node.sh index a4d9e88b3..4f352870a 100755 --- a/scripts/l1_node.sh +++ b/scripts/l1_node.sh @@ -59,6 +59,9 @@ if [ ! -f $INIT_FLAG ]; then dasel put mempool.max_txs_bytes -t int -v 2097152 -f ${APP_HOME}/config/config.toml dasel put mempool.size -t int -v 1000 -f ${APP_HOME}/config/config.toml + #* Enable telemetry + dasel put telemetry.enabled -t bool -v true -f ${APP_HOME}/config/app.toml + touch $INIT_FLAG fi echo "Node is initialized" diff --git a/test/invariant/invariants.patch b/test/invariant/invariants.patch index 228049c67..b5bbb933e 100644 --- a/test/invariant/invariants.patch +++ b/test/invariant/invariants.patch @@ -1,18 +1,18 @@ diff --git a/x/emissions/module/abci.go b/x/emissions/module/abci.go -index 8f743b31..0511e66d 100644 +index d775365..69b81e1 100644 --- a/x/emissions/module/abci.go +++ b/x/emissions/module/abci.go -@@ -5,6 +5,7 @@ import ( - "fmt" +@@ -6,6 +6,7 @@ import ( + "time" "cosmossdk.io/errors" + emissionskeeper "github.com/allora-network/allora-chain/x/emissions/keeper" allorautils "github.com/allora-network/allora-chain/x/emissions/keeper/actor_utils" "github.com/allora-network/allora-chain/x/emissions/module/rewards" - sdk "github.com/cosmos/cosmos-sdk/types" -@@ -12,6 +13,10 @@ import ( + emissionstypes "github.com/allora-network/allora-chain/x/emissions/types" +@@ -17,6 +18,10 @@ func EndBlocker(ctx context.Context, am AppModule) error { + defer telemetry.ModuleMeasureSince(emissionstypes.ModuleName, time.Now(), telemetry.MetricKeyEndBlocker) - func EndBlocker(ctx context.Context, am AppModule) error { sdkCtx := sdk.UnwrapSDKContext(ctx) + invariantMessage, invariantFailed := emissionskeeper.AllInvariants(am.keeper)(sdkCtx) + if invariantFailed { diff --git a/x/emissions/keeper/actor_utils/util_sort.go b/x/emissions/keeper/actor_utils/util_sort.go index 64acf05e5..dface3ea0 100644 --- a/x/emissions/keeper/actor_utils/util_sort.go +++ b/x/emissions/keeper/actor_utils/util_sort.go @@ -2,11 +2,11 @@ package actorutils import ( "container/heap" - "fmt" "math/rand" "sort" "github.com/allora-network/allora-chain/x/emissions/types" + sdk "github.com/cosmos/cosmos-sdk/types" ) // Source: https://pkg.go.dev/container/heap#Push @@ -47,7 +47,6 @@ func (pq *PriorityQueue) Push(x any) { n := len(*pq) item, ok := x.(*SortableItem) if !ok { - fmt.Println("Error: Could not cast to SortableItem") return } item.index = n @@ -66,7 +65,7 @@ func (pq *PriorityQueue) Pop() any { // Sorts the given actors by score, desc, breaking ties randomly // Returns the top N actors as a map with the actor as the key and a boolean (True) as the value -func FindTopNByScoreDesc(n uint64, scoresByActor map[Actor]Score, randSeed BlockHeight) ([]Actor, map[string]bool) { +func FindTopNByScoreDesc(ctx sdk.Context, n uint64, scoresByActor map[Actor]Score, randSeed BlockHeight) ([]Actor, map[string]bool) { r := rand.New(rand.NewSource(randSeed)) //nolint:gosec // G404: Use of weak random number generator (math/rand or math/rand/v2 instead of crypto/rand) queue := &PriorityQueue{} i := 0 @@ -96,7 +95,7 @@ func FindTopNByScoreDesc(n uint64, scoresByActor map[Actor]Score, randSeed Block } item, ok := heap.Pop(queue).(*SortableItem) if !ok { - fmt.Println("Error: Could not cast to SortableItem") + ctx.Logger().Warn("Error: Could not cast to SortableItem") continue } topN = append(topN, item.Value) diff --git a/x/emissions/keeper/actor_utils/util_test.go b/x/emissions/keeper/actor_utils/util_test.go index 5bdb3d85f..d9eef2f4e 100644 --- a/x/emissions/keeper/actor_utils/util_test.go +++ b/x/emissions/keeper/actor_utils/util_test.go @@ -3,16 +3,19 @@ package actorutils import ( "testing" + storetypes "cosmossdk.io/store/types" alloraMath "github.com/allora-network/allora-chain/math" "github.com/allora-network/allora-chain/x/emissions/types" "github.com/cometbft/cometbft/crypto/secp256k1" + "github.com/cosmos/cosmos-sdk/testutil" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/require" ) func TestFindTopNByScoreDesc(t *testing.T) { - + key := storetypes.NewKVStoreKey("test") topicId := uint64(0) + testCtx := testutil.DefaultContextWithDB(t, key, storetypes.NewTransientStoreKey("transient_test")).Ctx worker1PrivateKey := secp256k1.GenPrivKey() worker2PrivateKey := secp256k1.GenPrivKey() @@ -33,7 +36,7 @@ func TestFindTopNByScoreDesc(t *testing.T) { latestReputerScores[worker4Addr.String()] = types.Score{TopicId: topicId, BlockHeight: 1, Address: worker4Addr.String(), Score: alloraMath.NewDecFromInt64(20)} latestReputerScores[worker5Addr.String()] = types.Score{TopicId: topicId, BlockHeight: 1, Address: worker5Addr.String(), Score: alloraMath.NewDecFromInt64(100)} - topActors, topActorsBool := FindTopNByScoreDesc(3, latestReputerScores, 1) + topActors, topActorsBool := FindTopNByScoreDesc(testCtx, 3, latestReputerScores, 1) require.Equal(t, worker5Addr.String(), topActors[0]) require.Equal(t, worker1Addr.String(), topActors[1]) require.Equal(t, worker3Addr.String(), topActors[2]) diff --git a/x/emissions/keeper/inference_synthesis/network_regrets.go b/x/emissions/keeper/inference_synthesis/network_regrets.go index b9ce0d8ed..6552d7cdb 100644 --- a/x/emissions/keeper/inference_synthesis/network_regrets.go +++ b/x/emissions/keeper/inference_synthesis/network_regrets.go @@ -320,7 +320,6 @@ func GetCalcSetNetworkRegrets( if err != nil { return errorsmod.Wrapf(err, "Error computing and building one-in forecaster regret") } - // fmt.Printf("regret %v, forecaster %s, inferer %s, value %s\n", newOneInForecasterRegret.Value, oneInForecasterLoss.Worker, infererLoss.Worker, newOneInForecasterRegret.Value.String()) err = k.SetOneInForecasterNetworkRegret(ctx, topicId, oneInForecasterLoss.Worker, infererLoss.Worker, newOneInForecasterRegret) if err != nil { return errorsmod.Wrapf(err, "Error setting one-in forecaster regret") diff --git a/x/emissions/keeper/msgserver/msg_server_worker_payload.go b/x/emissions/keeper/msgserver/msg_server_worker_payload.go index c85856431..c60cab24f 100644 --- a/x/emissions/keeper/msgserver/msg_server_worker_payload.go +++ b/x/emissions/keeper/msgserver/msg_server_worker_payload.go @@ -12,6 +12,8 @@ import ( // A tx function that accepts a individual inference and forecast and possibly returns an error // Need to call this once per forecaster per topic inference solicitation round because protobuf does not nested repeated fields func (ms msgServer) InsertWorkerPayload(ctx context.Context, msg *types.MsgInsertWorkerPayload) (*types.MsgInsertWorkerPayloadResponse, error) { + sdkCtx := sdk.UnwrapSDKContext(ctx) + blockHeight := sdkCtx.BlockHeight() _, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { return nil, err @@ -21,8 +23,6 @@ func (ms msgServer) InsertWorkerPayload(ctx context.Context, msg *types.MsgInser return nil, err } - blockHeight := sdk.UnwrapSDKContext(ctx).BlockHeight() - if err := msg.WorkerDataBundle.Validate(); err != nil { return nil, errorsmod.Wrapf(types.ErrInvalidWorkerData, "Worker invalid data for block: %d", blockHeight) @@ -129,7 +129,7 @@ func (ms msgServer) InsertWorkerPayload(ctx context.Context, msg *types.MsgInser if err != nil { return nil, err } - _, topNInferer := actorutils.FindTopNByScoreDesc(moduleParams.MaxElementsPerForecast, latestScoresForForecastedInferers, forecast.BlockHeight) + _, topNInferer := actorutils.FindTopNByScoreDesc(sdkCtx, moduleParams.MaxElementsPerForecast, latestScoresForForecastedInferers, forecast.BlockHeight) for _, el := range forecast.ForecastElements { if !seenInferers[el.Inferer] && topNInferer[el.Inferer] { diff --git a/x/emissions/module/abci.go b/x/emissions/module/abci.go index cf924cd86..d775365ea 100644 --- a/x/emissions/module/abci.go +++ b/x/emissions/module/abci.go @@ -3,14 +3,19 @@ package module import ( "context" "fmt" + "time" "cosmossdk.io/errors" allorautils "github.com/allora-network/allora-chain/x/emissions/keeper/actor_utils" "github.com/allora-network/allora-chain/x/emissions/module/rewards" + emissionstypes "github.com/allora-network/allora-chain/x/emissions/types" + "github.com/cosmos/cosmos-sdk/telemetry" sdk "github.com/cosmos/cosmos-sdk/types" ) func EndBlocker(ctx context.Context, am AppModule) error { + defer telemetry.ModuleMeasureSince(emissionstypes.ModuleName, time.Now(), telemetry.MetricKeyEndBlocker) + sdkCtx := sdk.UnwrapSDKContext(ctx) blockHeight := sdkCtx.BlockHeight() sdkCtx.Logger().Debug( diff --git a/x/emissions/types/events.go b/x/emissions/types/events.go index 418c9b521..e673b3ee3 100644 --- a/x/emissions/types/events.go +++ b/x/emissions/types/events.go @@ -1,8 +1,6 @@ package types import ( - "fmt" - alloraMath "github.com/allora-network/allora-chain/math" sdk "github.com/cosmos/cosmos-sdk/types" proto "github.com/cosmos/gogoproto/proto" @@ -16,7 +14,7 @@ func EmitNewInfererScoresSetEvent(ctx sdk.Context, scores []Score) { } err := ctx.EventManager().EmitTypedEvent(NewScoresSetEventBase(ActorType_INFERER, scores)) if err != nil { - fmt.Println("Error emitting NewInfererScoresSetEvent: ", err) + ctx.Logger().Warn("Error emitting NewInfererScoresSetEvent: ", err.Error()) } } @@ -26,7 +24,7 @@ func EmitNewForecasterScoresSetEvent(ctx sdk.Context, scores []Score) { } err := ctx.EventManager().EmitTypedEvent(NewScoresSetEventBase(ActorType_FORECASTER, scores)) if err != nil { - fmt.Println("Error emitting NewForecasterScoresSetEvent: ", err) + ctx.Logger().Warn("Error emitting NewForecasterScoresSetEvent: ", err.Error()) } } @@ -36,14 +34,14 @@ func EmitNewReputerScoresSetEvent(ctx sdk.Context, scores []Score) { } err := ctx.EventManager().EmitTypedEvent(NewScoresSetEventBase(ActorType_REPUTER, scores)) if err != nil { - fmt.Println("Error emitting NewReputerScoresSetEvent: ", err) + ctx.Logger().Warn("Error emitting NewReputerScoresSetEvent: ", err.Error()) } } func EmitNewNetworkLossSetEvent(ctx sdk.Context, topicId TopicId, blockHeight BlockHeight, lossBundle ValueBundle) { err := ctx.EventManager().EmitTypedEvent(NewNetworkLossSetEventBase(topicId, blockHeight, lossBundle)) if err != nil { - fmt.Println("Error emitting NewNetworkLossSetEvent: ", err) + ctx.Logger().Warn("Error emitting NewNetworkLossSetEvent: ", err.Error()) } } @@ -53,7 +51,7 @@ func EmitNewInfererRewardsSettledEvent(ctx sdk.Context, blockHeight BlockHeight, } err := ctx.EventManager().EmitTypedEvent(NewRewardsSetEventBase(ActorType_INFERER, blockHeight, rewards)) if err != nil { - fmt.Println("Error emitting NewInfererRewardsSettledEvent: ", err) + ctx.Logger().Warn("Error emitting NewInfererRewardsSettledEvent: ", err.Error()) } } @@ -63,7 +61,7 @@ func EmitNewForecasterRewardsSettledEvent(ctx sdk.Context, blockHeight BlockHeig } err := ctx.EventManager().EmitTypedEvent(NewRewardsSetEventBase(ActorType_FORECASTER, blockHeight, rewards)) if err != nil { - fmt.Println("Error emitting NewForecasterRewardsSettledEvent: ", err) + ctx.Logger().Warn("Error emitting NewForecasterRewardsSettledEvent: ", err.Error()) } } @@ -73,7 +71,7 @@ func EmitNewReputerAndDelegatorRewardsSettledEvent(ctx sdk.Context, blockHeight } err := ctx.EventManager().EmitTypedEvent(NewRewardsSetEventBase(ActorType_REPUTER, blockHeight, rewards)) if err != nil { - fmt.Println("Error emitting NewReputerAndDelegatorRewardsSettledEvent: ", err) + ctx.Logger().Warn("Error emitting NewReputerAndDelegatorRewardsSettledEvent: ", err.Error()) } } diff --git a/x/ibc/testing/ibc_setup_test.go b/x/ibc/testing/ibc_setup_test.go index 68845db18..0393481f4 100644 --- a/x/ibc/testing/ibc_setup_test.go +++ b/x/ibc/testing/ibc_setup_test.go @@ -2,7 +2,6 @@ package testing import ( "encoding/json" - "fmt" "testing" "cosmossdk.io/log" @@ -55,7 +54,6 @@ func alloraAppInitializer() (ibctesting.TestingApp, map[string]json.RawMessage) simtestutil.EmptyAppOptions{}, ) if err != nil { - fmt.Printf("Initializing app error: %v\n", err) return nil, nil } diff --git a/x/mint/keeper/emissions_test.go b/x/mint/keeper/emissions_test.go index 38dac0282..c2b243855 100644 --- a/x/mint/keeper/emissions_test.go +++ b/x/mint/keeper/emissions_test.go @@ -1,8 +1,6 @@ package keeper_test import ( - "fmt" - cosmosMath "cosmossdk.io/math" alloraMath "github.com/allora-network/allora-chain/math" "github.com/allora-network/allora-chain/test/testutil" @@ -146,11 +144,6 @@ func (s *IntegrationTestSuite) TestEHatTargetFromCsv() { s.Require().NoError(err) networkTokensStaked, err := epoch("network_tokens_staked").SdkIntTrim() s.Require().NoError(err) - fmt.Println("f_emission", simulatorFEmission) - fmt.Println("ecosystem_tokens_total", ecosystemTokensTotal) - fmt.Println("network_tokens_circulating", networkTokensCirculating) - fmt.Println("network_tokens_staked", networkTokensStaked) - fmt.Println("network_tokens_total", networkTokensTotal) result, err := keeper.GetTargetRewardEmissionPerUnitStakedToken( simulatorFEmission, ecosystemTokensTotal, From d23be2db865738e068472a0560bc13626dc4d491 Mon Sep 17 00:00:00 2001 From: T Date: Wed, 21 Aug 2024 16:04:17 -0400 Subject: [PATCH 4/4] Fee Revenue Decay Rate set to per topic's epoch rather than global fixed constant (#529) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Purpose of Changes and their Description Currently, we use a global parameter to drip revenue to the same extent across all topics, regardless of their epoch length. This is somewhat unfair, as topics of larger epochs then get dripped comparatively less than those with shorter epoch lengths. @jmdkastro proposes a more appropriate way of updating effective revenue, that actually takes the topic epoch length into consideration (through calculation of "epochs per week"). Relevant text from the whitepaper: The quantity `C_{t,i}` decays _each epoch_ by subtracting an amount `∆ C_{t,i} = N_{epochs,w} * C_{t,i}` (where `N_{epochs,w}` is the number of epochs per week) and thus captures recent revenue. This PR modifies the keeper.go `DripTopicFeeRevenue` function to do the following: identify if we have dripped yet this epoch. If we have not, then calculate the number of blocksPerWeek based on the blocksPerMonth, get the epochs per block from the topic, then do the math to calculate how much to decay for this epoch. Then it overwrites the fee revenue for this topic, and marks this epoch as having been decayed. This change add a new data structure to the keeper called `lastDripBlock`. This change also deletes the global emissions module parameter `TopicFeeRevenueDecayRate` ## Link(s) to Ticket(s) or Issue(s) resolved by this PR PROTO-2150 RES-302 ## Are these changes tested and documented? Our existing unit tests were adapted to fit this new change, as some of them had broke from the different algorithms. --- math/utils.go | 15 - math/utils_test.go | 25 - x/emissions/api/v3/genesis.pulsar.go | 2144 ++++++++++++----- x/emissions/api/v3/params.pulsar.go | 196 +- x/emissions/api/v3/tx.pulsar.go | 803 +++--- x/emissions/keeper/genesis.go | 61 + x/emissions/keeper/keeper.go | 106 +- x/emissions/keeper/keeper_test.go | 2 +- .../keeper/msgserver/msg_server_params.go | 3 - x/emissions/migrations/v3/migrate.go | 5 +- x/emissions/migrations/v3/migrate_test.go | 3 +- x/emissions/module/rewards/rewards_test.go | 15 +- x/emissions/proto/emissions/v3/genesis.proto | 10 + x/emissions/proto/emissions/v3/params.proto | 8 +- x/emissions/proto/emissions/v3/tx.proto | 8 +- x/emissions/types/genesis.pb.go | 716 ++++-- x/emissions/types/keys.go | 1 + x/emissions/types/params.go | 13 - x/emissions/types/params.pb.go | 229 +- x/emissions/types/tx.pb.go | 370 ++- 20 files changed, 2924 insertions(+), 1809 deletions(-) diff --git a/math/utils.go b/math/utils.go index 8d2e2d322..ecce930d7 100644 --- a/math/utils.go +++ b/math/utils.go @@ -43,21 +43,6 @@ func CalcEma( return ret, nil } -func CalcExpDecay( - currentRev, - decayFactor Dec, -) (Dec, error) { - oneMinusDecayFactor, err := OneDec().Sub(decayFactor) - if err != nil { - return ZeroDec(), err - } - newRev, err := oneMinusDecayFactor.Mul(currentRev) - if err != nil { - return ZeroDec(), err - } - return newRev, nil -} - // Generic function that sorts the keys of a map // Used for deterministic ranging of maps func GetSortedKeys[K cmp.Ordered, V any](m map[K]V) []K { diff --git a/math/utils_test.go b/math/utils_test.go index 5cba68c51..0cb64a561 100644 --- a/math/utils_test.go +++ b/math/utils_test.go @@ -34,31 +34,6 @@ func TestCalcEmaWithNoPrior(t *testing.T) { require.True(t, alloraMath.InDelta(expected, result, alloraMath.MustNewDecFromString("0.0001"))) } -func TestCalcExpDecaySimple(t *testing.T) { - decayFactor := alloraMath.MustNewDecFromString("0.1") - currentRev := alloraMath.MustNewDecFromString("300") - - // (1 - 0.1) * 300 - // 0.9 * 300 = 270 - expected := alloraMath.MustNewDecFromString("270") - result, err := alloraMath.CalcExpDecay(currentRev, decayFactor) - require.NoError(t, err) - require.True(t, alloraMath.InDelta(expected, result, alloraMath.MustNewDecFromString("0.0001"))) -} - -func TestCalcExpDecayZeroDecayFactor(t *testing.T) { - decayFactor := alloraMath.MustNewDecFromString("0") - currentRev := alloraMath.MustNewDecFromString("300") - - // (1 - 0) * 300 - // 1 * 300 = 300 - expected := alloraMath.MustNewDecFromString("300") - - result, err := alloraMath.CalcExpDecay(currentRev, decayFactor) - require.NoError(t, err) - require.True(t, alloraMath.InDelta(expected, result, alloraMath.MustNewDecFromString("0.0001"))) -} - func TestStdDev(t *testing.T) { tests := []struct { name string diff --git a/x/emissions/api/v3/genesis.pulsar.go b/x/emissions/api/v3/genesis.pulsar.go index c02d7cdf8..3fd578ea5 100644 --- a/x/emissions/api/v3/genesis.pulsar.go +++ b/x/emissions/api/v3/genesis.pulsar.go @@ -1892,6 +1892,57 @@ func (x *_GenesisState_41_list) IsValid() bool { return x.list != nil } +var _ protoreflect.List = (*_GenesisState_55_list)(nil) + +type _GenesisState_55_list struct { + list *[]*BlockHeightAndTopicIds +} + +func (x *_GenesisState_55_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_55_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_55_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*BlockHeightAndTopicIds) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_55_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*BlockHeightAndTopicIds) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_55_list) AppendMutable() protoreflect.Value { + v := new(BlockHeightAndTopicIds) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_55_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_55_list) NewElement() protoreflect.Value { + v := new(BlockHeightAndTopicIds) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_55_list) IsValid() bool { + return x.list != nil +} + var _ protoreflect.List = (*_GenesisState_43_list)(nil) type _GenesisState_43_list struct { @@ -1994,6 +2045,57 @@ func (x *_GenesisState_44_list) IsValid() bool { return x.list != nil } +var _ protoreflect.List = (*_GenesisState_56_list)(nil) + +type _GenesisState_56_list struct { + list *[]*TopicIdAndBlockHeight +} + +func (x *_GenesisState_56_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_56_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_56_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*TopicIdAndBlockHeight) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_56_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*TopicIdAndBlockHeight) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_56_list) AppendMutable() protoreflect.Value { + v := new(TopicIdAndBlockHeight) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_56_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_56_list) NewElement() protoreflect.Value { + v := new(TopicIdAndBlockHeight) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_56_list) IsValid() bool { + return x.list != nil +} + var _ protoreflect.List = (*_GenesisState_45_list)(nil) type _GenesisState_45_list struct { @@ -2593,8 +2695,10 @@ var ( fd_GenesisState_allLossBundles protoreflect.FieldDescriptor fd_GenesisState_networkLossBundles protoreflect.FieldDescriptor fd_GenesisState_previousPercentageRewardToStakedReputers protoreflect.FieldDescriptor + fd_GenesisState_openWorkerWindows protoreflect.FieldDescriptor fd_GenesisState_unfulfilledWorkerNonces protoreflect.FieldDescriptor fd_GenesisState_unfulfilledReputerNonces protoreflect.FieldDescriptor + fd_GenesisState_lastDripBlock protoreflect.FieldDescriptor fd_GenesisState_latestInfererNetworkRegrets protoreflect.FieldDescriptor fd_GenesisState_latestForecasterNetworkRegrets protoreflect.FieldDescriptor fd_GenesisState_latestOneInForecasterNetworkRegrets protoreflect.FieldDescriptor @@ -2652,8 +2756,10 @@ func init() { fd_GenesisState_allLossBundles = md_GenesisState.Fields().ByName("allLossBundles") fd_GenesisState_networkLossBundles = md_GenesisState.Fields().ByName("networkLossBundles") fd_GenesisState_previousPercentageRewardToStakedReputers = md_GenesisState.Fields().ByName("previousPercentageRewardToStakedReputers") + fd_GenesisState_openWorkerWindows = md_GenesisState.Fields().ByName("openWorkerWindows") fd_GenesisState_unfulfilledWorkerNonces = md_GenesisState.Fields().ByName("unfulfilledWorkerNonces") fd_GenesisState_unfulfilledReputerNonces = md_GenesisState.Fields().ByName("unfulfilledReputerNonces") + fd_GenesisState_lastDripBlock = md_GenesisState.Fields().ByName("lastDripBlock") fd_GenesisState_latestInfererNetworkRegrets = md_GenesisState.Fields().ByName("latestInfererNetworkRegrets") fd_GenesisState_latestForecasterNetworkRegrets = md_GenesisState.Fields().ByName("latestForecasterNetworkRegrets") fd_GenesisState_latestOneInForecasterNetworkRegrets = md_GenesisState.Fields().ByName("latestOneInForecasterNetworkRegrets") @@ -2978,6 +3084,12 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } + if len(x.OpenWorkerWindows) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_55_list{list: &x.OpenWorkerWindows}) + if !f(fd_GenesisState_openWorkerWindows, value) { + return + } + } if len(x.UnfulfilledWorkerNonces) != 0 { value := protoreflect.ValueOfList(&_GenesisState_43_list{list: &x.UnfulfilledWorkerNonces}) if !f(fd_GenesisState_unfulfilledWorkerNonces, value) { @@ -2990,6 +3102,12 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } + if len(x.LastDripBlock) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_56_list{list: &x.LastDripBlock}) + if !f(fd_GenesisState_lastDripBlock, value) { + return + } + } if len(x.LatestInfererNetworkRegrets) != 0 { value := protoreflect.ValueOfList(&_GenesisState_45_list{list: &x.LatestInfererNetworkRegrets}) if !f(fd_GenesisState_latestInfererNetworkRegrets, value) { @@ -3153,10 +3271,14 @@ func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool return len(x.NetworkLossBundles) != 0 case "emissions.v3.GenesisState.previousPercentageRewardToStakedReputers": return x.PreviousPercentageRewardToStakedReputers != "" + case "emissions.v3.GenesisState.openWorkerWindows": + return len(x.OpenWorkerWindows) != 0 case "emissions.v3.GenesisState.unfulfilledWorkerNonces": return len(x.UnfulfilledWorkerNonces) != 0 case "emissions.v3.GenesisState.unfulfilledReputerNonces": return len(x.UnfulfilledReputerNonces) != 0 + case "emissions.v3.GenesisState.lastDripBlock": + return len(x.LastDripBlock) != 0 case "emissions.v3.GenesisState.latestInfererNetworkRegrets": return len(x.LatestInfererNetworkRegrets) != 0 case "emissions.v3.GenesisState.latestForecasterNetworkRegrets": @@ -3277,10 +3399,14 @@ func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { x.NetworkLossBundles = nil case "emissions.v3.GenesisState.previousPercentageRewardToStakedReputers": x.PreviousPercentageRewardToStakedReputers = "" + case "emissions.v3.GenesisState.openWorkerWindows": + x.OpenWorkerWindows = nil case "emissions.v3.GenesisState.unfulfilledWorkerNonces": x.UnfulfilledWorkerNonces = nil case "emissions.v3.GenesisState.unfulfilledReputerNonces": x.UnfulfilledReputerNonces = nil + case "emissions.v3.GenesisState.lastDripBlock": + x.LastDripBlock = nil case "emissions.v3.GenesisState.latestInfererNetworkRegrets": x.LatestInfererNetworkRegrets = nil case "emissions.v3.GenesisState.latestForecasterNetworkRegrets": @@ -3553,6 +3679,12 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto case "emissions.v3.GenesisState.previousPercentageRewardToStakedReputers": value := x.PreviousPercentageRewardToStakedReputers return protoreflect.ValueOfString(value) + case "emissions.v3.GenesisState.openWorkerWindows": + if len(x.OpenWorkerWindows) == 0 { + return protoreflect.ValueOfList(&_GenesisState_55_list{}) + } + listValue := &_GenesisState_55_list{list: &x.OpenWorkerWindows} + return protoreflect.ValueOfList(listValue) case "emissions.v3.GenesisState.unfulfilledWorkerNonces": if len(x.UnfulfilledWorkerNonces) == 0 { return protoreflect.ValueOfList(&_GenesisState_43_list{}) @@ -3565,6 +3697,12 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto } listValue := &_GenesisState_44_list{list: &x.UnfulfilledReputerNonces} return protoreflect.ValueOfList(listValue) + case "emissions.v3.GenesisState.lastDripBlock": + if len(x.LastDripBlock) == 0 { + return protoreflect.ValueOfList(&_GenesisState_56_list{}) + } + listValue := &_GenesisState_56_list{list: &x.LastDripBlock} + return protoreflect.ValueOfList(listValue) case "emissions.v3.GenesisState.latestInfererNetworkRegrets": if len(x.LatestInfererNetworkRegrets) == 0 { return protoreflect.ValueOfList(&_GenesisState_45_list{}) @@ -3807,6 +3945,10 @@ func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value x.NetworkLossBundles = *clv.list case "emissions.v3.GenesisState.previousPercentageRewardToStakedReputers": x.PreviousPercentageRewardToStakedReputers = value.Interface().(string) + case "emissions.v3.GenesisState.openWorkerWindows": + lv := value.List() + clv := lv.(*_GenesisState_55_list) + x.OpenWorkerWindows = *clv.list case "emissions.v3.GenesisState.unfulfilledWorkerNonces": lv := value.List() clv := lv.(*_GenesisState_43_list) @@ -3815,6 +3957,10 @@ func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value lv := value.List() clv := lv.(*_GenesisState_44_list) x.UnfulfilledReputerNonces = *clv.list + case "emissions.v3.GenesisState.lastDripBlock": + lv := value.List() + clv := lv.(*_GenesisState_56_list) + x.LastDripBlock = *clv.list case "emissions.v3.GenesisState.latestInfererNetworkRegrets": lv := value.List() clv := lv.(*_GenesisState_45_list) @@ -4106,6 +4252,12 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p } value := &_GenesisState_41_list{list: &x.NetworkLossBundles} return protoreflect.ValueOfList(value) + case "emissions.v3.GenesisState.openWorkerWindows": + if x.OpenWorkerWindows == nil { + x.OpenWorkerWindows = []*BlockHeightAndTopicIds{} + } + value := &_GenesisState_55_list{list: &x.OpenWorkerWindows} + return protoreflect.ValueOfList(value) case "emissions.v3.GenesisState.unfulfilledWorkerNonces": if x.UnfulfilledWorkerNonces == nil { x.UnfulfilledWorkerNonces = []*TopicIdAndNonces{} @@ -4118,6 +4270,12 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p } value := &_GenesisState_44_list{list: &x.UnfulfilledReputerNonces} return protoreflect.ValueOfList(value) + case "emissions.v3.GenesisState.lastDripBlock": + if x.LastDripBlock == nil { + x.LastDripBlock = []*TopicIdAndBlockHeight{} + } + value := &_GenesisState_56_list{list: &x.LastDripBlock} + return protoreflect.ValueOfList(value) case "emissions.v3.GenesisState.latestInfererNetworkRegrets": if x.LatestInfererNetworkRegrets == nil { x.LatestInfererNetworkRegrets = []*TopicIdActorIdTimeStampedValue{} @@ -4323,12 +4481,18 @@ func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) return protoreflect.ValueOfList(&_GenesisState_41_list{list: &list}) case "emissions.v3.GenesisState.previousPercentageRewardToStakedReputers": return protoreflect.ValueOfString("") + case "emissions.v3.GenesisState.openWorkerWindows": + list := []*BlockHeightAndTopicIds{} + return protoreflect.ValueOfList(&_GenesisState_55_list{list: &list}) case "emissions.v3.GenesisState.unfulfilledWorkerNonces": list := []*TopicIdAndNonces{} return protoreflect.ValueOfList(&_GenesisState_43_list{list: &list}) case "emissions.v3.GenesisState.unfulfilledReputerNonces": list := []*TopicIdAndReputerRequestNonces{} return protoreflect.ValueOfList(&_GenesisState_44_list{list: &list}) + case "emissions.v3.GenesisState.lastDripBlock": + list := []*TopicIdAndBlockHeight{} + return protoreflect.ValueOfList(&_GenesisState_56_list{list: &list}) case "emissions.v3.GenesisState.latestInfererNetworkRegrets": list := []*TopicIdActorIdTimeStampedValue{} return protoreflect.ValueOfList(&_GenesisState_45_list{list: &list}) @@ -4670,6 +4834,12 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) } + if len(x.OpenWorkerWindows) > 0 { + for _, e := range x.OpenWorkerWindows { + l = options.Size(e) + n += 2 + l + runtime.Sov(uint64(l)) + } + } if len(x.UnfulfilledWorkerNonces) > 0 { for _, e := range x.UnfulfilledWorkerNonces { l = options.Size(e) @@ -4682,6 +4852,12 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { n += 2 + l + runtime.Sov(uint64(l)) } } + if len(x.LastDripBlock) > 0 { + for _, e := range x.LastDripBlock { + l = options.Size(e) + n += 2 + l + runtime.Sov(uint64(l)) + } + } if len(x.LatestInfererNetworkRegrets) > 0 { for _, e := range x.LatestInfererNetworkRegrets { l = options.Size(e) @@ -4777,6 +4953,42 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.LastDripBlock) > 0 { + for iNdEx := len(x.LastDripBlock) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.LastDripBlock[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] = 0x3 + i-- + dAtA[i] = 0xc2 + } + } + if len(x.OpenWorkerWindows) > 0 { + for iNdEx := len(x.OpenWorkerWindows) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.OpenWorkerWindows[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] = 0x3 + i-- + dAtA[i] = 0xba + } + } if len(x.TopicLastReputerCommit) > 0 { for iNdEx := len(x.TopicLastReputerCommit) - 1; iNdEx >= 0; iNdEx-- { encoded, err := options.Marshal(x.TopicLastReputerCommit[iNdEx]) @@ -7199,6 +7411,40 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { } x.PreviousPercentageRewardToStakedReputers = 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 OpenWorkerWindows", 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.OpenWorkerWindows = append(x.OpenWorkerWindows, &BlockHeightAndTopicIds{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.OpenWorkerWindows[len(x.OpenWorkerWindows)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex case 43: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnfulfilledWorkerNonces", wireType) @@ -7267,6 +7513,40 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex + case 56: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LastDripBlock", 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.LastDripBlock = append(x.LastDripBlock, &TopicIdAndBlockHeight{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.LastDripBlock[len(x.LastDripBlock)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex case 45: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LatestInfererNetworkRegrets", wireType) @@ -9077,30 +9357,74 @@ func (x *fastReflection_TopicIdAndBlockHeight) ProtoMethods() *protoiface.Method } } +var _ protoreflect.List = (*_BlockHeightAndTopicIds_2_list)(nil) + +type _BlockHeightAndTopicIds_2_list struct { + list *[]uint64 +} + +func (x *_BlockHeightAndTopicIds_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_BlockHeightAndTopicIds_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfUint64((*x.list)[i]) +} + +func (x *_BlockHeightAndTopicIds_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_BlockHeightAndTopicIds_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_BlockHeightAndTopicIds_2_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message BlockHeightAndTopicIds at list field TopicIds as it is not of Message kind")) +} + +func (x *_BlockHeightAndTopicIds_2_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_BlockHeightAndTopicIds_2_list) NewElement() protoreflect.Value { + v := uint64(0) + return protoreflect.ValueOfUint64(v) +} + +func (x *_BlockHeightAndTopicIds_2_list) IsValid() bool { + return x.list != nil +} + var ( - md_TopicIdBlockHeightScores protoreflect.MessageDescriptor - fd_TopicIdBlockHeightScores_TopicId protoreflect.FieldDescriptor - fd_TopicIdBlockHeightScores_BlockHeight protoreflect.FieldDescriptor - fd_TopicIdBlockHeightScores_Scores protoreflect.FieldDescriptor + md_BlockHeightAndTopicIds protoreflect.MessageDescriptor + fd_BlockHeightAndTopicIds_BlockHeight protoreflect.FieldDescriptor + fd_BlockHeightAndTopicIds_TopicIds protoreflect.FieldDescriptor ) func init() { file_emissions_v3_genesis_proto_init() - md_TopicIdBlockHeightScores = File_emissions_v3_genesis_proto.Messages().ByName("TopicIdBlockHeightScores") - fd_TopicIdBlockHeightScores_TopicId = md_TopicIdBlockHeightScores.Fields().ByName("TopicId") - fd_TopicIdBlockHeightScores_BlockHeight = md_TopicIdBlockHeightScores.Fields().ByName("BlockHeight") - fd_TopicIdBlockHeightScores_Scores = md_TopicIdBlockHeightScores.Fields().ByName("Scores") + md_BlockHeightAndTopicIds = File_emissions_v3_genesis_proto.Messages().ByName("BlockHeightAndTopicIds") + fd_BlockHeightAndTopicIds_BlockHeight = md_BlockHeightAndTopicIds.Fields().ByName("BlockHeight") + fd_BlockHeightAndTopicIds_TopicIds = md_BlockHeightAndTopicIds.Fields().ByName("TopicIds") } -var _ protoreflect.Message = (*fastReflection_TopicIdBlockHeightScores)(nil) +var _ protoreflect.Message = (*fastReflection_BlockHeightAndTopicIds)(nil) -type fastReflection_TopicIdBlockHeightScores TopicIdBlockHeightScores +type fastReflection_BlockHeightAndTopicIds BlockHeightAndTopicIds -func (x *TopicIdBlockHeightScores) ProtoReflect() protoreflect.Message { - return (*fastReflection_TopicIdBlockHeightScores)(x) +func (x *BlockHeightAndTopicIds) ProtoReflect() protoreflect.Message { + return (*fastReflection_BlockHeightAndTopicIds)(x) } -func (x *TopicIdBlockHeightScores) slowProtoReflect() protoreflect.Message { +func (x *BlockHeightAndTopicIds) slowProtoReflect() protoreflect.Message { mi := &file_emissions_v3_genesis_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9112,42 +9436,582 @@ func (x *TopicIdBlockHeightScores) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_TopicIdBlockHeightScores_messageType fastReflection_TopicIdBlockHeightScores_messageType -var _ protoreflect.MessageType = fastReflection_TopicIdBlockHeightScores_messageType{} +var _fastReflection_BlockHeightAndTopicIds_messageType fastReflection_BlockHeightAndTopicIds_messageType +var _ protoreflect.MessageType = fastReflection_BlockHeightAndTopicIds_messageType{} -type fastReflection_TopicIdBlockHeightScores_messageType struct{} +type fastReflection_BlockHeightAndTopicIds_messageType struct{} -func (x fastReflection_TopicIdBlockHeightScores_messageType) Zero() protoreflect.Message { - return (*fastReflection_TopicIdBlockHeightScores)(nil) +func (x fastReflection_BlockHeightAndTopicIds_messageType) Zero() protoreflect.Message { + return (*fastReflection_BlockHeightAndTopicIds)(nil) } -func (x fastReflection_TopicIdBlockHeightScores_messageType) New() protoreflect.Message { - return new(fastReflection_TopicIdBlockHeightScores) +func (x fastReflection_BlockHeightAndTopicIds_messageType) New() protoreflect.Message { + return new(fastReflection_BlockHeightAndTopicIds) } -func (x fastReflection_TopicIdBlockHeightScores_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_TopicIdBlockHeightScores +func (x fastReflection_BlockHeightAndTopicIds_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_BlockHeightAndTopicIds } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_TopicIdBlockHeightScores) Descriptor() protoreflect.MessageDescriptor { - return md_TopicIdBlockHeightScores +func (x *fastReflection_BlockHeightAndTopicIds) Descriptor() protoreflect.MessageDescriptor { + return md_BlockHeightAndTopicIds } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_TopicIdBlockHeightScores) Type() protoreflect.MessageType { - return _fastReflection_TopicIdBlockHeightScores_messageType +func (x *fastReflection_BlockHeightAndTopicIds) Type() protoreflect.MessageType { + return _fastReflection_BlockHeightAndTopicIds_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_TopicIdBlockHeightScores) New() protoreflect.Message { - return new(fastReflection_TopicIdBlockHeightScores) +func (x *fastReflection_BlockHeightAndTopicIds) New() protoreflect.Message { + return new(fastReflection_BlockHeightAndTopicIds) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_TopicIdBlockHeightScores) Interface() protoreflect.ProtoMessage { +func (x *fastReflection_BlockHeightAndTopicIds) Interface() protoreflect.ProtoMessage { + return (*BlockHeightAndTopicIds)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_BlockHeightAndTopicIds) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.BlockHeight != int64(0) { + value := protoreflect.ValueOfInt64(x.BlockHeight) + if !f(fd_BlockHeightAndTopicIds_BlockHeight, value) { + return + } + } + if len(x.TopicIds) != 0 { + value := protoreflect.ValueOfList(&_BlockHeightAndTopicIds_2_list{list: &x.TopicIds}) + if !f(fd_BlockHeightAndTopicIds_TopicIds, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_BlockHeightAndTopicIds) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "emissions.v3.BlockHeightAndTopicIds.BlockHeight": + return x.BlockHeight != int64(0) + case "emissions.v3.BlockHeightAndTopicIds.TopicIds": + return len(x.TopicIds) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.BlockHeightAndTopicIds")) + } + panic(fmt.Errorf("message emissions.v3.BlockHeightAndTopicIds does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_BlockHeightAndTopicIds) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "emissions.v3.BlockHeightAndTopicIds.BlockHeight": + x.BlockHeight = int64(0) + case "emissions.v3.BlockHeightAndTopicIds.TopicIds": + x.TopicIds = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.BlockHeightAndTopicIds")) + } + panic(fmt.Errorf("message emissions.v3.BlockHeightAndTopicIds does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_BlockHeightAndTopicIds) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "emissions.v3.BlockHeightAndTopicIds.BlockHeight": + value := x.BlockHeight + return protoreflect.ValueOfInt64(value) + case "emissions.v3.BlockHeightAndTopicIds.TopicIds": + if len(x.TopicIds) == 0 { + return protoreflect.ValueOfList(&_BlockHeightAndTopicIds_2_list{}) + } + listValue := &_BlockHeightAndTopicIds_2_list{list: &x.TopicIds} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.BlockHeightAndTopicIds")) + } + panic(fmt.Errorf("message emissions.v3.BlockHeightAndTopicIds does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_BlockHeightAndTopicIds) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "emissions.v3.BlockHeightAndTopicIds.BlockHeight": + x.BlockHeight = value.Int() + case "emissions.v3.BlockHeightAndTopicIds.TopicIds": + lv := value.List() + clv := lv.(*_BlockHeightAndTopicIds_2_list) + x.TopicIds = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.BlockHeightAndTopicIds")) + } + panic(fmt.Errorf("message emissions.v3.BlockHeightAndTopicIds does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_BlockHeightAndTopicIds) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "emissions.v3.BlockHeightAndTopicIds.TopicIds": + if x.TopicIds == nil { + x.TopicIds = []uint64{} + } + value := &_BlockHeightAndTopicIds_2_list{list: &x.TopicIds} + return protoreflect.ValueOfList(value) + case "emissions.v3.BlockHeightAndTopicIds.BlockHeight": + panic(fmt.Errorf("field BlockHeight of message emissions.v3.BlockHeightAndTopicIds is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.BlockHeightAndTopicIds")) + } + panic(fmt.Errorf("message emissions.v3.BlockHeightAndTopicIds does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_BlockHeightAndTopicIds) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "emissions.v3.BlockHeightAndTopicIds.BlockHeight": + return protoreflect.ValueOfInt64(int64(0)) + case "emissions.v3.BlockHeightAndTopicIds.TopicIds": + list := []uint64{} + return protoreflect.ValueOfList(&_BlockHeightAndTopicIds_2_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.BlockHeightAndTopicIds")) + } + panic(fmt.Errorf("message emissions.v3.BlockHeightAndTopicIds does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_BlockHeightAndTopicIds) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in emissions.v3.BlockHeightAndTopicIds", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_BlockHeightAndTopicIds) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_BlockHeightAndTopicIds) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_BlockHeightAndTopicIds) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_BlockHeightAndTopicIds) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*BlockHeightAndTopicIds) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.BlockHeight != 0 { + n += 1 + runtime.Sov(uint64(x.BlockHeight)) + } + if len(x.TopicIds) > 0 { + l = 0 + for _, e := range x.TopicIds { + l += runtime.Sov(uint64(e)) + } + n += 1 + runtime.Sov(uint64(l)) + l + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*BlockHeightAndTopicIds) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.TopicIds) > 0 { + var pksize2 int + for _, num := range x.TopicIds { + pksize2 += runtime.Sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num := range x.TopicIds { + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0x12 + } + if x.BlockHeight != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.BlockHeight)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*BlockHeightAndTopicIds) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire 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++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: BlockHeightAndTopicIds: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: BlockHeightAndTopicIds: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + } + x.BlockHeight = 0 + 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++ + x.BlockHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType == 0 { + var v 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++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.TopicIds = append(x.TopicIds, v) + } else if wireType == 2 { + var packedLen 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++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + packedLen + 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 + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(x.TopicIds) == 0 { + x.TopicIds = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v 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++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.TopicIds = append(x.TopicIds, v) + } + } else { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TopicIds", wireType) + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_TopicIdBlockHeightScores protoreflect.MessageDescriptor + fd_TopicIdBlockHeightScores_TopicId protoreflect.FieldDescriptor + fd_TopicIdBlockHeightScores_BlockHeight protoreflect.FieldDescriptor + fd_TopicIdBlockHeightScores_Scores protoreflect.FieldDescriptor +) + +func init() { + file_emissions_v3_genesis_proto_init() + md_TopicIdBlockHeightScores = File_emissions_v3_genesis_proto.Messages().ByName("TopicIdBlockHeightScores") + fd_TopicIdBlockHeightScores_TopicId = md_TopicIdBlockHeightScores.Fields().ByName("TopicId") + fd_TopicIdBlockHeightScores_BlockHeight = md_TopicIdBlockHeightScores.Fields().ByName("BlockHeight") + fd_TopicIdBlockHeightScores_Scores = md_TopicIdBlockHeightScores.Fields().ByName("Scores") +} + +var _ protoreflect.Message = (*fastReflection_TopicIdBlockHeightScores)(nil) + +type fastReflection_TopicIdBlockHeightScores TopicIdBlockHeightScores + +func (x *TopicIdBlockHeightScores) ProtoReflect() protoreflect.Message { + return (*fastReflection_TopicIdBlockHeightScores)(x) +} + +func (x *TopicIdBlockHeightScores) slowProtoReflect() protoreflect.Message { + mi := &file_emissions_v3_genesis_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_TopicIdBlockHeightScores_messageType fastReflection_TopicIdBlockHeightScores_messageType +var _ protoreflect.MessageType = fastReflection_TopicIdBlockHeightScores_messageType{} + +type fastReflection_TopicIdBlockHeightScores_messageType struct{} + +func (x fastReflection_TopicIdBlockHeightScores_messageType) Zero() protoreflect.Message { + return (*fastReflection_TopicIdBlockHeightScores)(nil) +} +func (x fastReflection_TopicIdBlockHeightScores_messageType) New() protoreflect.Message { + return new(fastReflection_TopicIdBlockHeightScores) +} +func (x fastReflection_TopicIdBlockHeightScores_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_TopicIdBlockHeightScores +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_TopicIdBlockHeightScores) Descriptor() protoreflect.MessageDescriptor { + return md_TopicIdBlockHeightScores +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_TopicIdBlockHeightScores) Type() protoreflect.MessageType { + return _fastReflection_TopicIdBlockHeightScores_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_TopicIdBlockHeightScores) New() protoreflect.Message { + return new(fastReflection_TopicIdBlockHeightScores) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_TopicIdBlockHeightScores) Interface() protoreflect.ProtoMessage { return (*TopicIdBlockHeightScores)(x) } @@ -9632,7 +10496,7 @@ func (x *TopicIdActorIdScore) ProtoReflect() protoreflect.Message { } func (x *TopicIdActorIdScore) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[5] + mi := &file_emissions_v3_genesis_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10179,7 +11043,7 @@ func (x *TopicIdActorIdListeningCoefficient) ProtoReflect() protoreflect.Message } func (x *TopicIdActorIdListeningCoefficient) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[6] + mi := &file_emissions_v3_genesis_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10726,7 +11590,7 @@ func (x *TopicIdActorIdDec) ProtoReflect() protoreflect.Message { } func (x *TopicIdActorIdDec) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[7] + mi := &file_emissions_v3_genesis_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11256,7 +12120,7 @@ func (x *TopicIdAndInt) ProtoReflect() protoreflect.Message { } func (x *TopicIdAndInt) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[8] + mi := &file_emissions_v3_genesis_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11726,7 +12590,7 @@ func (x *TopicIdActorIdInt) ProtoReflect() protoreflect.Message { } func (x *TopicIdActorIdInt) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[9] + mi := &file_emissions_v3_genesis_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12260,7 +13124,7 @@ func (x *TopicIdDelegatorReputerDelegatorInfo) ProtoReflect() protoreflect.Messa } func (x *TopicIdDelegatorReputerDelegatorInfo) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[10] + mi := &file_emissions_v3_genesis_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12871,7 +13735,7 @@ func (x *BlockHeightTopicIdReputerStakeRemovalInfo) ProtoReflect() protoreflect. } func (x *BlockHeightTopicIdReputerStakeRemovalInfo) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[11] + mi := &file_emissions_v3_genesis_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13464,7 +14328,7 @@ func (x *ActorIdTopicIdBlockHeight) ProtoReflect() protoreflect.Message { } func (x *ActorIdTopicIdBlockHeight) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[12] + mi := &file_emissions_v3_genesis_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13984,7 +14848,7 @@ func (x *BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) ProtoReflec } func (x *BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[13] + mi := &file_emissions_v3_genesis_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14641,7 +15505,7 @@ func (x *DelegatorReputerTopicIdBlockHeight) ProtoReflect() protoreflect.Message } func (x *DelegatorReputerTopicIdBlockHeight) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[14] + mi := &file_emissions_v3_genesis_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15219,7 +16083,7 @@ func (x *TopicIdActorIdInference) ProtoReflect() protoreflect.Message { } func (x *TopicIdActorIdInference) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[15] + mi := &file_emissions_v3_genesis_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15766,7 +16630,7 @@ func (x *TopicIdActorIdForecast) ProtoReflect() protoreflect.Message { } func (x *TopicIdActorIdForecast) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[16] + mi := &file_emissions_v3_genesis_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16311,7 +17175,7 @@ func (x *LibP2PKeyAndOffchainNode) ProtoReflect() protoreflect.Message { } func (x *LibP2PKeyAndOffchainNode) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[17] + mi := &file_emissions_v3_genesis_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16810,7 +17674,7 @@ func (x *TopicIdAndDec) ProtoReflect() protoreflect.Message { } func (x *TopicIdAndDec) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[18] + mi := &file_emissions_v3_genesis_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17280,7 +18144,7 @@ func (x *TopicIdBlockHeightInferences) ProtoReflect() protoreflect.Message { } func (x *TopicIdBlockHeightInferences) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[19] + mi := &file_emissions_v3_genesis_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17811,7 +18675,7 @@ func (x *TopicIdBlockHeightForecasts) ProtoReflect() protoreflect.Message { } func (x *TopicIdBlockHeightForecasts) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[20] + mi := &file_emissions_v3_genesis_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18342,7 +19206,7 @@ func (x *TopicIdBlockHeightReputerValueBundles) ProtoReflect() protoreflect.Mess } func (x *TopicIdBlockHeightReputerValueBundles) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[21] + mi := &file_emissions_v3_genesis_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18873,7 +19737,7 @@ func (x *TopicIdBlockHeightValueBundles) ProtoReflect() protoreflect.Message { } func (x *TopicIdBlockHeightValueBundles) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[22] + mi := &file_emissions_v3_genesis_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19402,7 +20266,7 @@ func (x *TopicIdAndNonces) ProtoReflect() protoreflect.Message { } func (x *TopicIdAndNonces) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[23] + mi := &file_emissions_v3_genesis_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19885,7 +20749,7 @@ func (x *TopicIdAndReputerRequestNonces) ProtoReflect() protoreflect.Message { } func (x *TopicIdAndReputerRequestNonces) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[24] + mi := &file_emissions_v3_genesis_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20370,7 +21234,7 @@ func (x *TopicIdActorIdTimeStampedValue) ProtoReflect() protoreflect.Message { } func (x *TopicIdActorIdTimeStampedValue) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[25] + mi := &file_emissions_v3_genesis_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20919,7 +21783,7 @@ func (x *TopicIdActorIdActorIdTimeStampedValue) ProtoReflect() protoreflect.Mess } func (x *TopicIdActorIdActorIdTimeStampedValue) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[26] + mi := &file_emissions_v3_genesis_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21526,7 +22390,7 @@ func (x *TopicIdTimestampedActorNonce) ProtoReflect() protoreflect.Message { } func (x *TopicIdTimestampedActorNonce) slowProtoReflect() protoreflect.Message { - mi := &file_emissions_v3_genesis_proto_msgTypes[27] + mi := &file_emissions_v3_genesis_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22109,11 +22973,14 @@ type GenesisState struct { // Percentage of all rewards, paid out to staked reputers, during the previous // reward cadence. Used by mint module PreviousPercentageRewardToStakedReputers string `protobuf:"bytes,42,opt,name=previousPercentageRewardToStakedReputers,proto3" json:"previousPercentageRewardToStakedReputers,omitempty"` - // / NONCES + // map of open worker nonce windows for topics on particular block heights + OpenWorkerWindows []*BlockHeightAndTopicIds `protobuf:"bytes,55,rep,name=openWorkerWindows,proto3" json:"openWorkerWindows,omitempty"` // map of (topic) -> unfulfilled nonces UnfulfilledWorkerNonces []*TopicIdAndNonces `protobuf:"bytes,43,rep,name=unfulfilledWorkerNonces,proto3" json:"unfulfilledWorkerNonces,omitempty"` // map of (topic) -> unfulfilled nonces UnfulfilledReputerNonces []*TopicIdAndReputerRequestNonces `protobuf:"bytes,44,rep,name=unfulfilledReputerNonces,proto3" json:"unfulfilledReputerNonces,omitempty"` + // map of (topic) -> last dripped block + LastDripBlock []*TopicIdAndBlockHeight `protobuf:"bytes,56,rep,name=lastDripBlock,proto3" json:"lastDripBlock,omitempty"` // / REGRETS // map of (topic, worker) -> regret of worker from comparing loss of worker // relative to loss of other inferers @@ -22446,6 +23313,13 @@ func (x *GenesisState) GetPreviousPercentageRewardToStakedReputers() string { return "" } +func (x *GenesisState) GetOpenWorkerWindows() []*BlockHeightAndTopicIds { + if x != nil { + return x.OpenWorkerWindows + } + return nil +} + func (x *GenesisState) GetUnfulfilledWorkerNonces() []*TopicIdAndNonces { if x != nil { return x.UnfulfilledWorkerNonces @@ -22460,6 +23334,13 @@ func (x *GenesisState) GetUnfulfilledReputerNonces() []*TopicIdAndReputerRequest return nil } +func (x *GenesisState) GetLastDripBlock() []*TopicIdAndBlockHeight { + if x != nil { + return x.LastDripBlock + } + return nil +} + func (x *GenesisState) GetLatestInfererNetworkRegrets() []*TopicIdActorIdTimeStampedValue { if x != nil { return x.LatestInfererNetworkRegrets @@ -22616,54 +23497,97 @@ func (x *TopicAndActorId) GetTopicId() uint64 { return 0 } -func (x *TopicAndActorId) GetActorId() string { +func (x *TopicAndActorId) GetActorId() string { + if x != nil { + return x.ActorId + } + return "" +} + +type TopicIdAndBlockHeight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TopicId uint64 `protobuf:"varint,1,opt,name=TopicId,proto3" json:"TopicId,omitempty"` + BlockHeight int64 `protobuf:"varint,2,opt,name=BlockHeight,proto3" json:"BlockHeight,omitempty"` +} + +func (x *TopicIdAndBlockHeight) Reset() { + *x = TopicIdAndBlockHeight{} + if protoimpl.UnsafeEnabled { + mi := &file_emissions_v3_genesis_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TopicIdAndBlockHeight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TopicIdAndBlockHeight) ProtoMessage() {} + +// Deprecated: Use TopicIdAndBlockHeight.ProtoReflect.Descriptor instead. +func (*TopicIdAndBlockHeight) Descriptor() ([]byte, []int) { + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{3} +} + +func (x *TopicIdAndBlockHeight) GetTopicId() uint64 { + if x != nil { + return x.TopicId + } + return 0 +} + +func (x *TopicIdAndBlockHeight) GetBlockHeight() int64 { if x != nil { - return x.ActorId + return x.BlockHeight } - return "" + return 0 } -type TopicIdAndBlockHeight struct { +type BlockHeightAndTopicIds struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TopicId uint64 `protobuf:"varint,1,opt,name=TopicId,proto3" json:"TopicId,omitempty"` - BlockHeight int64 `protobuf:"varint,2,opt,name=BlockHeight,proto3" json:"BlockHeight,omitempty"` + BlockHeight int64 `protobuf:"varint,1,opt,name=BlockHeight,proto3" json:"BlockHeight,omitempty"` + TopicIds []uint64 `protobuf:"varint,2,rep,packed,name=TopicIds,proto3" json:"TopicIds,omitempty"` } -func (x *TopicIdAndBlockHeight) Reset() { - *x = TopicIdAndBlockHeight{} +func (x *BlockHeightAndTopicIds) Reset() { + *x = BlockHeightAndTopicIds{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[3] + mi := &file_emissions_v3_genesis_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *TopicIdAndBlockHeight) String() string { +func (x *BlockHeightAndTopicIds) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TopicIdAndBlockHeight) ProtoMessage() {} +func (*BlockHeightAndTopicIds) ProtoMessage() {} -// Deprecated: Use TopicIdAndBlockHeight.ProtoReflect.Descriptor instead. -func (*TopicIdAndBlockHeight) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{3} +// Deprecated: Use BlockHeightAndTopicIds.ProtoReflect.Descriptor instead. +func (*BlockHeightAndTopicIds) Descriptor() ([]byte, []int) { + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{4} } -func (x *TopicIdAndBlockHeight) GetTopicId() uint64 { +func (x *BlockHeightAndTopicIds) GetBlockHeight() int64 { if x != nil { - return x.TopicId + return x.BlockHeight } return 0 } -func (x *TopicIdAndBlockHeight) GetBlockHeight() int64 { +func (x *BlockHeightAndTopicIds) GetTopicIds() []uint64 { if x != nil { - return x.BlockHeight + return x.TopicIds } - return 0 + return nil } type TopicIdBlockHeightScores struct { @@ -22679,7 +23603,7 @@ type TopicIdBlockHeightScores struct { func (x *TopicIdBlockHeightScores) Reset() { *x = TopicIdBlockHeightScores{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[4] + mi := &file_emissions_v3_genesis_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22693,7 +23617,7 @@ func (*TopicIdBlockHeightScores) ProtoMessage() {} // Deprecated: Use TopicIdBlockHeightScores.ProtoReflect.Descriptor instead. func (*TopicIdBlockHeightScores) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{4} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{5} } func (x *TopicIdBlockHeightScores) GetTopicId() uint64 { @@ -22730,7 +23654,7 @@ type TopicIdActorIdScore struct { func (x *TopicIdActorIdScore) Reset() { *x = TopicIdActorIdScore{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[5] + mi := &file_emissions_v3_genesis_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22744,7 +23668,7 @@ func (*TopicIdActorIdScore) ProtoMessage() {} // Deprecated: Use TopicIdActorIdScore.ProtoReflect.Descriptor instead. func (*TopicIdActorIdScore) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{5} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{6} } func (x *TopicIdActorIdScore) GetTopicId() uint64 { @@ -22781,7 +23705,7 @@ type TopicIdActorIdListeningCoefficient struct { func (x *TopicIdActorIdListeningCoefficient) Reset() { *x = TopicIdActorIdListeningCoefficient{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[6] + mi := &file_emissions_v3_genesis_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22795,7 +23719,7 @@ func (*TopicIdActorIdListeningCoefficient) ProtoMessage() {} // Deprecated: Use TopicIdActorIdListeningCoefficient.ProtoReflect.Descriptor instead. func (*TopicIdActorIdListeningCoefficient) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{6} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{7} } func (x *TopicIdActorIdListeningCoefficient) GetTopicId() uint64 { @@ -22832,7 +23756,7 @@ type TopicIdActorIdDec struct { func (x *TopicIdActorIdDec) Reset() { *x = TopicIdActorIdDec{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[7] + mi := &file_emissions_v3_genesis_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22846,7 +23770,7 @@ func (*TopicIdActorIdDec) ProtoMessage() {} // Deprecated: Use TopicIdActorIdDec.ProtoReflect.Descriptor instead. func (*TopicIdActorIdDec) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{7} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{8} } func (x *TopicIdActorIdDec) GetTopicId() uint64 { @@ -22882,7 +23806,7 @@ type TopicIdAndInt struct { func (x *TopicIdAndInt) Reset() { *x = TopicIdAndInt{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[8] + mi := &file_emissions_v3_genesis_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22896,7 +23820,7 @@ func (*TopicIdAndInt) ProtoMessage() {} // Deprecated: Use TopicIdAndInt.ProtoReflect.Descriptor instead. func (*TopicIdAndInt) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{8} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{9} } func (x *TopicIdAndInt) GetTopicId() uint64 { @@ -22926,7 +23850,7 @@ type TopicIdActorIdInt struct { func (x *TopicIdActorIdInt) Reset() { *x = TopicIdActorIdInt{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[9] + mi := &file_emissions_v3_genesis_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22940,7 +23864,7 @@ func (*TopicIdActorIdInt) ProtoMessage() {} // Deprecated: Use TopicIdActorIdInt.ProtoReflect.Descriptor instead. func (*TopicIdActorIdInt) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{9} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{10} } func (x *TopicIdActorIdInt) GetTopicId() uint64 { @@ -22978,7 +23902,7 @@ type TopicIdDelegatorReputerDelegatorInfo struct { func (x *TopicIdDelegatorReputerDelegatorInfo) Reset() { *x = TopicIdDelegatorReputerDelegatorInfo{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[10] + mi := &file_emissions_v3_genesis_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22992,7 +23916,7 @@ func (*TopicIdDelegatorReputerDelegatorInfo) ProtoMessage() {} // Deprecated: Use TopicIdDelegatorReputerDelegatorInfo.ProtoReflect.Descriptor instead. func (*TopicIdDelegatorReputerDelegatorInfo) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{10} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{11} } func (x *TopicIdDelegatorReputerDelegatorInfo) GetTopicId() uint64 { @@ -23037,7 +23961,7 @@ type BlockHeightTopicIdReputerStakeRemovalInfo struct { func (x *BlockHeightTopicIdReputerStakeRemovalInfo) Reset() { *x = BlockHeightTopicIdReputerStakeRemovalInfo{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[11] + mi := &file_emissions_v3_genesis_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23051,7 +23975,7 @@ func (*BlockHeightTopicIdReputerStakeRemovalInfo) ProtoMessage() {} // Deprecated: Use BlockHeightTopicIdReputerStakeRemovalInfo.ProtoReflect.Descriptor instead. func (*BlockHeightTopicIdReputerStakeRemovalInfo) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{11} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{12} } func (x *BlockHeightTopicIdReputerStakeRemovalInfo) GetBlockHeight() int64 { @@ -23095,7 +24019,7 @@ type ActorIdTopicIdBlockHeight struct { func (x *ActorIdTopicIdBlockHeight) Reset() { *x = ActorIdTopicIdBlockHeight{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[12] + mi := &file_emissions_v3_genesis_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23109,7 +24033,7 @@ func (*ActorIdTopicIdBlockHeight) ProtoMessage() {} // Deprecated: Use ActorIdTopicIdBlockHeight.ProtoReflect.Descriptor instead. func (*ActorIdTopicIdBlockHeight) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{12} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{13} } func (x *ActorIdTopicIdBlockHeight) GetActorId() string { @@ -23148,7 +24072,7 @@ type BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo struct { func (x *BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) Reset() { *x = BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[13] + mi := &file_emissions_v3_genesis_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23162,7 +24086,7 @@ func (*BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) ProtoMessage( // Deprecated: Use BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo.ProtoReflect.Descriptor instead. func (*BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{13} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{14} } func (x *BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) GetBlockHeight() int64 { @@ -23214,7 +24138,7 @@ type DelegatorReputerTopicIdBlockHeight struct { func (x *DelegatorReputerTopicIdBlockHeight) Reset() { *x = DelegatorReputerTopicIdBlockHeight{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[14] + mi := &file_emissions_v3_genesis_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23228,7 +24152,7 @@ func (*DelegatorReputerTopicIdBlockHeight) ProtoMessage() {} // Deprecated: Use DelegatorReputerTopicIdBlockHeight.ProtoReflect.Descriptor instead. func (*DelegatorReputerTopicIdBlockHeight) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{14} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{15} } func (x *DelegatorReputerTopicIdBlockHeight) GetDelegator() string { @@ -23272,7 +24196,7 @@ type TopicIdActorIdInference struct { func (x *TopicIdActorIdInference) Reset() { *x = TopicIdActorIdInference{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[15] + mi := &file_emissions_v3_genesis_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23286,7 +24210,7 @@ func (*TopicIdActorIdInference) ProtoMessage() {} // Deprecated: Use TopicIdActorIdInference.ProtoReflect.Descriptor instead. func (*TopicIdActorIdInference) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{15} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{16} } func (x *TopicIdActorIdInference) GetTopicId() uint64 { @@ -23323,7 +24247,7 @@ type TopicIdActorIdForecast struct { func (x *TopicIdActorIdForecast) Reset() { *x = TopicIdActorIdForecast{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[16] + mi := &file_emissions_v3_genesis_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23337,7 +24261,7 @@ func (*TopicIdActorIdForecast) ProtoMessage() {} // Deprecated: Use TopicIdActorIdForecast.ProtoReflect.Descriptor instead. func (*TopicIdActorIdForecast) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{16} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{17} } func (x *TopicIdActorIdForecast) GetTopicId() uint64 { @@ -23373,7 +24297,7 @@ type LibP2PKeyAndOffchainNode struct { func (x *LibP2PKeyAndOffchainNode) Reset() { *x = LibP2PKeyAndOffchainNode{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[17] + mi := &file_emissions_v3_genesis_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23387,7 +24311,7 @@ func (*LibP2PKeyAndOffchainNode) ProtoMessage() {} // Deprecated: Use LibP2PKeyAndOffchainNode.ProtoReflect.Descriptor instead. func (*LibP2PKeyAndOffchainNode) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{17} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{18} } func (x *LibP2PKeyAndOffchainNode) GetLibP2PKey() string { @@ -23416,7 +24340,7 @@ type TopicIdAndDec struct { func (x *TopicIdAndDec) Reset() { *x = TopicIdAndDec{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[18] + mi := &file_emissions_v3_genesis_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23430,7 +24354,7 @@ func (*TopicIdAndDec) ProtoMessage() {} // Deprecated: Use TopicIdAndDec.ProtoReflect.Descriptor instead. func (*TopicIdAndDec) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{18} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{19} } func (x *TopicIdAndDec) GetTopicId() uint64 { @@ -23460,7 +24384,7 @@ type TopicIdBlockHeightInferences struct { func (x *TopicIdBlockHeightInferences) Reset() { *x = TopicIdBlockHeightInferences{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[19] + mi := &file_emissions_v3_genesis_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23474,7 +24398,7 @@ func (*TopicIdBlockHeightInferences) ProtoMessage() {} // Deprecated: Use TopicIdBlockHeightInferences.ProtoReflect.Descriptor instead. func (*TopicIdBlockHeightInferences) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{19} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{20} } func (x *TopicIdBlockHeightInferences) GetTopicId() uint64 { @@ -23511,7 +24435,7 @@ type TopicIdBlockHeightForecasts struct { func (x *TopicIdBlockHeightForecasts) Reset() { *x = TopicIdBlockHeightForecasts{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[20] + mi := &file_emissions_v3_genesis_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23525,7 +24449,7 @@ func (*TopicIdBlockHeightForecasts) ProtoMessage() {} // Deprecated: Use TopicIdBlockHeightForecasts.ProtoReflect.Descriptor instead. func (*TopicIdBlockHeightForecasts) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{20} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{21} } func (x *TopicIdBlockHeightForecasts) GetTopicId() uint64 { @@ -23562,7 +24486,7 @@ type TopicIdBlockHeightReputerValueBundles struct { func (x *TopicIdBlockHeightReputerValueBundles) Reset() { *x = TopicIdBlockHeightReputerValueBundles{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[21] + mi := &file_emissions_v3_genesis_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23576,7 +24500,7 @@ func (*TopicIdBlockHeightReputerValueBundles) ProtoMessage() {} // Deprecated: Use TopicIdBlockHeightReputerValueBundles.ProtoReflect.Descriptor instead. func (*TopicIdBlockHeightReputerValueBundles) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{21} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{22} } func (x *TopicIdBlockHeightReputerValueBundles) GetTopicId() uint64 { @@ -23613,7 +24537,7 @@ type TopicIdBlockHeightValueBundles struct { func (x *TopicIdBlockHeightValueBundles) Reset() { *x = TopicIdBlockHeightValueBundles{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[22] + mi := &file_emissions_v3_genesis_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23627,7 +24551,7 @@ func (*TopicIdBlockHeightValueBundles) ProtoMessage() {} // Deprecated: Use TopicIdBlockHeightValueBundles.ProtoReflect.Descriptor instead. func (*TopicIdBlockHeightValueBundles) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{22} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{23} } func (x *TopicIdBlockHeightValueBundles) GetTopicId() uint64 { @@ -23663,7 +24587,7 @@ type TopicIdAndNonces struct { func (x *TopicIdAndNonces) Reset() { *x = TopicIdAndNonces{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[23] + mi := &file_emissions_v3_genesis_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23677,7 +24601,7 @@ func (*TopicIdAndNonces) ProtoMessage() {} // Deprecated: Use TopicIdAndNonces.ProtoReflect.Descriptor instead. func (*TopicIdAndNonces) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{23} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{24} } func (x *TopicIdAndNonces) GetTopicId() uint64 { @@ -23706,7 +24630,7 @@ type TopicIdAndReputerRequestNonces struct { func (x *TopicIdAndReputerRequestNonces) Reset() { *x = TopicIdAndReputerRequestNonces{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[24] + mi := &file_emissions_v3_genesis_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23720,7 +24644,7 @@ func (*TopicIdAndReputerRequestNonces) ProtoMessage() {} // Deprecated: Use TopicIdAndReputerRequestNonces.ProtoReflect.Descriptor instead. func (*TopicIdAndReputerRequestNonces) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{24} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{25} } func (x *TopicIdAndReputerRequestNonces) GetTopicId() uint64 { @@ -23750,7 +24674,7 @@ type TopicIdActorIdTimeStampedValue struct { func (x *TopicIdActorIdTimeStampedValue) Reset() { *x = TopicIdActorIdTimeStampedValue{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[25] + mi := &file_emissions_v3_genesis_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23764,7 +24688,7 @@ func (*TopicIdActorIdTimeStampedValue) ProtoMessage() {} // Deprecated: Use TopicIdActorIdTimeStampedValue.ProtoReflect.Descriptor instead. func (*TopicIdActorIdTimeStampedValue) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{25} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{26} } func (x *TopicIdActorIdTimeStampedValue) GetTopicId() uint64 { @@ -23802,7 +24726,7 @@ type TopicIdActorIdActorIdTimeStampedValue struct { func (x *TopicIdActorIdActorIdTimeStampedValue) Reset() { *x = TopicIdActorIdActorIdTimeStampedValue{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[26] + mi := &file_emissions_v3_genesis_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23816,7 +24740,7 @@ func (*TopicIdActorIdActorIdTimeStampedValue) ProtoMessage() {} // Deprecated: Use TopicIdActorIdActorIdTimeStampedValue.ProtoReflect.Descriptor instead. func (*TopicIdActorIdActorIdTimeStampedValue) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{26} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{27} } func (x *TopicIdActorIdActorIdTimeStampedValue) GetTopicId() uint64 { @@ -23859,7 +24783,7 @@ type TopicIdTimestampedActorNonce struct { func (x *TopicIdTimestampedActorNonce) Reset() { *x = TopicIdTimestampedActorNonce{} if protoimpl.UnsafeEnabled { - mi := &file_emissions_v3_genesis_proto_msgTypes[27] + mi := &file_emissions_v3_genesis_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23873,7 +24797,7 @@ func (*TopicIdTimestampedActorNonce) ProtoMessage() {} // Deprecated: Use TopicIdTimestampedActorNonce.ProtoReflect.Descriptor instead. func (*TopicIdTimestampedActorNonce) Descriptor() ([]byte, []int) { - return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{27} + return file_emissions_v3_genesis_proto_rawDescGZIP(), []int{28} } func (x *TopicIdTimestampedActorNonce) GetTopicId() uint64 { @@ -23914,7 +24838,7 @@ var file_emissions_v3_genesis_proto_rawDesc = []byte{ 0x79, 0x70, 0x65, 0x73, 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, 0xf0, 0x27, 0x0a, 0x0c, + 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8f, 0x29, 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, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61, @@ -24137,362 +25061,377 @@ var file_emissions_v3_genesis_proto_rawDesc = []byte{ 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, 0x58, 0x0a, 0x17, - 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x4e, 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, 0x33, 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, 0x68, 0x0a, 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, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x6e, 0x0a, 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, 0x18, - 0x2d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x33, 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, 0x74, 0x0a, 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, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x85, 0x01, 0x0a, 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, 0x18, 0x2f, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 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, 0x78, - 0x0a, 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, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x8f, 0x01, 0x0a, 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, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, + 0x61, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x11, + 0x6f, 0x70, 0x65, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 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, 0x33, 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, 0x58, 0x0a, 0x17, 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 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, 0x33, + 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, 0x68, 0x0a, 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, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x49, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x72, 0x69, 0x70, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x95, 0x01, 0x0a, 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, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x52, 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, 0x33, 0x2e, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 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, + 0x6e, 0x0a, 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, 0x18, 0x2d, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 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, + 0x74, 0x0a, 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, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 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, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, - 0x74, 0x73, 0x12, 0x95, 0x01, 0x0a, 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, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x9b, 0x01, 0x0a, 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, 0x18, 0x34, 0x20, + 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, 0x85, 0x01, 0x0a, 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, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x60, 0x0a, 0x15, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x4c, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 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, 0x33, 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, 0x62, 0x0a, 0x16, 0x74, 0x6f, - 0x70, 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, + 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, 0x78, 0x0a, + 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, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x8f, 0x01, 0x0a, 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, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x22, 0x56, - 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x54, - 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, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x45, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, - 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x53, 0x0a, - 0x15, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x84, 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, - 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x53, - 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, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x74, 0x0a, 0x13, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, + 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, 0x95, 0x01, 0x0a, 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, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 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, 0x33, 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, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, + 0x73, 0x12, 0x95, 0x01, 0x0a, 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, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x9b, 0x01, 0x0a, 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, 0x18, 0x34, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 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, 0x60, 0x0a, 0x15, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x4c, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 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, 0x33, 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, 0x62, 0x0a, 0x16, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x43, 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, 0x33, 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, 0x22, 0x56, 0x0a, + 0x0f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, - 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x53, 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, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, - 0xb0, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x14, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 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, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, - 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, + 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x54, 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, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x45, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x6e, + 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x03, - 0x44, 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, 0x44, 0x65, 0x63, 0x22, 0x6d, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, 0x49, 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, 0x49, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, - 0x12, 0x42, 0x0a, 0x03, 0x49, 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, 0x49, 0x6e, 0x74, 0x22, 0xbb, 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, 0x18, 0x0a, - 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, - 0x41, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 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, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x22, 0xcd, 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, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x15, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x22, 0x56, 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, 0x20, 0x0a, 0x0b, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x22, 0x84, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 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, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x22, 0x71, 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, - 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x94, 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, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, - 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 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, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x98, 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, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x84, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x53, 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, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x22, 0x74, 0x0a, 0x13, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x53, + 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, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb0, 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, 0x18, 0x0a, + 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x12, 0x56, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 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, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x11, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x12, + 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x03, 0x44, 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, 0x44, 0x65, 0x63, 0x22, 0x6d, + 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, 0x49, 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, 0x49, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x49, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x09, 0x49, 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, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x80, - 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, - 0x08, 0x46, 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, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, - 0x74, 0x22, 0x78, 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, 0x1c, 0x0a, - 0x09, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x4f, - 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 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, 0x4f, - 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x74, 0x0a, 0x0d, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x03, 0x44, 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, 0x44, 0x65, - 0x63, 0x22, 0x94, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, 0x49, 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, 0x49, 0x6e, 0x74, 0x22, 0xbb, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x49, 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, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xcd, 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, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, + 0x10, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 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, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x71, 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, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x94, 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, 0x20, 0x0a, 0x0b, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, + 0x62, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 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, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0x98, 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, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x38, - 0x0a, 0x0a, 0x49, 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, 0x49, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x90, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x46, 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, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x22, 0xb8, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x53, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x42, 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, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x22, 0x99, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x84, + 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x35, + 0x0a, 0x09, 0x49, 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, 0x49, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x80, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x08, 0x46, 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, + 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x22, 0x78, 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, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, + 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 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, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, + 0x64, 0x65, 0x22, 0x74, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, + 0x44, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x49, 0x0a, + 0x03, 0x44, 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, 0x44, 0x65, 0x63, 0x22, 0x94, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 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, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x22, 0x5a, 0x0a, 0x10, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x2c, 0x0a, 0x06, 0x4e, 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, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x92, - 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x14, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 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, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x73, 0x22, 0xa0, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x10, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, - 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc5, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, - 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, - 0x64, 0x32, 0x12, 0x4a, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, - 0x64, 0x56, 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, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, - 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, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x49, 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, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, + 0x90, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x59, 0x0a, 0x15, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 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, 0x54, + 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x46, + 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, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x74, 0x73, 0x22, 0xb8, 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, 0x18, 0x0a, 0x07, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x53, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 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, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x22, 0x99, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3b, 0x0a, 0x0b, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 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, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x5a, 0x0a, 0x10, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x4e, 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, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x92, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x12, 0x56, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x4e, 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, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xa0, 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, 0x18, 0x0a, + 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x12, 0x4a, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, + 0x56, 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, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc5, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x31, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1a, 0x0a, + 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x32, 0x12, 0x4a, 0x0a, 0x10, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 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, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x12, 0x59, 0x0a, 0x15, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, + 0x63, 0x74, 0x6f, 0x72, 0x4e, 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, 0x42, 0xc2, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 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, 0x33, 0x3b, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, - 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x33, 0xca, - 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0xe2, 0x02, - 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 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, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x15, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, + 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x42, 0xc2, 0x01, 0x0a, 0x10, + 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, + 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, 0x33, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, + 0x33, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x5c, 0x56, 0x33, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x5c, 0x56, 0x33, 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, 0x33, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -24507,129 +25446,132 @@ func file_emissions_v3_genesis_proto_rawDescGZIP() []byte { return file_emissions_v3_genesis_proto_rawDescData } -var file_emissions_v3_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_emissions_v3_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 29) var file_emissions_v3_genesis_proto_goTypes = []interface{}{ (*GenesisState)(nil), // 0: emissions.v3.GenesisState (*TopicIdAndTopic)(nil), // 1: emissions.v3.TopicIdAndTopic (*TopicAndActorId)(nil), // 2: emissions.v3.TopicAndActorId (*TopicIdAndBlockHeight)(nil), // 3: emissions.v3.TopicIdAndBlockHeight - (*TopicIdBlockHeightScores)(nil), // 4: emissions.v3.TopicIdBlockHeightScores - (*TopicIdActorIdScore)(nil), // 5: emissions.v3.TopicIdActorIdScore - (*TopicIdActorIdListeningCoefficient)(nil), // 6: emissions.v3.TopicIdActorIdListeningCoefficient - (*TopicIdActorIdDec)(nil), // 7: emissions.v3.TopicIdActorIdDec - (*TopicIdAndInt)(nil), // 8: emissions.v3.TopicIdAndInt - (*TopicIdActorIdInt)(nil), // 9: emissions.v3.TopicIdActorIdInt - (*TopicIdDelegatorReputerDelegatorInfo)(nil), // 10: emissions.v3.TopicIdDelegatorReputerDelegatorInfo - (*BlockHeightTopicIdReputerStakeRemovalInfo)(nil), // 11: emissions.v3.BlockHeightTopicIdReputerStakeRemovalInfo - (*ActorIdTopicIdBlockHeight)(nil), // 12: emissions.v3.ActorIdTopicIdBlockHeight - (*BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo)(nil), // 13: emissions.v3.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo - (*DelegatorReputerTopicIdBlockHeight)(nil), // 14: emissions.v3.DelegatorReputerTopicIdBlockHeight - (*TopicIdActorIdInference)(nil), // 15: emissions.v3.TopicIdActorIdInference - (*TopicIdActorIdForecast)(nil), // 16: emissions.v3.TopicIdActorIdForecast - (*LibP2PKeyAndOffchainNode)(nil), // 17: emissions.v3.LibP2pKeyAndOffchainNode - (*TopicIdAndDec)(nil), // 18: emissions.v3.TopicIdAndDec - (*TopicIdBlockHeightInferences)(nil), // 19: emissions.v3.TopicIdBlockHeightInferences - (*TopicIdBlockHeightForecasts)(nil), // 20: emissions.v3.TopicIdBlockHeightForecasts - (*TopicIdBlockHeightReputerValueBundles)(nil), // 21: emissions.v3.TopicIdBlockHeightReputerValueBundles - (*TopicIdBlockHeightValueBundles)(nil), // 22: emissions.v3.TopicIdBlockHeightValueBundles - (*TopicIdAndNonces)(nil), // 23: emissions.v3.TopicIdAndNonces - (*TopicIdAndReputerRequestNonces)(nil), // 24: emissions.v3.TopicIdAndReputerRequestNonces - (*TopicIdActorIdTimeStampedValue)(nil), // 25: emissions.v3.TopicIdActorIdTimeStampedValue - (*TopicIdActorIdActorIdTimeStampedValue)(nil), // 26: emissions.v3.TopicIdActorIdActorIdTimeStampedValue - (*TopicIdTimestampedActorNonce)(nil), // 27: emissions.v3.TopicIdTimestampedActorNonce - (*Params)(nil), // 28: emissions.v3.Params - (*Topic)(nil), // 29: emissions.v3.Topic - (*Scores)(nil), // 30: emissions.v3.Scores - (*Score)(nil), // 31: emissions.v3.Score - (*ListeningCoefficient)(nil), // 32: emissions.v3.ListeningCoefficient - (*DelegatorInfo)(nil), // 33: emissions.v3.DelegatorInfo - (*StakeRemovalInfo)(nil), // 34: emissions.v3.StakeRemovalInfo - (*DelegateStakeRemovalInfo)(nil), // 35: emissions.v3.DelegateStakeRemovalInfo - (*Inference)(nil), // 36: emissions.v3.Inference - (*Forecast)(nil), // 37: emissions.v3.Forecast - (*OffchainNode)(nil), // 38: emissions.v3.OffchainNode - (*Inferences)(nil), // 39: emissions.v3.Inferences - (*Forecasts)(nil), // 40: emissions.v3.Forecasts - (*ReputerValueBundles)(nil), // 41: emissions.v3.ReputerValueBundles - (*ValueBundle)(nil), // 42: emissions.v3.ValueBundle - (*Nonces)(nil), // 43: emissions.v3.Nonces - (*ReputerRequestNonces)(nil), // 44: emissions.v3.ReputerRequestNonces - (*TimestampedValue)(nil), // 45: emissions.v3.TimestampedValue - (*TimestampedActorNonce)(nil), // 46: emissions.v3.TimestampedActorNonce + (*BlockHeightAndTopicIds)(nil), // 4: emissions.v3.BlockHeightAndTopicIds + (*TopicIdBlockHeightScores)(nil), // 5: emissions.v3.TopicIdBlockHeightScores + (*TopicIdActorIdScore)(nil), // 6: emissions.v3.TopicIdActorIdScore + (*TopicIdActorIdListeningCoefficient)(nil), // 7: emissions.v3.TopicIdActorIdListeningCoefficient + (*TopicIdActorIdDec)(nil), // 8: emissions.v3.TopicIdActorIdDec + (*TopicIdAndInt)(nil), // 9: emissions.v3.TopicIdAndInt + (*TopicIdActorIdInt)(nil), // 10: emissions.v3.TopicIdActorIdInt + (*TopicIdDelegatorReputerDelegatorInfo)(nil), // 11: emissions.v3.TopicIdDelegatorReputerDelegatorInfo + (*BlockHeightTopicIdReputerStakeRemovalInfo)(nil), // 12: emissions.v3.BlockHeightTopicIdReputerStakeRemovalInfo + (*ActorIdTopicIdBlockHeight)(nil), // 13: emissions.v3.ActorIdTopicIdBlockHeight + (*BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo)(nil), // 14: emissions.v3.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo + (*DelegatorReputerTopicIdBlockHeight)(nil), // 15: emissions.v3.DelegatorReputerTopicIdBlockHeight + (*TopicIdActorIdInference)(nil), // 16: emissions.v3.TopicIdActorIdInference + (*TopicIdActorIdForecast)(nil), // 17: emissions.v3.TopicIdActorIdForecast + (*LibP2PKeyAndOffchainNode)(nil), // 18: emissions.v3.LibP2pKeyAndOffchainNode + (*TopicIdAndDec)(nil), // 19: emissions.v3.TopicIdAndDec + (*TopicIdBlockHeightInferences)(nil), // 20: emissions.v3.TopicIdBlockHeightInferences + (*TopicIdBlockHeightForecasts)(nil), // 21: emissions.v3.TopicIdBlockHeightForecasts + (*TopicIdBlockHeightReputerValueBundles)(nil), // 22: emissions.v3.TopicIdBlockHeightReputerValueBundles + (*TopicIdBlockHeightValueBundles)(nil), // 23: emissions.v3.TopicIdBlockHeightValueBundles + (*TopicIdAndNonces)(nil), // 24: emissions.v3.TopicIdAndNonces + (*TopicIdAndReputerRequestNonces)(nil), // 25: emissions.v3.TopicIdAndReputerRequestNonces + (*TopicIdActorIdTimeStampedValue)(nil), // 26: emissions.v3.TopicIdActorIdTimeStampedValue + (*TopicIdActorIdActorIdTimeStampedValue)(nil), // 27: emissions.v3.TopicIdActorIdActorIdTimeStampedValue + (*TopicIdTimestampedActorNonce)(nil), // 28: emissions.v3.TopicIdTimestampedActorNonce + (*Params)(nil), // 29: emissions.v3.Params + (*Topic)(nil), // 30: emissions.v3.Topic + (*Scores)(nil), // 31: emissions.v3.Scores + (*Score)(nil), // 32: emissions.v3.Score + (*ListeningCoefficient)(nil), // 33: emissions.v3.ListeningCoefficient + (*DelegatorInfo)(nil), // 34: emissions.v3.DelegatorInfo + (*StakeRemovalInfo)(nil), // 35: emissions.v3.StakeRemovalInfo + (*DelegateStakeRemovalInfo)(nil), // 36: emissions.v3.DelegateStakeRemovalInfo + (*Inference)(nil), // 37: emissions.v3.Inference + (*Forecast)(nil), // 38: emissions.v3.Forecast + (*OffchainNode)(nil), // 39: emissions.v3.OffchainNode + (*Inferences)(nil), // 40: emissions.v3.Inferences + (*Forecasts)(nil), // 41: emissions.v3.Forecasts + (*ReputerValueBundles)(nil), // 42: emissions.v3.ReputerValueBundles + (*ValueBundle)(nil), // 43: emissions.v3.ValueBundle + (*Nonces)(nil), // 44: emissions.v3.Nonces + (*ReputerRequestNonces)(nil), // 45: emissions.v3.ReputerRequestNonces + (*TimestampedValue)(nil), // 46: emissions.v3.TimestampedValue + (*TimestampedActorNonce)(nil), // 47: emissions.v3.TimestampedActorNonce } var file_emissions_v3_genesis_proto_depIdxs = []int32{ - 28, // 0: emissions.v3.GenesisState.params:type_name -> emissions.v3.Params + 29, // 0: emissions.v3.GenesisState.params:type_name -> emissions.v3.Params 1, // 1: emissions.v3.GenesisState.topics:type_name -> emissions.v3.TopicIdAndTopic 2, // 2: emissions.v3.GenesisState.topicWorkers:type_name -> emissions.v3.TopicAndActorId 2, // 3: emissions.v3.GenesisState.topicReputers:type_name -> emissions.v3.TopicAndActorId 3, // 4: emissions.v3.GenesisState.topicRewardNonce:type_name -> emissions.v3.TopicIdAndBlockHeight - 4, // 5: emissions.v3.GenesisState.infererScoresByBlock:type_name -> emissions.v3.TopicIdBlockHeightScores - 4, // 6: emissions.v3.GenesisState.forecasterScoresByBlock:type_name -> emissions.v3.TopicIdBlockHeightScores - 4, // 7: emissions.v3.GenesisState.reputerScoresByBlock:type_name -> emissions.v3.TopicIdBlockHeightScores - 5, // 8: emissions.v3.GenesisState.latestInfererScoresByWorker:type_name -> emissions.v3.TopicIdActorIdScore - 5, // 9: emissions.v3.GenesisState.latestForecasterScoresByWorker:type_name -> emissions.v3.TopicIdActorIdScore - 5, // 10: emissions.v3.GenesisState.latestReputerScoresByReputer:type_name -> emissions.v3.TopicIdActorIdScore - 6, // 11: emissions.v3.GenesisState.reputerListeningCoefficient:type_name -> emissions.v3.TopicIdActorIdListeningCoefficient - 7, // 12: emissions.v3.GenesisState.previousReputerRewardFraction:type_name -> emissions.v3.TopicIdActorIdDec - 7, // 13: emissions.v3.GenesisState.previousInferenceRewardFraction:type_name -> emissions.v3.TopicIdActorIdDec - 7, // 14: emissions.v3.GenesisState.previousForecastRewardFraction:type_name -> emissions.v3.TopicIdActorIdDec - 7, // 15: emissions.v3.GenesisState.previousForecasterScoreRatio:type_name -> emissions.v3.TopicIdActorIdDec - 8, // 16: emissions.v3.GenesisState.topicStake:type_name -> emissions.v3.TopicIdAndInt - 9, // 17: emissions.v3.GenesisState.stakeReputerAuthority:type_name -> emissions.v3.TopicIdActorIdInt - 9, // 18: emissions.v3.GenesisState.stakeSumFromDelegator:type_name -> emissions.v3.TopicIdActorIdInt - 10, // 19: emissions.v3.GenesisState.delegatedStakes:type_name -> emissions.v3.TopicIdDelegatorReputerDelegatorInfo - 9, // 20: emissions.v3.GenesisState.stakeFromDelegatorsUponReputer:type_name -> emissions.v3.TopicIdActorIdInt - 7, // 21: emissions.v3.GenesisState.delegateRewardPerShare:type_name -> emissions.v3.TopicIdActorIdDec - 11, // 22: emissions.v3.GenesisState.stakeRemovalsByBlock:type_name -> emissions.v3.BlockHeightTopicIdReputerStakeRemovalInfo - 12, // 23: emissions.v3.GenesisState.stakeRemovalsByActor:type_name -> emissions.v3.ActorIdTopicIdBlockHeight - 13, // 24: emissions.v3.GenesisState.delegateStakeRemovalsByBlock:type_name -> emissions.v3.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo - 14, // 25: emissions.v3.GenesisState.delegateStakeRemovalsByActor:type_name -> emissions.v3.DelegatorReputerTopicIdBlockHeight - 15, // 26: emissions.v3.GenesisState.inferences:type_name -> emissions.v3.TopicIdActorIdInference - 16, // 27: emissions.v3.GenesisState.forecasts:type_name -> emissions.v3.TopicIdActorIdForecast - 17, // 28: emissions.v3.GenesisState.workers:type_name -> emissions.v3.LibP2pKeyAndOffchainNode - 17, // 29: emissions.v3.GenesisState.reputers:type_name -> emissions.v3.LibP2pKeyAndOffchainNode - 8, // 30: emissions.v3.GenesisState.topicFeeRevenue:type_name -> emissions.v3.TopicIdAndInt - 18, // 31: emissions.v3.GenesisState.previousTopicWeight:type_name -> emissions.v3.TopicIdAndDec - 19, // 32: emissions.v3.GenesisState.allInferences:type_name -> emissions.v3.TopicIdBlockHeightInferences - 20, // 33: emissions.v3.GenesisState.allForecasts:type_name -> emissions.v3.TopicIdBlockHeightForecasts - 21, // 34: emissions.v3.GenesisState.allLossBundles:type_name -> emissions.v3.TopicIdBlockHeightReputerValueBundles - 22, // 35: emissions.v3.GenesisState.networkLossBundles:type_name -> emissions.v3.TopicIdBlockHeightValueBundles - 23, // 36: emissions.v3.GenesisState.unfulfilledWorkerNonces:type_name -> emissions.v3.TopicIdAndNonces - 24, // 37: emissions.v3.GenesisState.unfulfilledReputerNonces:type_name -> emissions.v3.TopicIdAndReputerRequestNonces - 25, // 38: emissions.v3.GenesisState.latestInfererNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdTimeStampedValue - 25, // 39: emissions.v3.GenesisState.latestForecasterNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdTimeStampedValue - 26, // 40: emissions.v3.GenesisState.latestOneInForecasterNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue - 25, // 41: emissions.v3.GenesisState.latestNaiveInfererNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdTimeStampedValue - 26, // 42: emissions.v3.GenesisState.latestOneOutInfererInfererNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue - 26, // 43: emissions.v3.GenesisState.latestOneOutInfererForecasterNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue - 26, // 44: emissions.v3.GenesisState.latestOneOutForecasterInfererNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue - 26, // 45: emissions.v3.GenesisState.latestOneOutForecasterForecasterNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue - 27, // 46: emissions.v3.GenesisState.topicLastWorkerCommit:type_name -> emissions.v3.TopicIdTimestampedActorNonce - 27, // 47: emissions.v3.GenesisState.topicLastReputerCommit:type_name -> emissions.v3.TopicIdTimestampedActorNonce - 29, // 48: emissions.v3.TopicIdAndTopic.Topic:type_name -> emissions.v3.Topic - 30, // 49: emissions.v3.TopicIdBlockHeightScores.Scores:type_name -> emissions.v3.Scores - 31, // 50: emissions.v3.TopicIdActorIdScore.Score:type_name -> emissions.v3.Score - 32, // 51: emissions.v3.TopicIdActorIdListeningCoefficient.ListeningCoefficient:type_name -> emissions.v3.ListeningCoefficient - 33, // 52: emissions.v3.TopicIdDelegatorReputerDelegatorInfo.DelegatorInfo:type_name -> emissions.v3.DelegatorInfo - 34, // 53: emissions.v3.BlockHeightTopicIdReputerStakeRemovalInfo.StakeRemovalInfo:type_name -> emissions.v3.StakeRemovalInfo - 35, // 54: emissions.v3.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo.DelegateStakeRemovalInfo:type_name -> emissions.v3.DelegateStakeRemovalInfo - 36, // 55: emissions.v3.TopicIdActorIdInference.Inference:type_name -> emissions.v3.Inference - 37, // 56: emissions.v3.TopicIdActorIdForecast.Forecast:type_name -> emissions.v3.Forecast - 38, // 57: emissions.v3.LibP2pKeyAndOffchainNode.OffchainNode:type_name -> emissions.v3.OffchainNode - 39, // 58: emissions.v3.TopicIdBlockHeightInferences.Inferences:type_name -> emissions.v3.Inferences - 40, // 59: emissions.v3.TopicIdBlockHeightForecasts.Forecasts:type_name -> emissions.v3.Forecasts - 41, // 60: emissions.v3.TopicIdBlockHeightReputerValueBundles.ReputerValueBundles:type_name -> emissions.v3.ReputerValueBundles - 42, // 61: emissions.v3.TopicIdBlockHeightValueBundles.ValueBundle:type_name -> emissions.v3.ValueBundle - 43, // 62: emissions.v3.TopicIdAndNonces.Nonces:type_name -> emissions.v3.Nonces - 44, // 63: emissions.v3.TopicIdAndReputerRequestNonces.ReputerRequestNonces:type_name -> emissions.v3.ReputerRequestNonces - 45, // 64: emissions.v3.TopicIdActorIdTimeStampedValue.TimestampedValue:type_name -> emissions.v3.TimestampedValue - 45, // 65: emissions.v3.TopicIdActorIdActorIdTimeStampedValue.TimestampedValue:type_name -> emissions.v3.TimestampedValue - 46, // 66: emissions.v3.TopicIdTimestampedActorNonce.TimestampedActorNonce:type_name -> emissions.v3.TimestampedActorNonce - 67, // [67:67] is the sub-list for method output_type - 67, // [67:67] is the sub-list for method input_type - 67, // [67:67] is the sub-list for extension type_name - 67, // [67:67] is the sub-list for extension extendee - 0, // [0:67] is the sub-list for field type_name + 5, // 5: emissions.v3.GenesisState.infererScoresByBlock:type_name -> emissions.v3.TopicIdBlockHeightScores + 5, // 6: emissions.v3.GenesisState.forecasterScoresByBlock:type_name -> emissions.v3.TopicIdBlockHeightScores + 5, // 7: emissions.v3.GenesisState.reputerScoresByBlock:type_name -> emissions.v3.TopicIdBlockHeightScores + 6, // 8: emissions.v3.GenesisState.latestInfererScoresByWorker:type_name -> emissions.v3.TopicIdActorIdScore + 6, // 9: emissions.v3.GenesisState.latestForecasterScoresByWorker:type_name -> emissions.v3.TopicIdActorIdScore + 6, // 10: emissions.v3.GenesisState.latestReputerScoresByReputer:type_name -> emissions.v3.TopicIdActorIdScore + 7, // 11: emissions.v3.GenesisState.reputerListeningCoefficient:type_name -> emissions.v3.TopicIdActorIdListeningCoefficient + 8, // 12: emissions.v3.GenesisState.previousReputerRewardFraction:type_name -> emissions.v3.TopicIdActorIdDec + 8, // 13: emissions.v3.GenesisState.previousInferenceRewardFraction:type_name -> emissions.v3.TopicIdActorIdDec + 8, // 14: emissions.v3.GenesisState.previousForecastRewardFraction:type_name -> emissions.v3.TopicIdActorIdDec + 8, // 15: emissions.v3.GenesisState.previousForecasterScoreRatio:type_name -> emissions.v3.TopicIdActorIdDec + 9, // 16: emissions.v3.GenesisState.topicStake:type_name -> emissions.v3.TopicIdAndInt + 10, // 17: emissions.v3.GenesisState.stakeReputerAuthority:type_name -> emissions.v3.TopicIdActorIdInt + 10, // 18: emissions.v3.GenesisState.stakeSumFromDelegator:type_name -> emissions.v3.TopicIdActorIdInt + 11, // 19: emissions.v3.GenesisState.delegatedStakes:type_name -> emissions.v3.TopicIdDelegatorReputerDelegatorInfo + 10, // 20: emissions.v3.GenesisState.stakeFromDelegatorsUponReputer:type_name -> emissions.v3.TopicIdActorIdInt + 8, // 21: emissions.v3.GenesisState.delegateRewardPerShare:type_name -> emissions.v3.TopicIdActorIdDec + 12, // 22: emissions.v3.GenesisState.stakeRemovalsByBlock:type_name -> emissions.v3.BlockHeightTopicIdReputerStakeRemovalInfo + 13, // 23: emissions.v3.GenesisState.stakeRemovalsByActor:type_name -> emissions.v3.ActorIdTopicIdBlockHeight + 14, // 24: emissions.v3.GenesisState.delegateStakeRemovalsByBlock:type_name -> emissions.v3.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo + 15, // 25: emissions.v3.GenesisState.delegateStakeRemovalsByActor:type_name -> emissions.v3.DelegatorReputerTopicIdBlockHeight + 16, // 26: emissions.v3.GenesisState.inferences:type_name -> emissions.v3.TopicIdActorIdInference + 17, // 27: emissions.v3.GenesisState.forecasts:type_name -> emissions.v3.TopicIdActorIdForecast + 18, // 28: emissions.v3.GenesisState.workers:type_name -> emissions.v3.LibP2pKeyAndOffchainNode + 18, // 29: emissions.v3.GenesisState.reputers:type_name -> emissions.v3.LibP2pKeyAndOffchainNode + 9, // 30: emissions.v3.GenesisState.topicFeeRevenue:type_name -> emissions.v3.TopicIdAndInt + 19, // 31: emissions.v3.GenesisState.previousTopicWeight:type_name -> emissions.v3.TopicIdAndDec + 20, // 32: emissions.v3.GenesisState.allInferences:type_name -> emissions.v3.TopicIdBlockHeightInferences + 21, // 33: emissions.v3.GenesisState.allForecasts:type_name -> emissions.v3.TopicIdBlockHeightForecasts + 22, // 34: emissions.v3.GenesisState.allLossBundles:type_name -> emissions.v3.TopicIdBlockHeightReputerValueBundles + 23, // 35: emissions.v3.GenesisState.networkLossBundles:type_name -> emissions.v3.TopicIdBlockHeightValueBundles + 4, // 36: emissions.v3.GenesisState.openWorkerWindows:type_name -> emissions.v3.BlockHeightAndTopicIds + 24, // 37: emissions.v3.GenesisState.unfulfilledWorkerNonces:type_name -> emissions.v3.TopicIdAndNonces + 25, // 38: emissions.v3.GenesisState.unfulfilledReputerNonces:type_name -> emissions.v3.TopicIdAndReputerRequestNonces + 3, // 39: emissions.v3.GenesisState.lastDripBlock:type_name -> emissions.v3.TopicIdAndBlockHeight + 26, // 40: emissions.v3.GenesisState.latestInfererNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdTimeStampedValue + 26, // 41: emissions.v3.GenesisState.latestForecasterNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdTimeStampedValue + 27, // 42: emissions.v3.GenesisState.latestOneInForecasterNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue + 26, // 43: emissions.v3.GenesisState.latestNaiveInfererNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdTimeStampedValue + 27, // 44: emissions.v3.GenesisState.latestOneOutInfererInfererNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue + 27, // 45: emissions.v3.GenesisState.latestOneOutInfererForecasterNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue + 27, // 46: emissions.v3.GenesisState.latestOneOutForecasterInfererNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue + 27, // 47: emissions.v3.GenesisState.latestOneOutForecasterForecasterNetworkRegrets:type_name -> emissions.v3.TopicIdActorIdActorIdTimeStampedValue + 28, // 48: emissions.v3.GenesisState.topicLastWorkerCommit:type_name -> emissions.v3.TopicIdTimestampedActorNonce + 28, // 49: emissions.v3.GenesisState.topicLastReputerCommit:type_name -> emissions.v3.TopicIdTimestampedActorNonce + 30, // 50: emissions.v3.TopicIdAndTopic.Topic:type_name -> emissions.v3.Topic + 31, // 51: emissions.v3.TopicIdBlockHeightScores.Scores:type_name -> emissions.v3.Scores + 32, // 52: emissions.v3.TopicIdActorIdScore.Score:type_name -> emissions.v3.Score + 33, // 53: emissions.v3.TopicIdActorIdListeningCoefficient.ListeningCoefficient:type_name -> emissions.v3.ListeningCoefficient + 34, // 54: emissions.v3.TopicIdDelegatorReputerDelegatorInfo.DelegatorInfo:type_name -> emissions.v3.DelegatorInfo + 35, // 55: emissions.v3.BlockHeightTopicIdReputerStakeRemovalInfo.StakeRemovalInfo:type_name -> emissions.v3.StakeRemovalInfo + 36, // 56: emissions.v3.BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo.DelegateStakeRemovalInfo:type_name -> emissions.v3.DelegateStakeRemovalInfo + 37, // 57: emissions.v3.TopicIdActorIdInference.Inference:type_name -> emissions.v3.Inference + 38, // 58: emissions.v3.TopicIdActorIdForecast.Forecast:type_name -> emissions.v3.Forecast + 39, // 59: emissions.v3.LibP2pKeyAndOffchainNode.OffchainNode:type_name -> emissions.v3.OffchainNode + 40, // 60: emissions.v3.TopicIdBlockHeightInferences.Inferences:type_name -> emissions.v3.Inferences + 41, // 61: emissions.v3.TopicIdBlockHeightForecasts.Forecasts:type_name -> emissions.v3.Forecasts + 42, // 62: emissions.v3.TopicIdBlockHeightReputerValueBundles.ReputerValueBundles:type_name -> emissions.v3.ReputerValueBundles + 43, // 63: emissions.v3.TopicIdBlockHeightValueBundles.ValueBundle:type_name -> emissions.v3.ValueBundle + 44, // 64: emissions.v3.TopicIdAndNonces.Nonces:type_name -> emissions.v3.Nonces + 45, // 65: emissions.v3.TopicIdAndReputerRequestNonces.ReputerRequestNonces:type_name -> emissions.v3.ReputerRequestNonces + 46, // 66: emissions.v3.TopicIdActorIdTimeStampedValue.TimestampedValue:type_name -> emissions.v3.TimestampedValue + 46, // 67: emissions.v3.TopicIdActorIdActorIdTimeStampedValue.TimestampedValue:type_name -> emissions.v3.TimestampedValue + 47, // 68: emissions.v3.TopicIdTimestampedActorNonce.TimestampedActorNonce:type_name -> emissions.v3.TimestampedActorNonce + 69, // [69:69] is the sub-list for method output_type + 69, // [69:69] is the sub-list for method input_type + 69, // [69:69] is the sub-list for extension type_name + 69, // [69:69] is the sub-list for extension extendee + 0, // [0:69] is the sub-list for field type_name } func init() { file_emissions_v3_genesis_proto_init() } @@ -24696,7 +25638,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdBlockHeightScores); i { + switch v := v.(*BlockHeightAndTopicIds); i { case 0: return &v.state case 1: @@ -24708,7 +25650,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdActorIdScore); i { + switch v := v.(*TopicIdBlockHeightScores); i { case 0: return &v.state case 1: @@ -24720,7 +25662,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdActorIdListeningCoefficient); i { + switch v := v.(*TopicIdActorIdScore); i { case 0: return &v.state case 1: @@ -24732,7 +25674,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdActorIdDec); i { + switch v := v.(*TopicIdActorIdListeningCoefficient); i { case 0: return &v.state case 1: @@ -24744,7 +25686,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdAndInt); i { + switch v := v.(*TopicIdActorIdDec); i { case 0: return &v.state case 1: @@ -24756,7 +25698,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdActorIdInt); i { + switch v := v.(*TopicIdAndInt); i { case 0: return &v.state case 1: @@ -24768,7 +25710,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdDelegatorReputerDelegatorInfo); i { + switch v := v.(*TopicIdActorIdInt); i { case 0: return &v.state case 1: @@ -24780,7 +25722,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockHeightTopicIdReputerStakeRemovalInfo); i { + switch v := v.(*TopicIdDelegatorReputerDelegatorInfo); i { case 0: return &v.state case 1: @@ -24792,7 +25734,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActorIdTopicIdBlockHeight); i { + switch v := v.(*BlockHeightTopicIdReputerStakeRemovalInfo); i { case 0: return &v.state case 1: @@ -24804,7 +25746,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo); i { + switch v := v.(*ActorIdTopicIdBlockHeight); i { case 0: return &v.state case 1: @@ -24816,7 +25758,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegatorReputerTopicIdBlockHeight); i { + switch v := v.(*BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo); i { case 0: return &v.state case 1: @@ -24828,7 +25770,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdActorIdInference); i { + switch v := v.(*DelegatorReputerTopicIdBlockHeight); i { case 0: return &v.state case 1: @@ -24840,7 +25782,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdActorIdForecast); i { + switch v := v.(*TopicIdActorIdInference); i { case 0: return &v.state case 1: @@ -24852,7 +25794,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LibP2PKeyAndOffchainNode); i { + switch v := v.(*TopicIdActorIdForecast); i { case 0: return &v.state case 1: @@ -24864,7 +25806,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdAndDec); i { + switch v := v.(*LibP2PKeyAndOffchainNode); i { case 0: return &v.state case 1: @@ -24876,7 +25818,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdBlockHeightInferences); i { + switch v := v.(*TopicIdAndDec); i { case 0: return &v.state case 1: @@ -24888,7 +25830,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdBlockHeightForecasts); i { + switch v := v.(*TopicIdBlockHeightInferences); i { case 0: return &v.state case 1: @@ -24900,7 +25842,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdBlockHeightReputerValueBundles); i { + switch v := v.(*TopicIdBlockHeightForecasts); i { case 0: return &v.state case 1: @@ -24912,7 +25854,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdBlockHeightValueBundles); i { + switch v := v.(*TopicIdBlockHeightReputerValueBundles); i { case 0: return &v.state case 1: @@ -24924,7 +25866,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdAndNonces); i { + switch v := v.(*TopicIdBlockHeightValueBundles); i { case 0: return &v.state case 1: @@ -24936,7 +25878,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdAndReputerRequestNonces); i { + switch v := v.(*TopicIdAndNonces); i { case 0: return &v.state case 1: @@ -24948,7 +25890,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdActorIdTimeStampedValue); i { + switch v := v.(*TopicIdAndReputerRequestNonces); i { case 0: return &v.state case 1: @@ -24960,7 +25902,7 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TopicIdActorIdActorIdTimeStampedValue); i { + switch v := v.(*TopicIdActorIdTimeStampedValue); i { case 0: return &v.state case 1: @@ -24972,6 +25914,18 @@ func file_emissions_v3_genesis_proto_init() { } } file_emissions_v3_genesis_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TopicIdActorIdActorIdTimeStampedValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_emissions_v3_genesis_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TopicIdTimestampedActorNonce); i { case 0: return &v.state @@ -24990,7 +25944,7 @@ func file_emissions_v3_genesis_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_emissions_v3_genesis_proto_rawDesc, NumEnums: 0, - NumMessages: 28, + NumMessages: 29, NumExtensions: 0, NumServices: 0, }, diff --git a/x/emissions/api/v3/params.pulsar.go b/x/emissions/api/v3/params.pulsar.go index 826d32a4c..228e41c50 100644 --- a/x/emissions/api/v3/params.pulsar.go +++ b/x/emissions/api/v3/params.pulsar.go @@ -52,7 +52,6 @@ var ( fd_Params_c_reward_inference protoreflect.FieldDescriptor fd_Params_c_reward_forecast protoreflect.FieldDescriptor fd_Params_c_norm protoreflect.FieldDescriptor - fd_Params_topic_fee_revenue_decay_rate 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 @@ -98,7 +97,6 @@ func init() { fd_Params_c_reward_inference = md_Params.Fields().ByName("c_reward_inference") fd_Params_c_reward_forecast = md_Params.Fields().ByName("c_reward_forecast") fd_Params_c_norm = md_Params.Fields().ByName("c_norm") - fd_Params_topic_fee_revenue_decay_rate = md_Params.Fields().ByName("topic_fee_revenue_decay_rate") fd_Params_epsilon_reputer = md_Params.Fields().ByName("epsilon_reputer") fd_Params_half_max_process_stake_removals_end_block = md_Params.Fields().ByName("half_max_process_stake_removals_end_block") fd_Params_epsilon_safe_div = md_Params.Fields().ByName("epsilon_safe_div") @@ -381,12 +379,6 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto return } } - if x.TopicFeeRevenueDecayRate != "" { - value := protoreflect.ValueOfString(x.TopicFeeRevenueDecayRate) - if !f(fd_Params_topic_fee_revenue_decay_rate, value) { - return - } - } if x.EpsilonReputer != "" { value := protoreflect.ValueOfString(x.EpsilonReputer) if !f(fd_Params_epsilon_reputer, value) { @@ -502,8 +494,6 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { return x.CRewardForecast != "" case "emissions.v3.Params.c_norm": return x.CNorm != "" - case "emissions.v3.Params.topic_fee_revenue_decay_rate": - return x.TopicFeeRevenueDecayRate != "" case "emissions.v3.Params.epsilon_reputer": return x.EpsilonReputer != "" case "emissions.v3.Params.half_max_process_stake_removals_end_block": @@ -600,8 +590,6 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { x.CRewardForecast = "" case "emissions.v3.Params.c_norm": x.CNorm = "" - case "emissions.v3.Params.topic_fee_revenue_decay_rate": - x.TopicFeeRevenueDecayRate = "" case "emissions.v3.Params.epsilon_reputer": x.EpsilonReputer = "" case "emissions.v3.Params.half_max_process_stake_removals_end_block": @@ -733,9 +721,6 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro case "emissions.v3.Params.c_norm": value := x.CNorm return protoreflect.ValueOfString(value) - case "emissions.v3.Params.topic_fee_revenue_decay_rate": - value := x.TopicFeeRevenueDecayRate - return protoreflect.ValueOfString(value) case "emissions.v3.Params.epsilon_reputer": value := x.EpsilonReputer return protoreflect.ValueOfString(value) @@ -841,8 +826,6 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto x.CRewardForecast = value.Interface().(string) case "emissions.v3.Params.c_norm": x.CNorm = value.Interface().(string) - case "emissions.v3.Params.topic_fee_revenue_decay_rate": - x.TopicFeeRevenueDecayRate = value.Interface().(string) case "emissions.v3.Params.epsilon_reputer": x.EpsilonReputer = value.Interface().(string) case "emissions.v3.Params.half_max_process_stake_removals_end_block": @@ -943,8 +926,6 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore panic(fmt.Errorf("field c_reward_forecast of message emissions.v3.Params is not mutable")) case "emissions.v3.Params.c_norm": panic(fmt.Errorf("field c_norm of message emissions.v3.Params is not mutable")) - case "emissions.v3.Params.topic_fee_revenue_decay_rate": - panic(fmt.Errorf("field topic_fee_revenue_decay_rate of message emissions.v3.Params is not mutable")) case "emissions.v3.Params.epsilon_reputer": panic(fmt.Errorf("field epsilon_reputer of message emissions.v3.Params is not mutable")) case "emissions.v3.Params.half_max_process_stake_removals_end_block": @@ -1038,8 +1019,6 @@ func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protor return protoreflect.ValueOfString("") case "emissions.v3.Params.c_norm": return protoreflect.ValueOfString("") - case "emissions.v3.Params.topic_fee_revenue_decay_rate": - return protoreflect.ValueOfString("") case "emissions.v3.Params.epsilon_reputer": return protoreflect.ValueOfString("") case "emissions.v3.Params.half_max_process_stake_removals_end_block": @@ -1244,10 +1223,6 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) } - l = len(x.TopicFeeRevenueDecayRate) - if l > 0 { - n += 2 + l + runtime.Sov(uint64(l)) - } l = len(x.EpsilonReputer) if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) @@ -1336,15 +1311,6 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0xc2 } - if len(x.TopicFeeRevenueDecayRate) > 0 { - i -= len(x.TopicFeeRevenueDecayRate) - copy(dAtA[i:], x.TopicFeeRevenueDecayRate) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.TopicFeeRevenueDecayRate))) - i-- - dAtA[i] = 0x2 - i-- - dAtA[i] = 0xba - } if len(x.CNorm) > 0 { i -= len(x.CNorm) copy(dAtA[i:], x.CNorm) @@ -2576,38 +2542,6 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { } x.CNorm = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 39: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TopicFeeRevenueDecayRate", 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.TopicFeeRevenueDecayRate = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex case 40: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field EpsilonReputer", wireType) @@ -2836,15 +2770,14 @@ type Params struct { // forecasts MinEpochLengthRecordLimit int64 `protobuf:"varint,31,opt,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` // block emission rate in number of blocks expected per month - BlocksPerMonth uint64 `protobuf:"varint,32,opt,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` - PRewardInference string `protobuf:"bytes,33,opt,name=p_reward_inference,json=pRewardInference,proto3" json:"p_reward_inference,omitempty"` - PRewardForecast string `protobuf:"bytes,34,opt,name=p_reward_forecast,json=pRewardForecast,proto3" json:"p_reward_forecast,omitempty"` - PRewardReputer string `protobuf:"bytes,35,opt,name=p_reward_reputer,json=pRewardReputer,proto3" json:"p_reward_reputer,omitempty"` - CRewardInference string `protobuf:"bytes,36,opt,name=c_reward_inference,json=cRewardInference,proto3" json:"c_reward_inference,omitempty"` - CRewardForecast string `protobuf:"bytes,37,opt,name=c_reward_forecast,json=cRewardForecast,proto3" json:"c_reward_forecast,omitempty"` - CNorm string `protobuf:"bytes,38,opt,name=c_norm,json=cNorm,proto3" json:"c_norm,omitempty"` - TopicFeeRevenueDecayRate string `protobuf:"bytes,39,opt,name=topic_fee_revenue_decay_rate,json=topicFeeRevenueDecayRate,proto3" json:"topic_fee_revenue_decay_rate,omitempty"` // decay rate for topic fee revenue - EpsilonReputer string `protobuf:"bytes,40,opt,name=epsilon_reputer,json=epsilonReputer,proto3" json:"epsilon_reputer,omitempty"` // a small tolerance quantity used to cap reputer scores at infinitesimally + BlocksPerMonth uint64 `protobuf:"varint,32,opt,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` + PRewardInference string `protobuf:"bytes,33,opt,name=p_reward_inference,json=pRewardInference,proto3" json:"p_reward_inference,omitempty"` + PRewardForecast string `protobuf:"bytes,34,opt,name=p_reward_forecast,json=pRewardForecast,proto3" json:"p_reward_forecast,omitempty"` + PRewardReputer string `protobuf:"bytes,35,opt,name=p_reward_reputer,json=pRewardReputer,proto3" json:"p_reward_reputer,omitempty"` + CRewardInference string `protobuf:"bytes,36,opt,name=c_reward_inference,json=cRewardInference,proto3" json:"c_reward_inference,omitempty"` + CRewardForecast string `protobuf:"bytes,37,opt,name=c_reward_forecast,json=cRewardForecast,proto3" json:"c_reward_forecast,omitempty"` + CNorm string `protobuf:"bytes,38,opt,name=c_norm,json=cNorm,proto3" json:"c_norm,omitempty"` + EpsilonReputer string `protobuf:"bytes,40,opt,name=epsilon_reputer,json=epsilonReputer,proto3" json:"epsilon_reputer,omitempty"` // a small tolerance quantity used to cap reputer scores at infinitesimally // close proximities HalfMaxProcessStakeRemovalsEndBlock uint64 `protobuf:"varint,42,opt,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` // max amount of stake removals to process in an ABCI end block. // Applied twice once for stakeRemovals and once for @@ -3121,13 +3054,6 @@ func (x *Params) GetCNorm() string { return "" } -func (x *Params) GetTopicFeeRevenueDecayRate() string { - if x != nil { - return x.TopicFeeRevenueDecayRate - } - return "" -} - func (x *Params) GetEpsilonReputer() string { if x != nil { return x.EpsilonReputer @@ -3172,7 +3098,7 @@ var file_emissions_v3_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, 0xd6, 0x1b, + 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x81, 0x1b, 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, @@ -3352,62 +3278,56 @@ var file_emissions_v3_params_proto_rawDesc = []byte{ 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, 0x63, 0x4e, 0x6f, 0x72, 0x6d, 0x12, - 0x77, 0x0a, 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, 0x18, - 0x27, 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, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x46, 0x65, 0x65, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x44, - 0x65, 0x63, 0x61, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x60, 0x0a, 0x0f, 0x65, 0x70, 0x73, 0x69, - 0x6c, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x28, 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, 0x0e, 0x65, 0x70, 0x73, 0x69, - 0x6c, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x29, 0x68, 0x61, - 0x6c, 0x66, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x5f, 0x65, 0x6e, - 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x23, 0x68, - 0x61, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x64, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x12, 0x61, 0x0a, 0x10, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x5f, 0x73, 0x61, - 0x66, 0x65, 0x5f, 0x64, 0x69, 0x76, 0x18, 0x2b, 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, 0x0e, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x53, 0x61, - 0x66, 0x65, 0x44, 0x69, 0x76, 0x12, 0x5a, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x2c, 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, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x65, - 0x65, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x18, 0x2d, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x50, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x4a, 0x04, 0x08, 0x1a, - 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 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, + 0x60, 0x0a, 0x0f, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x18, 0x28, 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, 0x0e, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x12, 0x56, 0x0a, 0x29, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x61, 0x6c, 0x73, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x2a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x23, 0x68, 0x61, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, + 0x73, 0x45, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x61, 0x0a, 0x10, 0x65, 0x70, 0x73, + 0x69, 0x6c, 0x6f, 0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x64, 0x69, 0x76, 0x18, 0x2b, 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, 0x0e, 0x65, 0x70, + 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x44, 0x69, 0x76, 0x12, 0x5a, 0x0a, 0x10, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, + 0x18, 0x2c, 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, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6d, 0x61, 0x78, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, + 0x61, 0x73, 0x74, 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, 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, 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, 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, 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, 0x33, 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, 0x33, 0x3b, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x45, 0x58, - 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x33, - 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0xe2, - 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 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, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 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, 0x33, 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, 0x33, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 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, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/x/emissions/api/v3/tx.pulsar.go b/x/emissions/api/v3/tx.pulsar.go index 736f2d766..a9fb1a5f6 100644 --- a/x/emissions/api/v3/tx.pulsar.go +++ b/x/emissions/api/v3/tx.pulsar.go @@ -1626,52 +1626,6 @@ func (x *_OptionalParams_38_list) IsValid() bool { return x.list != nil } -var _ protoreflect.List = (*_OptionalParams_39_list)(nil) - -type _OptionalParams_39_list struct { - list *[]string -} - -func (x *_OptionalParams_39_list) Len() int { - if x.list == nil { - return 0 - } - return len(*x.list) -} - -func (x *_OptionalParams_39_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfString((*x.list)[i]) -} - -func (x *_OptionalParams_39_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - (*x.list)[i] = concreteValue -} - -func (x *_OptionalParams_39_list) Append(value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - *x.list = append(*x.list, concreteValue) -} - -func (x *_OptionalParams_39_list) AppendMutable() protoreflect.Value { - panic(fmt.Errorf("AppendMutable can not be called on message OptionalParams at list field TopicFeeRevenueDecayRate as it is not of Message kind")) -} - -func (x *_OptionalParams_39_list) Truncate(n int) { - *x.list = (*x.list)[:n] -} - -func (x *_OptionalParams_39_list) NewElement() protoreflect.Value { - v := "" - return protoreflect.ValueOfString(v) -} - -func (x *_OptionalParams_39_list) IsValid() bool { - return x.list != nil -} - var _ protoreflect.List = (*_OptionalParams_40_list)(nil) type _OptionalParams_40_list struct { @@ -1939,7 +1893,6 @@ var ( fd_OptionalParams_c_reward_inference protoreflect.FieldDescriptor fd_OptionalParams_c_reward_forecast protoreflect.FieldDescriptor fd_OptionalParams_c_norm protoreflect.FieldDescriptor - fd_OptionalParams_topic_fee_revenue_decay_rate 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 @@ -1985,7 +1938,6 @@ func init() { fd_OptionalParams_c_reward_inference = md_OptionalParams.Fields().ByName("c_reward_inference") fd_OptionalParams_c_reward_forecast = md_OptionalParams.Fields().ByName("c_reward_forecast") fd_OptionalParams_c_norm = md_OptionalParams.Fields().ByName("c_norm") - fd_OptionalParams_topic_fee_revenue_decay_rate = md_OptionalParams.Fields().ByName("topic_fee_revenue_decay_rate") fd_OptionalParams_epsilon_reputer = md_OptionalParams.Fields().ByName("epsilon_reputer") fd_OptionalParams_half_max_process_stake_removals_end_block = md_OptionalParams.Fields().ByName("half_max_process_stake_removals_end_block") fd_OptionalParams_data_sending_fee = md_OptionalParams.Fields().ByName("data_sending_fee") @@ -2268,12 +2220,6 @@ func (x *fastReflection_OptionalParams) Range(f func(protoreflect.FieldDescripto return } } - if len(x.TopicFeeRevenueDecayRate) != 0 { - value := protoreflect.ValueOfList(&_OptionalParams_39_list{list: &x.TopicFeeRevenueDecayRate}) - if !f(fd_OptionalParams_topic_fee_revenue_decay_rate, value) { - return - } - } if len(x.EpsilonReputer) != 0 { value := protoreflect.ValueOfList(&_OptionalParams_40_list{list: &x.EpsilonReputer}) if !f(fd_OptionalParams_epsilon_reputer, value) { @@ -2389,8 +2335,6 @@ func (x *fastReflection_OptionalParams) Has(fd protoreflect.FieldDescriptor) boo return len(x.CRewardForecast) != 0 case "emissions.v3.OptionalParams.c_norm": return len(x.CNorm) != 0 - case "emissions.v3.OptionalParams.topic_fee_revenue_decay_rate": - return len(x.TopicFeeRevenueDecayRate) != 0 case "emissions.v3.OptionalParams.epsilon_reputer": return len(x.EpsilonReputer) != 0 case "emissions.v3.OptionalParams.half_max_process_stake_removals_end_block": @@ -2487,8 +2431,6 @@ func (x *fastReflection_OptionalParams) Clear(fd protoreflect.FieldDescriptor) { x.CRewardForecast = nil case "emissions.v3.OptionalParams.c_norm": x.CNorm = nil - case "emissions.v3.OptionalParams.topic_fee_revenue_decay_rate": - x.TopicFeeRevenueDecayRate = nil case "emissions.v3.OptionalParams.epsilon_reputer": x.EpsilonReputer = nil case "emissions.v3.OptionalParams.half_max_process_stake_removals_end_block": @@ -2725,12 +2667,6 @@ func (x *fastReflection_OptionalParams) Get(descriptor protoreflect.FieldDescrip } listValue := &_OptionalParams_38_list{list: &x.CNorm} return protoreflect.ValueOfList(listValue) - case "emissions.v3.OptionalParams.topic_fee_revenue_decay_rate": - if len(x.TopicFeeRevenueDecayRate) == 0 { - return protoreflect.ValueOfList(&_OptionalParams_39_list{}) - } - listValue := &_OptionalParams_39_list{list: &x.TopicFeeRevenueDecayRate} - return protoreflect.ValueOfList(listValue) case "emissions.v3.OptionalParams.epsilon_reputer": if len(x.EpsilonReputer) == 0 { return protoreflect.ValueOfList(&_OptionalParams_40_list{}) @@ -2921,10 +2857,6 @@ func (x *fastReflection_OptionalParams) Set(fd protoreflect.FieldDescriptor, val lv := value.List() clv := lv.(*_OptionalParams_38_list) x.CNorm = *clv.list - case "emissions.v3.OptionalParams.topic_fee_revenue_decay_rate": - lv := value.List() - clv := lv.(*_OptionalParams_39_list) - x.TopicFeeRevenueDecayRate = *clv.list case "emissions.v3.OptionalParams.epsilon_reputer": lv := value.List() clv := lv.(*_OptionalParams_40_list) @@ -3175,12 +3107,6 @@ func (x *fastReflection_OptionalParams) Mutable(fd protoreflect.FieldDescriptor) } value := &_OptionalParams_38_list{list: &x.CNorm} return protoreflect.ValueOfList(value) - case "emissions.v3.OptionalParams.topic_fee_revenue_decay_rate": - if x.TopicFeeRevenueDecayRate == nil { - x.TopicFeeRevenueDecayRate = []string{} - } - value := &_OptionalParams_39_list{list: &x.TopicFeeRevenueDecayRate} - return protoreflect.ValueOfList(value) case "emissions.v3.OptionalParams.epsilon_reputer": if x.EpsilonReputer == nil { x.EpsilonReputer = []string{} @@ -3329,9 +3255,6 @@ func (x *fastReflection_OptionalParams) NewField(fd protoreflect.FieldDescriptor case "emissions.v3.OptionalParams.c_norm": list := []string{} return protoreflect.ValueOfList(&_OptionalParams_38_list{list: &list}) - case "emissions.v3.OptionalParams.topic_fee_revenue_decay_rate": - list := []string{} - return protoreflect.ValueOfList(&_OptionalParams_39_list{list: &list}) case "emissions.v3.OptionalParams.epsilon_reputer": list := []string{} return protoreflect.ValueOfList(&_OptionalParams_40_list{list: &list}) @@ -3641,12 +3564,6 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { n += 2 + l + runtime.Sov(uint64(l)) } } - if len(x.TopicFeeRevenueDecayRate) > 0 { - for _, s := range x.TopicFeeRevenueDecayRate { - l = len(s) - n += 2 + l + runtime.Sov(uint64(l)) - } - } if len(x.EpsilonReputer) > 0 { for _, s := range x.EpsilonReputer { l = len(s) @@ -3785,17 +3702,6 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { dAtA[i] = 0xc2 } } - if len(x.TopicFeeRevenueDecayRate) > 0 { - for iNdEx := len(x.TopicFeeRevenueDecayRate) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.TopicFeeRevenueDecayRate[iNdEx]) - copy(dAtA[i:], x.TopicFeeRevenueDecayRate[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.TopicFeeRevenueDecayRate[iNdEx]))) - i-- - dAtA[i] = 0x2 - i-- - dAtA[i] = 0xba - } - } if len(x.CNorm) > 0 { for iNdEx := len(x.CNorm) - 1; iNdEx >= 0; iNdEx-- { i -= len(x.CNorm[iNdEx]) @@ -6151,38 +6057,6 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } x.CNorm = append(x.CNorm, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 39: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TopicFeeRevenueDecayRate", 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.TopicFeeRevenueDecayRate = append(x.TopicFeeRevenueDecayRate, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex case 40: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field EpsilonReputer", wireType) @@ -21400,7 +21274,6 @@ type OptionalParams struct { 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"` - TopicFeeRevenueDecayRate []string `protobuf:"bytes,39,rep,name=topic_fee_revenue_decay_rate,json=topicFeeRevenueDecayRate,proto3" json:"topic_fee_revenue_decay_rate,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"` @@ -21673,13 +21546,6 @@ func (x *OptionalParams) GetCNorm() []string { return nil } -func (x *OptionalParams) GetTopicFeeRevenueDecayRate() []string { - if x != nil { - return x.TopicFeeRevenueDecayRate - } - return nil -} - func (x *OptionalParams) GetEpsilonReputer() []string { if x != nil { return x.EpsilonReputer @@ -23047,7 +22913,7 @@ var file_emissions_v3_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, 0xde, 0x1b, 0x0a, 0x0e, 0x4f, 0x70, + 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x89, 0x1b, 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, @@ -23227,369 +23093,364 @@ var file_emissions_v3_tx_proto_rawDesc = []byte{ 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, 0x63, 0x4e, - 0x6f, 0x72, 0x6d, 0x12, 0x77, 0x0a, 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, 0x18, 0x27, 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, 0x18, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x46, 0x65, 0x65, 0x52, 0x65, 0x76, 0x65, - 0x6e, 0x75, 0x65, 0x44, 0x65, 0x63, 0x61, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x60, 0x0a, 0x0f, - 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, - 0x28, 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, 0x0e, - 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x56, - 0x0a, 0x29, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, - 0x73, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x2a, 0x20, 0x03, 0x28, - 0x04, 0x52, 0x23, 0x68, 0x61, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x45, 0x6e, - 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5a, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x2b, 0x20, 0x03, 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, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, - 0x65, 0x65, 0x12, 0x61, 0x0a, 0x10, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x5f, 0x73, 0x61, - 0x66, 0x65, 0x5f, 0x64, 0x69, 0x76, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, + 0x6f, 0x72, 0x6d, 0x12, 0x60, 0x0a, 0x0f, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x28, 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, 0x0e, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x53, 0x61, - 0x66, 0x65, 0x44, 0x69, 0x76, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x04, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x45, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, - 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x29, - 0x10, 0x2a, 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, 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, 0x6c, 0x0a, 0x0f, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 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, 0x33, 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, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xf9, 0x04, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 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, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0e, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x29, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x23, 0x68, 0x61, 0x6c, 0x66, 0x4d, 0x61, + 0x78, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5a, 0x0a, + 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, + 0x65, 0x18, 0x2b, 0x20, 0x03, 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, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x61, 0x0a, 0x10, 0x65, 0x70, 0x73, + 0x69, 0x6c, 0x6f, 0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x64, 0x69, 0x76, 0x18, 0x2c, 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, 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, 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, - 0x36, 0x0a, 0x19, 0x4d, 0x73, 0x67, 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, 0x92, 0x01, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x49, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 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, 0x21, 0x0a, 0x1f, - 0x4d, 0x73, 0x67, 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, - 0x8b, 0x01, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0e, 0x65, 0x70, + 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x44, 0x69, 0x76, 0x12, 0x39, 0x0a, 0x19, + 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x16, 0x6d, 0x61, 0x78, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, 0x46, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 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, + 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, 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, + 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, 0x6c, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 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, 0x33, 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, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf9, + 0x04, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, + 0x6f, 0x70, 0x69, 0x63, 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, 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, 0x36, 0x0a, 0x19, 0x4d, 0x73, + 0x67, 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, 0x92, 0x01, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 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, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 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, 0x8b, 0x01, 0x0a, 0x16, 0x4d, + 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 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, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 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, 0xaa, 0x01, 0x0a, 0x0b, 0x4d, + 0x73, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, - 0x1e, 0x4d, 0x73, 0x67, 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, - 0xaa, 0x01, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, + 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, 0x49, 0x0a, 0x13, 0x4d, 0x73, 0x67, 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, 0x76, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x53, 0x0a, 0x1d, 0x4d, 0x73, + 0x67, 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, + 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 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, 0x49, 0x0a, 0x13, - 0x4d, 0x73, 0x67, 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, 0x76, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 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, - 0x53, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 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, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, - 0x74, 0x61, 0x6b, 0x65, 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, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 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, 0x18, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x0a, 0x14, - 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 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, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 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, 0xb6, 0x01, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 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, + 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, 0x4d, 0x73, 0x67, + 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x9a, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 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, 0x1a, 0x0a, - 0x18, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x16, 0x4d, 0x73, - 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, + 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x18, 0x0a, + 0x16, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 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, + 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 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, + 0xb6, 0x01, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 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, + 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, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 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, 0x96, 0x01, 0x0a, 0x1c, 0x4d, - 0x73, 0x67, 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, 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, 0x26, 0x0a, 0x24, 0x4d, 0x73, 0x67, 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, 0x98, 0x01, 0x0a, 0x0c, - 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 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, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, - 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, - 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 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, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 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, 0x5c, 0x0a, 0x1b, 0x4d, 0x73, 0x67, - 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, 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, 0x25, 0x0a, 0x23, 0x4d, 0x73, 0x67, 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, 0x20, - 0x0a, 0x1e, 0x4d, 0x73, 0x67, 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, 0x72, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 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, 0x32, 0xa9, 0x0c, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x54, 0x0a, 0x0c, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x25, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x1a, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, - 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, - 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 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, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 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, 0x96, 0x01, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 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, 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, 0x26, + 0x0a, 0x24, 0x4d, 0x73, 0x67, 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, 0x98, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x46, 0x75, + 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 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, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x0a, 0x16, 0x4d, 0x73, 0x67, + 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 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, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 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, 0x5c, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 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, 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, 0x25, 0x0a, 0x23, 0x4d, 0x73, 0x67, 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, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, + 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, 0x72, 0x0a, 0x16, 0x4d, + 0x73, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x6b, 0x65, 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, 0x32, + 0xa9, 0x0c, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x54, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x25, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, + 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, + 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, + 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x1a, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, + 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0x2b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x48, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x19, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x41, - 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x41, + 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x19, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1c, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, - 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x57, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x12, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x1a, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x69, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x6b, 0x65, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x1a, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x22, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, + 0x2e, 0x4d, 0x73, 0x67, 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, 0x57, 0x0a, + 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1e, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, + 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x26, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, + 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, + 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x7b, 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, 0x2a, + 0x65, 0x12, 0x69, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, - 0x67, 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, 0x1a, 0x32, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x4b, - 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1a, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, - 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x1a, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x41, - 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x78, 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, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x31, 0x2e, + 0x67, 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, 0x7b, 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, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x1a, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x4b, 0x0a, 0x09, 0x46, 0x75, 0x6e, + 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x1a, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, - 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, 0x69, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x2c, 0x2e, + 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x78, 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, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, - 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, 0x6c, 0x0a, 0x14, 0x49, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x12, 0x25, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x2d, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 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, 0x33, 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, 0x33, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, - 0x33, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x5c, 0x56, 0x33, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x5c, 0x56, 0x33, 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, 0x33, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x69, 0x0a, 0x13, 0x49, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 0x6c, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x25, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, + 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 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, 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, 0x33, + 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, 0x33, + 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x45, + 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, + 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, + 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 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, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/x/emissions/keeper/genesis.go b/x/emissions/keeper/genesis.go index 6b751afef..f3d3a1fb0 100644 --- a/x/emissions/keeper/genesis.go +++ b/x/emissions/keeper/genesis.go @@ -496,6 +496,20 @@ func (k *Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) erro return errors.Wrap(err, "error setting previousPercentageRewardToStakedReputers to 0.3") } } + //openWorkerWindows []*BlockHeightAndListOfTopicIds + if len(data.OpenWorkerWindows) != 0 { + for _, blockHeightAndListOfTopicIds := range data.OpenWorkerWindows { + topicIds := types.TopicIds{} + topicIds.TopicIds = blockHeightAndListOfTopicIds.TopicIds + if err := k.openWorkerWindows.Set( + ctx, + blockHeightAndListOfTopicIds.BlockHeight, + topicIds, + ); err != nil { + return errors.Wrap(err, "error setting openWorkerWindows") + } + } + } //UnfulfilledWorkerNonces []*TopicIdAndNonces if len(data.UnfulfilledWorkerNonces) != 0 { for _, topicIdAndNonces := range data.UnfulfilledWorkerNonces { @@ -512,6 +526,14 @@ func (k *Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) erro } } } + //lastDripBlock []*TopicIdAndBlockHeight + if len(data.LastDripBlock) != 0 { + for _, topicIdAndBlockHeight := range data.LastDripBlock { + if err := k.lastDripBlock.Set(ctx, topicIdAndBlockHeight.TopicId, topicIdAndBlockHeight.BlockHeight); err != nil { + return errors.Wrap(err, "error setting lastDripBlock") + } + } + } //LatestInfererNetworkRegrets []*TopicIdActorIdTimeStampedValue if len(data.LatestInfererNetworkRegrets) != 0 { for _, topicIdActorIdTimeStampedValue := range data.LatestInfererNetworkRegrets { @@ -1345,6 +1367,25 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) return nil, errors.Wrap(err, "failed to get previous percentage reward to staked reputers") } + // openWorkerWindows + openWorkerWindows := make([]*types.BlockHeightAndTopicIds, 0) + openWorkerWindowsIter, err := k.openWorkerWindows.Iterate(ctx, nil) + if err != nil { + return nil, errors.Wrap(err, "failed to iterate open worker windows") + } + for ; openWorkerWindowsIter.Valid(); openWorkerWindowsIter.Next() { + keyValue, err := openWorkerWindowsIter.KeyValue() + if err != nil { + return nil, errors.Wrap(err, "failed to get key value: openWorkerWindowsIter") + } + blockHeight := keyValue.Key + topicIds := keyValue.Value.TopicIds + openWorkerWindows = append(openWorkerWindows, &types.BlockHeightAndTopicIds{ + BlockHeight: blockHeight, + TopicIds: topicIds, + }) + } + // unfulfilledWorkerNonces unfulfilledWorkerNonces := make([]*types.TopicIdAndNonces, 0) unfulfilledWorkerNoncesIter, err := k.unfulfilledWorkerNonces.Iterate(ctx, nil) @@ -1382,6 +1423,24 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) unfulfilledReputerNonces = append(unfulfilledReputerNonces, &topicIdAndReputerRequestNonces) } + // lastDripBlock + lastDripBlock := make([]*types.TopicIdAndBlockHeight, 0) + lastDripBlockIter, err := k.lastDripBlock.Iterate(ctx, nil) + if err != nil { + return nil, errors.Wrap(err, "failed to iterate last drip block") + } + for ; lastDripBlockIter.Valid(); lastDripBlockIter.Next() { + keyValue, err := lastDripBlockIter.KeyValue() + if err != nil { + return nil, errors.Wrap(err, "failed to get key value: lastDripBlockIter") + } + topicIdAndBlockHeight := types.TopicIdAndBlockHeight{ + TopicId: keyValue.Key, + BlockHeight: keyValue.Value, + } + lastDripBlock = append(lastDripBlock, &topicIdAndBlockHeight) + } + latestInfererNetworkRegrets := make([]*types.TopicIdActorIdTimeStampedValue, 0) latestInfererNetworkRegretsIter, err := k.latestInfererNetworkRegrets.Iterate(ctx, nil) if err != nil { @@ -1619,8 +1678,10 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) AllLossBundles: allLossBundles, NetworkLossBundles: networkLossBundles, PreviousPercentageRewardToStakedReputers: previousPercentageRewardToStakedReputers, + OpenWorkerWindows: openWorkerWindows, UnfulfilledWorkerNonces: unfulfilledWorkerNonces, UnfulfilledReputerNonces: unfulfilledReputerNonces, + LastDripBlock: lastDripBlock, LatestInfererNetworkRegrets: latestInfererNetworkRegrets, LatestForecasterNetworkRegrets: latestForecasterNetworkRegrets, LatestOneInForecasterNetworkRegrets: latestOneInForecasterNetworkRegrets, diff --git a/x/emissions/keeper/keeper.go b/x/emissions/keeper/keeper.go index 5b9e65c6b..e30e66f0a 100644 --- a/x/emissions/keeper/keeper.go +++ b/x/emissions/keeper/keeper.go @@ -156,6 +156,9 @@ type Keeper struct { // map of (topic) -> unfulfilled nonces unfulfilledReputerNonces collections.Map[TopicId, types.ReputerRequestNonces] + // map of (topic) -> last dripped block + lastDripBlock collections.Map[TopicId, BlockHeight] + /// REGRETS // map of (topic, worker) -> regret of worker from comparing loss of worker relative to loss of other inferers @@ -253,6 +256,7 @@ func NewKeeper( reputerListeningCoefficient: collections.NewMap(sb, types.ReputerListeningCoefficientKey, "reputer_listening_coefficient", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), codec.CollValue[types.ListeningCoefficient](cdc)), unfulfilledWorkerNonces: collections.NewMap(sb, types.UnfulfilledWorkerNoncesKey, "unfulfilled_worker_nonces", collections.Uint64Key, codec.CollValue[types.Nonces](cdc)), unfulfilledReputerNonces: collections.NewMap(sb, types.UnfulfilledReputerNoncesKey, "unfulfilled_reputer_nonces", collections.Uint64Key, codec.CollValue[types.ReputerRequestNonces](cdc)), + lastDripBlock: collections.NewMap(sb, types.LastDripBlockKey, "last_drip_block", collections.Uint64Key, collections.Int64Value), topicRewardNonce: collections.NewMap(sb, types.TopicRewardNonceKey, "topic_reward_nonce", collections.Uint64Key, collections.Int64Value), topicLastWorkerCommit: collections.NewMap(sb, types.TopicLastWorkerCommitKey, "topic_last_worker_commit", collections.Uint64Key, codec.CollValue[types.TimestampedActorNonce](cdc)), topicLastReputerCommit: collections.NewMap(sb, types.TopicLastReputerCommitKey, "topic_last_reputer_commit", collections.Uint64Key, codec.CollValue[types.TimestampedActorNonce](cdc)), @@ -2026,35 +2030,109 @@ func (k *Keeper) AddTopicFeeRevenue(ctx context.Context, topicId TopicId, amount return k.topicFeeRevenue.Set(ctx, topicId, topicFeeRevenue) } +// return the blocks per week +// defined as the blocks per month divided by 4.345 +func calculateBlocksPerWeek(ctx sdk.Context, k Keeper) (alloraMath.Dec, error) { + moduleParams, err := k.GetParams(ctx) + if err != nil { + return alloraMath.Dec{}, err + } + blocksPerMonth, err := alloraMath.NewDecFromUint64(moduleParams.BlocksPerMonth) + if err != nil { + return alloraMath.Dec{}, err + } + // 4.345 weeks per month on average + weeksPerMonth, err := alloraMath.NewDecFromString("4.345") + if err != nil { + return alloraMath.Dec{}, err + } + blocksPerWeek, err := blocksPerMonth.Quo(weeksPerMonth) + if err != nil { + return alloraMath.Dec{}, err + } + return blocksPerWeek, nil +} + +// return the last time we dripped the fee revenue for a topic +func (k *Keeper) GetLastDripBlock(ctx context.Context, topicId TopicId) (BlockHeight, error) { + bh, err := k.lastDripBlock.Get(ctx, topicId) + if err != nil { + if errors.Is(err, collections.ErrNotFound) { + return 0, nil + } + return 0, err + } + return bh, nil +} + +// set the last time we dripped the fee revenue for a topic +func (k *Keeper) SetLastDripBlock(ctx context.Context, topicId TopicId, block BlockHeight) error { + return k.lastDripBlock.Set(ctx, topicId, block) +} + // Drop the fee revenue by the global Ecosystem bucket drip amount +// in the paper we say that +// ∆ C_{t,i} = N_{epochs,w} * C_{t,i} +// where C_{t,i} is the topic fee revenue +// and N_{epochs,w} is the number of epochs per week +// and this decay or drip happens each epoch func (k *Keeper) DripTopicFeeRevenue(ctx sdk.Context, topicId TopicId, block BlockHeight) error { topicFeeRevenue, err := k.GetTopicFeeRevenue(ctx, topicId) if err != nil { return err } - - moduleParams, err := k.GetParams(ctx) + topicFeeRevenueDec, err := alloraMath.NewDecFromSdkInt(topicFeeRevenue) if err != nil { return err } - topicFeeRevenueDecayRate := moduleParams.TopicFeeRevenueDecayRate - - topicFeeRevenueDec, err := alloraMath.NewDecFromSdkInt(topicFeeRevenue) + topic, err := k.GetTopic(ctx, topicId) if err != nil { return err } - - val, err := alloraMath.CalcExpDecay(topicFeeRevenueDec, topicFeeRevenueDecayRate) + blocksPerEpoch := alloraMath.NewDecFromInt64(topic.EpochLength) + blocksPerWeek, err := calculateBlocksPerWeek(ctx, *k) + if err != nil { + return err + } + epochsPerWeek, err := blocksPerWeek.Quo(blocksPerEpoch) if err != nil { return err } - newTopicFeeRevenue, err := val.SdkIntTrim() + // this delta is the drip per epoch + dripPerEpoch, err := topicFeeRevenueDec.Mul(epochsPerWeek) if err != nil { return err } + lastDripBlock, err := k.GetLastDripBlock(ctx, topicId) + if err != nil { + return err + } + // if we have not yet decayed this epoch, decay and set to decayed + // if we have decayed this epoch already, do nothing and continue + if lastDripBlock <= topic.EpochLastEnded { + newTopicFeeRevenueDec, err := topicFeeRevenueDec.Sub(dripPerEpoch) + if err != nil { + return err + } + if newTopicFeeRevenueDec.IsNegative() { + newTopicFeeRevenueDec = alloraMath.ZeroDec() + } - ctx.Logger().Debug(fmt.Sprintf("Dripping topic fee revenue: block %d, topicId %d, oldRevenue %v, newRevenue %v", ctx.BlockHeight(), topicId, topicFeeRevenue, newTopicFeeRevenue)) - return k.topicFeeRevenue.Set(ctx, topicId, newTopicFeeRevenue) + newTopicFeeRevenue, err := newTopicFeeRevenueDec.SdkIntTrim() + if err != nil { + return err + } + + if err = k.SetLastDripBlock(ctx, topicId, topic.EpochLastEnded); err != nil { + return err + } + logMsg := fmt.Sprintf( + "Dripping topic fee revenue: block %d, topicId %d, oldRevenue %v, newRevenue %v", + ctx.BlockHeight(), topicId, topicFeeRevenue, newTopicFeeRevenue) + ctx.Logger().Debug(logMsg) + return k.topicFeeRevenue.Set(ctx, topicId, newTopicFeeRevenue) + } + return nil } // REWARDABLE TOPICS @@ -2094,13 +2172,17 @@ func (k *Keeper) RemoveRewardableTopic(ctx context.Context, topicId TopicId) err func (k *Keeper) SetLatestInfererScore(ctx context.Context, topicId TopicId, worker ActorId, score types.Score) error { oldScore, err := k.GetLatestInfererScore(ctx, topicId, worker) if err != nil { - return err + return errorsmod.Wrap(err, "error getting latest inferer score") } if oldScore.BlockHeight >= score.BlockHeight { return nil } key := collections.Join(topicId, worker) - return k.latestInfererScoresByWorker.Set(ctx, key, score) + err = k.latestInfererScoresByWorker.Set(ctx, key, score) + if err != nil { + return errorsmod.Wrap(err, "error setting latest inferer score") + } + return nil } func (k *Keeper) GetLatestInfererScore(ctx context.Context, topicId TopicId, worker ActorId) (types.Score, error) { diff --git a/x/emissions/keeper/keeper_test.go b/x/emissions/keeper/keeper_test.go index 874102895..f163bf146 100644 --- a/x/emissions/keeper/keeper_test.go +++ b/x/emissions/keeper/keeper_test.go @@ -2417,7 +2417,7 @@ func (s *KeeperTestSuite) TestAddTopicFeeRevenue() { topicId := uint64(1) block := int64(100) - newTopic := types.Topic{Id: topicId} + newTopic := types.Topic{Id: topicId, EpochLength: 10} err := keeper.SetTopic(ctx, topicId, newTopic) s.Require().NoError(err, "Setting a new topic should not fail") err = keeper.DripTopicFeeRevenue(ctx, topicId, block) diff --git a/x/emissions/keeper/msgserver/msg_server_params.go b/x/emissions/keeper/msgserver/msg_server_params.go index 3f6c2afc9..00bacb122 100644 --- a/x/emissions/keeper/msgserver/msg_server_params.go +++ b/x/emissions/keeper/msgserver/msg_server_params.go @@ -128,9 +128,6 @@ func (ms msgServer) UpdateParams(ctx context.Context, msg *types.MsgUpdateParams if len(newParams.CNorm) == 1 { existingParams.CNorm = newParams.CNorm[0] } - if len(newParams.TopicFeeRevenueDecayRate) == 1 { - existingParams.TopicFeeRevenueDecayRate = newParams.TopicFeeRevenueDecayRate[0] - } if len(newParams.EpsilonReputer) == 1 { existingParams.EpsilonReputer = newParams.EpsilonReputer[0] } diff --git a/x/emissions/migrations/v3/migrate.go b/x/emissions/migrations/v3/migrate.go index 680c7c0e3..402b25614 100644 --- a/x/emissions/migrations/v3/migrate.go +++ b/x/emissions/migrations/v3/migrate.go @@ -43,6 +43,7 @@ func MigrateParams(store storetypes.KVStore, cdc codec.BinaryCodec) error { // MaxElementsPerForecast // REMOVED: // MinEffectiveTopicRevenue + // TopicFeeRevenueDecayRate // MaxRetriesToFulfilNoncesWorker // MaxRetriesToFulfilNoncesReputer newParams := types.Params{ @@ -81,12 +82,12 @@ func MigrateParams(store storetypes.KVStore, cdc codec.BinaryCodec) error { CRewardInference: oldParams.CRewardInference, CRewardForecast: oldParams.CRewardForecast, CNorm: oldParams.CNorm, - TopicFeeRevenueDecayRate: oldParams.TopicFeeRevenueDecayRate, EpsilonReputer: oldParams.EpsilonReputer, HalfMaxProcessStakeRemovalsEndBlock: oldParams.HalfMaxProcessStakeRemovalsEndBlock, EpsilonSafeDiv: oldParams.EpsilonSafeDiv, DataSendingFee: oldParams.DataSendingFee, - MaxElementsPerForecast: defaultParams.MaxElementsPerForecast, + // NEW PARAMS + MaxElementsPerForecast: defaultParams.MaxElementsPerForecast, } store.Delete(types.ParamsKey) diff --git a/x/emissions/migrations/v3/migrate_test.go b/x/emissions/migrations/v3/migrate_test.go index d705608fd..38984f026 100644 --- a/x/emissions/migrations/v3/migrate_test.go +++ b/x/emissions/migrations/v3/migrate_test.go @@ -104,7 +104,6 @@ func (s *MigrationTestSuite) TestMigrate() { CRewardInference: defaultParams.CRewardInference, CRewardForecast: defaultParams.CRewardForecast, CNorm: defaultParams.CNorm, - TopicFeeRevenueDecayRate: defaultParams.TopicFeeRevenueDecayRate, EpsilonReputer: defaultParams.EpsilonReputer, HalfMaxProcessStakeRemovalsEndBlock: defaultParams.HalfMaxProcessStakeRemovalsEndBlock, EpsilonSafeDiv: defaultParams.EpsilonSafeDiv, @@ -112,6 +111,7 @@ func (s *MigrationTestSuite) TestMigrate() { // TO BE DELETED MinEffectiveTopicRevenue: alloraMath.NewDecFromInt64(1337), + TopicFeeRevenueDecayRate: alloraMath.NewDecFromInt64(1338), MaxRetriesToFulfilNoncesWorker: 4242, MaxRetriesToFulfilNoncesReputer: 4243, } @@ -163,7 +163,6 @@ func (s *MigrationTestSuite) TestMigrate() { s.Require().True(paramsExpected.CRewardInference.Equal(params.CRewardInference), "%s!=%s", paramsExpected.CRewardInference, params.CRewardInference) s.Require().True(paramsExpected.CRewardForecast.Equal(params.CRewardForecast), "%s!=%s", paramsExpected.CRewardForecast, params.CRewardForecast) s.Require().True(paramsExpected.CNorm.Equal(params.CNorm), "%s!=%s", paramsExpected.CNorm, params.CNorm) - s.Require().True(paramsExpected.TopicFeeRevenueDecayRate.Equal(params.TopicFeeRevenueDecayRate), "%s!=%s", paramsExpected.TopicFeeRevenueDecayRate, params.TopicFeeRevenueDecayRate) s.Require().True(paramsExpected.EpsilonReputer.Equal(params.EpsilonReputer), "%s!=%s", paramsExpected.EpsilonReputer, params.EpsilonReputer) s.Require().Equal(paramsExpected.HalfMaxProcessStakeRemovalsEndBlock, params.HalfMaxProcessStakeRemovalsEndBlock) s.Require().True(paramsExpected.EpsilonSafeDiv.Equal(params.EpsilonSafeDiv), "%s!=%s", paramsExpected.EpsilonSafeDiv, params.EpsilonSafeDiv) diff --git a/x/emissions/module/rewards/rewards_test.go b/x/emissions/module/rewards/rewards_test.go index 255414dda..24f898a19 100644 --- a/x/emissions/module/rewards/rewards_test.go +++ b/x/emissions/module/rewards/rewards_test.go @@ -1,6 +1,7 @@ package rewards_test import ( + "fmt" "testing" "time" @@ -2702,8 +2703,10 @@ func (s *RewardsTestSuite) TestRewardForTopicGoesUpWhenRelativeStakeGoesUp() { // setup topics stake := cosmosMath.NewInt(1000).Mul(inferencesynthesis.CosmosIntOneE18()) - topicId0 := s.setUpTopicWithEpochLength(block, workerAddrs, reputerAddrs, stake, alphaRegret, 1) - topicId1 := s.setUpTopicWithEpochLength(block, workerAddrs, reputerAddrs, stake, alphaRegret, 1) + epochLength := int64(201600) // if every block is 3 seconds + topicId0 := s.setUpTopicWithEpochLength(block, workerAddrs, reputerAddrs, stake, alphaRegret, epochLength) + fmt.Println(s.ctx.BlockHeight()) + topicId1 := s.setUpTopicWithEpochLength(block, workerAddrs, reputerAddrs, stake, alphaRegret, epochLength) // setup values to be identical for both topics reputerValues := []TestWorkerValue{ @@ -2875,13 +2878,13 @@ func (s *RewardsTestSuite) TestRewardForTopicGoesUpWhenRelativeStakeGoesUp() { topic1RewardTotal1 := reputer3_Reward1.Add(reputer4_Reward1).Add(reputer5_Reward1) // in the first round, the rewards should be equal for each topic - require.True(topic0RewardTotal0.Equal(topic1RewardTotal0)) + require.True(topic0RewardTotal0.Equal(topic1RewardTotal0), "%s != %s", topic0RewardTotal0, topic1RewardTotal0) // for topic 0, the rewards should be less in the second round - require.True(topic0RewardTotal0.GT(topic0RewardTotal1)) + require.True(topic0RewardTotal0.GT(topic0RewardTotal1), "%s <= %s", topic0RewardTotal0, topic0RewardTotal1) // in the second round, the rewards should be greater for topic 1 - require.True(topic0RewardTotal1.LT(topic1RewardTotal1)) + require.True(topic0RewardTotal1.LT(topic1RewardTotal1), "%s >= %s", topic0RewardTotal1, topic1RewardTotal1) // the rewards for topic 1 should be greater in the second round - require.True(topic1RewardTotal0.LT(topic1RewardTotal1)) + require.True(topic1RewardTotal0.LT(topic1RewardTotal1), "%s >= %s", topic1RewardTotal0, topic1RewardTotal1) } func (s *RewardsTestSuite) TestReputerAboveConsensusGetsLessRewards() { diff --git a/x/emissions/proto/emissions/v3/genesis.proto b/x/emissions/proto/emissions/v3/genesis.proto index 271855102..ffcb3156c 100644 --- a/x/emissions/proto/emissions/v3/genesis.proto +++ b/x/emissions/proto/emissions/v3/genesis.proto @@ -137,10 +137,15 @@ message GenesisState { ]; /// NONCES + + // map of open worker nonce windows for topics on particular block heights + repeated BlockHeightAndTopicIds openWorkerWindows = 55; // map of (topic) -> unfulfilled nonces repeated TopicIdAndNonces unfulfilledWorkerNonces = 43; // map of (topic) -> unfulfilled nonces repeated TopicIdAndReputerRequestNonces unfulfilledReputerNonces = 44; + // map of (topic) -> last dripped block + repeated TopicIdAndBlockHeight lastDripBlock = 56; /// REGRETS // map of (topic, worker) -> regret of worker from comparing loss of worker @@ -184,6 +189,11 @@ message TopicIdAndBlockHeight { int64 BlockHeight = 2; } +message BlockHeightAndTopicIds { + int64 BlockHeight = 1; + repeated uint64 TopicIds = 2; +} + message TopicIdBlockHeightScores { uint64 TopicId = 1; int64 BlockHeight = 2; diff --git a/x/emissions/proto/emissions/v3/params.proto b/x/emissions/proto/emissions/v3/params.proto index 6ee1c79cb..0e65e9f9e 100644 --- a/x/emissions/proto/emissions/v3/params.proto +++ b/x/emissions/proto/emissions/v3/params.proto @@ -9,8 +9,8 @@ option go_package = "github.com/allora-network/allora-chain/x/emissions/types"; // Params defines the parameters of the module. message Params { - reserved 26, 27, 41; - reserved "min_effective_topic_revenue", "max_retries_to_fulfil_nonces_worker", "max_retries_to_fulfil_nonces_reputer"; + reserved 26, 27, 39, 41; + reserved "topic_fee_revenue_decay_rate", "min_effective_topic_revenue", "max_retries_to_fulfil_nonces_worker", "max_retries_to_fulfil_nonces_reputer"; string version = 1; // version of the protocol should be in lockstep with // github release tag version @@ -122,10 +122,6 @@ message Params { (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; - string topic_fee_revenue_decay_rate = 39 [ - (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", - (gogoproto.nullable) = false - ]; // decay rate for topic fee revenue string epsilon_reputer = 40 [ (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false diff --git a/x/emissions/proto/emissions/v3/tx.proto b/x/emissions/proto/emissions/v3/tx.proto index 9fa63922b..f965b6f28 100644 --- a/x/emissions/proto/emissions/v3/tx.proto +++ b/x/emissions/proto/emissions/v3/tx.proto @@ -56,8 +56,8 @@ service Msg { // optional field and if the repeated field is empty, it is considered to be the // same as if the field was not set message OptionalParams { - reserved 26, 27, 41; - reserved "min_effective_topic_revenue", "max_retries_to_fulfil_nonces_worker", "max_retries_to_fulfil_nonces_reputer"; + reserved 26, 27, 39, 41; + reserved "topic_fee_revenue_decay_rate", "min_effective_topic_revenue", "max_retries_to_fulfil_nonces_worker", "max_retries_to_fulfil_nonces_reputer"; repeated string version = 1; repeated int64 max_serialized_msg_length = 2; @@ -157,10 +157,6 @@ message OptionalParams { (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false ]; - repeated string topic_fee_revenue_decay_rate = 39 [ - (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", - (gogoproto.nullable) = false - ]; repeated string epsilon_reputer = 40 [ (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", (gogoproto.nullable) = false diff --git a/x/emissions/types/genesis.pb.go b/x/emissions/types/genesis.pb.go index ba8fb3bb3..f11b72086 100644 --- a/x/emissions/types/genesis.pb.go +++ b/x/emissions/types/genesis.pb.go @@ -132,11 +132,14 @@ type GenesisState struct { // Percentage of all rewards, paid out to staked reputers, during the previous // reward cadence. Used by mint module PreviousPercentageRewardToStakedReputers github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,42,opt,name=previousPercentageRewardToStakedReputers,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"previousPercentageRewardToStakedReputers"` - /// NONCES + // map of open worker nonce windows for topics on particular block heights + OpenWorkerWindows []*BlockHeightAndTopicIds `protobuf:"bytes,55,rep,name=openWorkerWindows,proto3" json:"openWorkerWindows,omitempty"` // map of (topic) -> unfulfilled nonces UnfulfilledWorkerNonces []*TopicIdAndNonces `protobuf:"bytes,43,rep,name=unfulfilledWorkerNonces,proto3" json:"unfulfilledWorkerNonces,omitempty"` // map of (topic) -> unfulfilled nonces UnfulfilledReputerNonces []*TopicIdAndReputerRequestNonces `protobuf:"bytes,44,rep,name=unfulfilledReputerNonces,proto3" json:"unfulfilledReputerNonces,omitempty"` + // map of (topic) -> last dripped block + LastDripBlock []*TopicIdAndBlockHeight `protobuf:"bytes,56,rep,name=lastDripBlock,proto3" json:"lastDripBlock,omitempty"` /// REGRETS // map of (topic, worker) -> regret of worker from comparing loss of worker // relative to loss of other inferers @@ -468,6 +471,13 @@ func (m *GenesisState) GetNetworkLossBundles() []*TopicIdBlockHeightValueBundles return nil } +func (m *GenesisState) GetOpenWorkerWindows() []*BlockHeightAndTopicIds { + if m != nil { + return m.OpenWorkerWindows + } + return nil +} + func (m *GenesisState) GetUnfulfilledWorkerNonces() []*TopicIdAndNonces { if m != nil { return m.UnfulfilledWorkerNonces @@ -482,6 +492,13 @@ func (m *GenesisState) GetUnfulfilledReputerNonces() []*TopicIdAndReputerRequest return nil } +func (m *GenesisState) GetLastDripBlock() []*TopicIdAndBlockHeight { + if m != nil { + return m.LastDripBlock + } + return nil +} + func (m *GenesisState) GetLatestInfererNetworkRegrets() []*TopicIdActorIdTimeStampedValue { if m != nil { return m.LatestInfererNetworkRegrets @@ -715,6 +732,58 @@ func (m *TopicIdAndBlockHeight) GetBlockHeight() int64 { return 0 } +type BlockHeightAndTopicIds struct { + BlockHeight int64 `protobuf:"varint,1,opt,name=BlockHeight,proto3" json:"BlockHeight,omitempty"` + TopicIds []uint64 `protobuf:"varint,2,rep,packed,name=TopicIds,proto3" json:"TopicIds,omitempty"` +} + +func (m *BlockHeightAndTopicIds) Reset() { *m = BlockHeightAndTopicIds{} } +func (m *BlockHeightAndTopicIds) String() string { return proto.CompactTextString(m) } +func (*BlockHeightAndTopicIds) ProtoMessage() {} +func (*BlockHeightAndTopicIds) Descriptor() ([]byte, []int) { + return fileDescriptor_ddb55d068ee88122, []int{4} +} +func (m *BlockHeightAndTopicIds) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BlockHeightAndTopicIds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BlockHeightAndTopicIds.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BlockHeightAndTopicIds) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlockHeightAndTopicIds.Merge(m, src) +} +func (m *BlockHeightAndTopicIds) XXX_Size() int { + return m.Size() +} +func (m *BlockHeightAndTopicIds) XXX_DiscardUnknown() { + xxx_messageInfo_BlockHeightAndTopicIds.DiscardUnknown(m) +} + +var xxx_messageInfo_BlockHeightAndTopicIds proto.InternalMessageInfo + +func (m *BlockHeightAndTopicIds) GetBlockHeight() int64 { + if m != nil { + return m.BlockHeight + } + return 0 +} + +func (m *BlockHeightAndTopicIds) GetTopicIds() []uint64 { + if m != nil { + return m.TopicIds + } + return nil +} + type TopicIdBlockHeightScores struct { TopicId uint64 `protobuf:"varint,1,opt,name=TopicId,proto3" json:"TopicId,omitempty"` BlockHeight int64 `protobuf:"varint,2,opt,name=BlockHeight,proto3" json:"BlockHeight,omitempty"` @@ -725,7 +794,7 @@ func (m *TopicIdBlockHeightScores) Reset() { *m = TopicIdBlockHeightScor func (m *TopicIdBlockHeightScores) String() string { return proto.CompactTextString(m) } func (*TopicIdBlockHeightScores) ProtoMessage() {} func (*TopicIdBlockHeightScores) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{4} + return fileDescriptor_ddb55d068ee88122, []int{5} } func (m *TopicIdBlockHeightScores) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -785,7 +854,7 @@ func (m *TopicIdActorIdScore) Reset() { *m = TopicIdActorIdScore{} } func (m *TopicIdActorIdScore) String() string { return proto.CompactTextString(m) } func (*TopicIdActorIdScore) ProtoMessage() {} func (*TopicIdActorIdScore) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{5} + return fileDescriptor_ddb55d068ee88122, []int{6} } func (m *TopicIdActorIdScore) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -845,7 +914,7 @@ func (m *TopicIdActorIdListeningCoefficient) Reset() { *m = TopicIdActor func (m *TopicIdActorIdListeningCoefficient) String() string { return proto.CompactTextString(m) } func (*TopicIdActorIdListeningCoefficient) ProtoMessage() {} func (*TopicIdActorIdListeningCoefficient) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{6} + return fileDescriptor_ddb55d068ee88122, []int{7} } func (m *TopicIdActorIdListeningCoefficient) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -905,7 +974,7 @@ func (m *TopicIdActorIdDec) Reset() { *m = TopicIdActorIdDec{} } func (m *TopicIdActorIdDec) String() string { return proto.CompactTextString(m) } func (*TopicIdActorIdDec) ProtoMessage() {} func (*TopicIdActorIdDec) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{7} + return fileDescriptor_ddb55d068ee88122, []int{8} } func (m *TopicIdActorIdDec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -957,7 +1026,7 @@ func (m *TopicIdAndInt) Reset() { *m = TopicIdAndInt{} } func (m *TopicIdAndInt) String() string { return proto.CompactTextString(m) } func (*TopicIdAndInt) ProtoMessage() {} func (*TopicIdAndInt) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{8} + return fileDescriptor_ddb55d068ee88122, []int{9} } func (m *TopicIdAndInt) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1003,7 +1072,7 @@ func (m *TopicIdActorIdInt) Reset() { *m = TopicIdActorIdInt{} } func (m *TopicIdActorIdInt) String() string { return proto.CompactTextString(m) } func (*TopicIdActorIdInt) ProtoMessage() {} func (*TopicIdActorIdInt) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{9} + return fileDescriptor_ddb55d068ee88122, []int{10} } func (m *TopicIdActorIdInt) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1057,7 +1126,7 @@ func (m *TopicIdDelegatorReputerDelegatorInfo) Reset() { *m = TopicIdDel func (m *TopicIdDelegatorReputerDelegatorInfo) String() string { return proto.CompactTextString(m) } func (*TopicIdDelegatorReputerDelegatorInfo) ProtoMessage() {} func (*TopicIdDelegatorReputerDelegatorInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{10} + return fileDescriptor_ddb55d068ee88122, []int{11} } func (m *TopicIdDelegatorReputerDelegatorInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1129,7 +1198,7 @@ func (m *BlockHeightTopicIdReputerStakeRemovalInfo) String() string { } func (*BlockHeightTopicIdReputerStakeRemovalInfo) ProtoMessage() {} func (*BlockHeightTopicIdReputerStakeRemovalInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{11} + return fileDescriptor_ddb55d068ee88122, []int{12} } func (m *BlockHeightTopicIdReputerStakeRemovalInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1196,7 +1265,7 @@ func (m *ActorIdTopicIdBlockHeight) Reset() { *m = ActorIdTopicIdBlockHe func (m *ActorIdTopicIdBlockHeight) String() string { return proto.CompactTextString(m) } func (*ActorIdTopicIdBlockHeight) ProtoMessage() {} func (*ActorIdTopicIdBlockHeight) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{12} + return fileDescriptor_ddb55d068ee88122, []int{13} } func (m *ActorIdTopicIdBlockHeight) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1262,7 +1331,7 @@ func (m *BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) String() st } func (*BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) ProtoMessage() {} func (*BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{13} + return fileDescriptor_ddb55d068ee88122, []int{14} } func (m *BlockHeightTopicIdDelegatorReputerDelegateStakeRemovalInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1337,7 +1406,7 @@ func (m *DelegatorReputerTopicIdBlockHeight) Reset() { *m = DelegatorRep func (m *DelegatorReputerTopicIdBlockHeight) String() string { return proto.CompactTextString(m) } func (*DelegatorReputerTopicIdBlockHeight) ProtoMessage() {} func (*DelegatorReputerTopicIdBlockHeight) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{14} + return fileDescriptor_ddb55d068ee88122, []int{15} } func (m *DelegatorReputerTopicIdBlockHeight) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1404,7 +1473,7 @@ func (m *TopicIdActorIdInference) Reset() { *m = TopicIdActorIdInference func (m *TopicIdActorIdInference) String() string { return proto.CompactTextString(m) } func (*TopicIdActorIdInference) ProtoMessage() {} func (*TopicIdActorIdInference) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{15} + return fileDescriptor_ddb55d068ee88122, []int{16} } func (m *TopicIdActorIdInference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1464,7 +1533,7 @@ func (m *TopicIdActorIdForecast) Reset() { *m = TopicIdActorIdForecast{} func (m *TopicIdActorIdForecast) String() string { return proto.CompactTextString(m) } func (*TopicIdActorIdForecast) ProtoMessage() {} func (*TopicIdActorIdForecast) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{16} + return fileDescriptor_ddb55d068ee88122, []int{17} } func (m *TopicIdActorIdForecast) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1523,7 +1592,7 @@ func (m *LibP2PKeyAndOffchainNode) Reset() { *m = LibP2PKeyAndOffchainNo func (m *LibP2PKeyAndOffchainNode) String() string { return proto.CompactTextString(m) } func (*LibP2PKeyAndOffchainNode) ProtoMessage() {} func (*LibP2PKeyAndOffchainNode) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{17} + return fileDescriptor_ddb55d068ee88122, []int{18} } func (m *LibP2PKeyAndOffchainNode) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1575,7 +1644,7 @@ func (m *TopicIdAndDec) Reset() { *m = TopicIdAndDec{} } func (m *TopicIdAndDec) String() string { return proto.CompactTextString(m) } func (*TopicIdAndDec) ProtoMessage() {} func (*TopicIdAndDec) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{18} + return fileDescriptor_ddb55d068ee88122, []int{19} } func (m *TopicIdAndDec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1621,7 +1690,7 @@ func (m *TopicIdBlockHeightInferences) Reset() { *m = TopicIdBlockHeight func (m *TopicIdBlockHeightInferences) String() string { return proto.CompactTextString(m) } func (*TopicIdBlockHeightInferences) ProtoMessage() {} func (*TopicIdBlockHeightInferences) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{19} + return fileDescriptor_ddb55d068ee88122, []int{20} } func (m *TopicIdBlockHeightInferences) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1681,7 +1750,7 @@ func (m *TopicIdBlockHeightForecasts) Reset() { *m = TopicIdBlockHeightF func (m *TopicIdBlockHeightForecasts) String() string { return proto.CompactTextString(m) } func (*TopicIdBlockHeightForecasts) ProtoMessage() {} func (*TopicIdBlockHeightForecasts) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{20} + return fileDescriptor_ddb55d068ee88122, []int{21} } func (m *TopicIdBlockHeightForecasts) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1741,7 +1810,7 @@ func (m *TopicIdBlockHeightReputerValueBundles) Reset() { *m = TopicIdBl func (m *TopicIdBlockHeightReputerValueBundles) String() string { return proto.CompactTextString(m) } func (*TopicIdBlockHeightReputerValueBundles) ProtoMessage() {} func (*TopicIdBlockHeightReputerValueBundles) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{21} + return fileDescriptor_ddb55d068ee88122, []int{22} } func (m *TopicIdBlockHeightReputerValueBundles) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1801,7 +1870,7 @@ func (m *TopicIdBlockHeightValueBundles) Reset() { *m = TopicIdBlockHeig func (m *TopicIdBlockHeightValueBundles) String() string { return proto.CompactTextString(m) } func (*TopicIdBlockHeightValueBundles) ProtoMessage() {} func (*TopicIdBlockHeightValueBundles) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{22} + return fileDescriptor_ddb55d068ee88122, []int{23} } func (m *TopicIdBlockHeightValueBundles) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1860,7 +1929,7 @@ func (m *TopicIdAndNonces) Reset() { *m = TopicIdAndNonces{} } func (m *TopicIdAndNonces) String() string { return proto.CompactTextString(m) } func (*TopicIdAndNonces) ProtoMessage() {} func (*TopicIdAndNonces) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{23} + return fileDescriptor_ddb55d068ee88122, []int{24} } func (m *TopicIdAndNonces) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1912,7 +1981,7 @@ func (m *TopicIdAndReputerRequestNonces) Reset() { *m = TopicIdAndRepute func (m *TopicIdAndReputerRequestNonces) String() string { return proto.CompactTextString(m) } func (*TopicIdAndReputerRequestNonces) ProtoMessage() {} func (*TopicIdAndReputerRequestNonces) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{24} + return fileDescriptor_ddb55d068ee88122, []int{25} } func (m *TopicIdAndReputerRequestNonces) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1965,7 +2034,7 @@ func (m *TopicIdActorIdTimeStampedValue) Reset() { *m = TopicIdActorIdTi func (m *TopicIdActorIdTimeStampedValue) String() string { return proto.CompactTextString(m) } func (*TopicIdActorIdTimeStampedValue) ProtoMessage() {} func (*TopicIdActorIdTimeStampedValue) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{25} + return fileDescriptor_ddb55d068ee88122, []int{26} } func (m *TopicIdActorIdTimeStampedValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2026,7 +2095,7 @@ func (m *TopicIdActorIdActorIdTimeStampedValue) Reset() { *m = TopicIdAc func (m *TopicIdActorIdActorIdTimeStampedValue) String() string { return proto.CompactTextString(m) } func (*TopicIdActorIdActorIdTimeStampedValue) ProtoMessage() {} func (*TopicIdActorIdActorIdTimeStampedValue) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{26} + return fileDescriptor_ddb55d068ee88122, []int{27} } func (m *TopicIdActorIdActorIdTimeStampedValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2092,7 +2161,7 @@ func (m *TopicIdTimestampedActorNonce) Reset() { *m = TopicIdTimestamped func (m *TopicIdTimestampedActorNonce) String() string { return proto.CompactTextString(m) } func (*TopicIdTimestampedActorNonce) ProtoMessage() {} func (*TopicIdTimestampedActorNonce) Descriptor() ([]byte, []int) { - return fileDescriptor_ddb55d068ee88122, []int{27} + return fileDescriptor_ddb55d068ee88122, []int{28} } func (m *TopicIdTimestampedActorNonce) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2140,6 +2209,7 @@ func init() { proto.RegisterType((*TopicIdAndTopic)(nil), "emissions.v3.TopicIdAndTopic") proto.RegisterType((*TopicAndActorId)(nil), "emissions.v3.TopicAndActorId") proto.RegisterType((*TopicIdAndBlockHeight)(nil), "emissions.v3.TopicIdAndBlockHeight") + proto.RegisterType((*BlockHeightAndTopicIds)(nil), "emissions.v3.BlockHeightAndTopicIds") proto.RegisterType((*TopicIdBlockHeightScores)(nil), "emissions.v3.TopicIdBlockHeightScores") proto.RegisterType((*TopicIdActorIdScore)(nil), "emissions.v3.TopicIdActorIdScore") proto.RegisterType((*TopicIdActorIdListeningCoefficient)(nil), "emissions.v3.TopicIdActorIdListeningCoefficient") @@ -2169,142 +2239,146 @@ func init() { func init() { proto.RegisterFile("emissions/v3/genesis.proto", fileDescriptor_ddb55d068ee88122) } var fileDescriptor_ddb55d068ee88122 = []byte{ - // 2159 bytes of a gzipped FileDescriptorProto + // 2223 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5a, 0xcd, 0x6f, 0xdc, 0xc6, - 0x15, 0x37, 0xb5, 0xb2, 0x6c, 0x3d, 0x49, 0xb1, 0x3c, 0xfa, 0x1a, 0x7d, 0x78, 0xb5, 0xa1, 0xbf, - 0xd6, 0x8e, 0xbd, 0xeb, 0x48, 0x75, 0x13, 0x34, 0x40, 0xd1, 0x5d, 0xdb, 0x6a, 0x36, 0x75, 0x6c, - 0x81, 0x72, 0xec, 0xd6, 0x09, 0xe0, 0x50, 0xe4, 0xec, 0x8a, 0x10, 0x97, 0xdc, 0x90, 0xb3, 0xb2, - 0x7d, 0xeb, 0xa1, 0x3d, 0xb5, 0x40, 0x83, 0x26, 0x05, 0x5a, 0xf4, 0xd2, 0x63, 0x8f, 0x39, 0xf4, - 0x50, 0xa0, 0xe7, 0x02, 0xb9, 0x14, 0x08, 0x7a, 0x2a, 0x7a, 0x08, 0x0a, 0xfb, 0xd0, 0x6b, 0xff, - 0x84, 0x82, 0x33, 0x43, 0x2e, 0x3f, 0x86, 0xdc, 0xd5, 0x2a, 0x17, 0x43, 0xe4, 0xbc, 0xf7, 0xfb, - 0xfd, 0xde, 0xbc, 0xe1, 0x9b, 0x99, 0xe7, 0x85, 0x35, 0xd2, 0xb5, 0x7c, 0xdf, 0x72, 0x1d, 0xbf, - 0x7e, 0xb4, 0x5d, 0xef, 0x10, 0x87, 0xf8, 0x96, 0x5f, 0xeb, 0x79, 0x2e, 0x75, 0xd1, 0x6c, 0x34, - 0x56, 0x3b, 0xda, 0x5e, 0x3b, 0xaf, 0x77, 0x2d, 0xc7, 0xad, 0xb3, 0x7f, 0xb9, 0xc1, 0xda, 0xaa, - 0xe1, 0xfa, 0x5d, 0xd7, 0x7f, 0xc6, 0x9e, 0xea, 0xfc, 0x41, 0x0c, 0xad, 0x24, 0x70, 0x1d, 0xd7, - 0x24, 0x62, 0x00, 0xa7, 0x06, 0x1c, 0x23, 0x1c, 0x59, 0x4d, 0x8c, 0xf4, 0x74, 0x4f, 0xef, 0x86, - 0x68, 0x49, 0x95, 0x1e, 0xe9, 0xf5, 0x29, 0xf1, 0xa4, 0x80, 0xbe, 0xe1, 0x7a, 0x72, 0x2a, 0x9f, - 0xea, 0x87, 0xf2, 0x11, 0xea, 0xf6, 0x2c, 0x43, 0x3e, 0xf2, 0xb2, 0x47, 0x7c, 0xa9, 0xbc, 0xe7, - 0xae, 0x77, 0x18, 0x49, 0x58, 0xec, 0xb8, 0x1d, 0x97, 0x4f, 0x42, 0xf0, 0x17, 0x7f, 0xab, 0xfe, - 0xef, 0x2a, 0xcc, 0xfe, 0x98, 0x4f, 0xe8, 0x1e, 0xd5, 0x29, 0x41, 0x5b, 0x30, 0xc5, 0xa3, 0xc2, - 0x4a, 0x45, 0xa9, 0xce, 0x6c, 0x2d, 0xd6, 0xe2, 0x13, 0x5c, 0xdb, 0x65, 0x63, 0xcd, 0xc9, 0xaf, - 0xbf, 0xdd, 0x3c, 0xa5, 0x09, 0x4b, 0x54, 0x81, 0x19, 0x87, 0xbc, 0xa0, 0x8f, 0x02, 0x89, 0x2d, - 0x13, 0x97, 0x2a, 0x4a, 0x75, 0x52, 0x8b, 0xbf, 0x42, 0xb7, 0x61, 0x8a, 0x05, 0xe0, 0xe3, 0xc9, - 0x4a, 0xa9, 0x3a, 0xb3, 0x75, 0x21, 0x89, 0x2a, 0xcc, 0x1a, 0x8e, 0xc9, 0xfe, 0xd2, 0x84, 0x31, - 0x52, 0x61, 0x56, 0x37, 0xa8, 0x75, 0x44, 0x1e, 0x71, 0xe7, 0xd3, 0x95, 0x52, 0x75, 0x52, 0x4b, - 0xbc, 0x43, 0xd7, 0x61, 0xde, 0x23, 0xcf, 0x75, 0xcf, 0xd4, 0xf7, 0xed, 0xd0, 0x6e, 0x8a, 0xd9, - 0x65, 0xde, 0xa3, 0x06, 0xcc, 0x32, 0xe4, 0x27, 0x6c, 0x62, 0x7c, 0x7c, 0x26, 0x57, 0x4c, 0xc3, - 0x31, 0x1b, 0x06, 0x75, 0xbd, 0x96, 0xa9, 0x25, 0x5c, 0xd0, 0x1d, 0x98, 0x63, 0xcf, 0x1a, 0xcf, - 0xaf, 0x8f, 0xcf, 0x8e, 0x82, 0x91, 0xf4, 0x41, 0x0f, 0x61, 0x5e, 0xbc, 0x08, 0x04, 0x3e, 0x08, - 0xd6, 0x17, 0x9e, 0x66, 0x38, 0x17, 0xf3, 0x26, 0xa6, 0x69, 0xbb, 0xc6, 0xe1, 0xfb, 0xc4, 0xea, - 0x1c, 0x50, 0x2d, 0xe3, 0x8c, 0x9e, 0xc2, 0xa2, 0xe5, 0xb4, 0x89, 0x47, 0xbc, 0xbd, 0x60, 0x6d, - 0xf9, 0xcd, 0x97, 0xcc, 0x1e, 0x03, 0x03, 0xbd, 0x22, 0x05, 0x8d, 0x21, 0x72, 0x27, 0x4d, 0x8a, - 0x81, 0x3e, 0x85, 0x95, 0xb6, 0xeb, 0x11, 0x43, 0xf7, 0x69, 0x1a, 0x7e, 0xe6, 0x58, 0xf0, 0x79, - 0x30, 0x81, 0x7a, 0xf1, 0xb9, 0x24, 0xe1, 0x67, 0x8f, 0xa7, 0x5e, 0x86, 0x81, 0x0c, 0x58, 0xb7, - 0x75, 0x4a, 0x7c, 0xda, 0x4a, 0xc6, 0xc6, 0xf3, 0x89, 0xe7, 0x18, 0xc5, 0x9b, 0xf2, 0x59, 0xe7, - 0xc9, 0x63, 0x1e, 0x5a, 0x11, 0x0a, 0xb2, 0xa0, 0xcc, 0x87, 0x77, 0x32, 0x11, 0x0a, 0x9e, 0x37, - 0x46, 0xe5, 0x19, 0x02, 0x84, 0x08, 0x6c, 0x70, 0x0b, 0x2d, 0x19, 0xad, 0x78, 0xc4, 0xe7, 0x46, - 0x25, 0x2a, 0x84, 0x41, 0x1e, 0xac, 0x8b, 0xe9, 0xbc, 0x6f, 0xf9, 0x94, 0x38, 0x96, 0xd3, 0xb9, - 0xe3, 0x92, 0x76, 0xdb, 0x32, 0x2c, 0xe2, 0x50, 0x3c, 0xcf, 0x58, 0x6e, 0x15, 0xb1, 0xc8, 0xfc, - 0xb4, 0x22, 0x50, 0x44, 0xe0, 0x42, 0xcf, 0x23, 0x47, 0x96, 0xdb, 0xf7, 0x85, 0x0c, 0xbe, 0xc4, - 0x77, 0xbc, 0xe0, 0x83, 0x77, 0x1d, 0x7c, 0x9e, 0xb1, 0x6e, 0x16, 0xb1, 0xde, 0x25, 0x86, 0x56, - 0x8c, 0x82, 0x2c, 0xd8, 0x0c, 0x0d, 0x78, 0x36, 0x1d, 0x83, 0xa4, 0x88, 0xd0, 0x68, 0x44, 0xc3, - 0x70, 0x50, 0x07, 0xca, 0xa1, 0x49, 0x98, 0xd0, 0x14, 0xd3, 0xc2, 0x68, 0x4c, 0x43, 0x60, 0x90, - 0x01, 0x1b, 0x69, 0x0b, 0x91, 0x53, 0x4d, 0xa7, 0x96, 0x8b, 0x17, 0x47, 0xa3, 0x29, 0x04, 0x41, - 0xbb, 0x00, 0xd4, 0xa5, 0xba, 0xbd, 0x17, 0x6c, 0x52, 0x78, 0xa9, 0xa2, 0x54, 0xa7, 0x9b, 0xb7, - 0x82, 0x8d, 0xe0, 0xdf, 0xdf, 0x6e, 0x2e, 0xf1, 0x8d, 0xd5, 0x37, 0x0f, 0x6b, 0x96, 0x5b, 0xef, - 0xea, 0xf4, 0xa0, 0xd6, 0x72, 0xe8, 0x3f, 0xff, 0x72, 0x13, 0xc4, 0x8e, 0xdb, 0x72, 0xe8, 0x9f, - 0xff, 0xfb, 0xd5, 0x75, 0x45, 0x8b, 0x61, 0xa0, 0xf7, 0x02, 0xc4, 0x9e, 0x65, 0x70, 0xc4, 0x65, - 0x26, 0x72, 0x3d, 0xaf, 0x02, 0xb6, 0x1c, 0xaa, 0xc5, 0xcc, 0xd1, 0x47, 0xb0, 0xc4, 0xb6, 0x4b, - 0x91, 0xe5, 0x46, 0x9f, 0x1e, 0xb8, 0x9e, 0x45, 0x5f, 0xe2, 0x95, 0xe1, 0xc1, 0x06, 0x58, 0x72, - 0xef, 0x08, 0x76, 0xaf, 0xdf, 0xdd, 0xf1, 0xdc, 0xee, 0x5d, 0x62, 0x93, 0x8e, 0x4e, 0x5d, 0x0f, - 0xe3, 0xe3, 0xc0, 0xa6, 0xbd, 0xd1, 0x27, 0x70, 0xce, 0xe4, 0x0f, 0xc4, 0x64, 0xfa, 0x7d, 0xbc, - 0xca, 0x00, 0xb7, 0xa4, 0x80, 0x91, 0xa3, 0xd0, 0x17, 0x3d, 0xb7, 0x9c, 0xb6, 0xab, 0xa5, 0xa1, - 0x82, 0x85, 0xc6, 0x68, 0x13, 0x9c, 0xfe, 0x47, 0x3d, 0xd7, 0x09, 0xeb, 0xc2, 0xda, 0x68, 0xea, - 0x87, 0xc0, 0xa0, 0x27, 0xb0, 0x1c, 0x72, 0xf3, 0x25, 0xb8, 0x4b, 0xbc, 0xbd, 0x03, 0xdd, 0x23, - 0x78, 0x7d, 0xb4, 0x25, 0x96, 0xe3, 0x8e, 0x0e, 0x61, 0x51, 0xe4, 0xa3, 0xeb, 0x1e, 0xe9, 0x76, - 0xb4, 0x07, 0x6c, 0x30, 0xd8, 0x77, 0x92, 0xb0, 0xb1, 0xe2, 0x2f, 0x18, 0xc2, 0x32, 0x16, 0x83, - 0x60, 0x33, 0x25, 0x05, 0x45, 0x1f, 0x67, 0xc8, 0x98, 0x42, 0x7c, 0x81, 0x91, 0x5d, 0x4d, 0x92, - 0x09, 0xf1, 0xd9, 0x7d, 0x47, 0x93, 0x82, 0xa0, 0x5f, 0x2b, 0xb0, 0x11, 0x06, 0xb9, 0x27, 0x0b, - 0xa9, 0xcc, 0x58, 0xde, 0x1f, 0x16, 0x52, 0xce, 0x12, 0x20, 0x99, 0x18, 0x0b, 0xd9, 0x10, 0xcd, - 0x55, 0xc3, 0x63, 0xde, 0x94, 0x95, 0xf2, 0x34, 0xb7, 0x24, 0xf8, 0x42, 0x54, 0x74, 0x0f, 0xc0, - 0x0a, 0x8b, 0xa2, 0x8f, 0x2b, 0x8c, 0xe3, 0x72, 0xf1, 0xe2, 0x0b, 0x4b, 0x68, 0xcc, 0x11, 0x35, - 0x61, 0x3a, 0x3c, 0x34, 0xf8, 0xf8, 0x4d, 0x86, 0x72, 0xa9, 0x08, 0x25, 0x2a, 0x8f, 0x03, 0x37, - 0xf4, 0x23, 0x38, 0xf3, 0x5c, 0x9c, 0xf7, 0x54, 0xd9, 0x81, 0xe2, 0xbe, 0xb5, 0xbf, 0xbb, 0xd5, - 0xfb, 0x09, 0x79, 0xd9, 0x70, 0xcc, 0x87, 0xed, 0xb6, 0x71, 0xa0, 0x5b, 0xce, 0x03, 0xd7, 0x24, - 0x5a, 0xe8, 0x86, 0x9a, 0x70, 0xd6, 0x0b, 0x8f, 0x7b, 0x17, 0x8f, 0x05, 0x11, 0xf9, 0xa1, 0x7b, - 0x70, 0x8e, 0xd5, 0xae, 0x1d, 0x42, 0x34, 0x72, 0x44, 0x9c, 0x3e, 0xc1, 0x97, 0x86, 0xd7, 0xbb, - 0xb4, 0x0f, 0xfa, 0x10, 0x16, 0xc2, 0x1a, 0xcd, 0x2c, 0x9f, 0xb0, 0x64, 0xe0, 0xcb, 0xc5, 0x50, - 0xc1, 0x87, 0x27, 0xf3, 0x43, 0xbb, 0x30, 0xa7, 0xdb, 0x76, 0x6b, 0x90, 0xa9, 0x2b, 0x0c, 0xe8, - 0xfa, 0xb0, 0x23, 0xd7, 0xc0, 0x43, 0x4b, 0x02, 0xa0, 0x0f, 0x61, 0x56, 0xb7, 0xed, 0x9d, 0x28, - 0x69, 0x57, 0x19, 0xe0, 0xb5, 0x61, 0x80, 0x91, 0x83, 0x96, 0x70, 0x47, 0x1f, 0xc3, 0x1b, 0xba, - 0x6d, 0xdf, 0x77, 0x7d, 0xbf, 0xd9, 0x77, 0x4c, 0x9b, 0xf8, 0xb8, 0xca, 0x00, 0xb7, 0x87, 0x01, - 0x8a, 0x85, 0xfb, 0x58, 0xb7, 0xfb, 0x44, 0xb8, 0x6a, 0x29, 0x28, 0xf4, 0x09, 0x20, 0x87, 0xd0, - 0x20, 0xcb, 0x71, 0x82, 0x6b, 0x8c, 0xe0, 0xc6, 0x30, 0x82, 0x04, 0xb2, 0x04, 0x07, 0x7d, 0xa1, - 0x40, 0x35, 0x9c, 0xf3, 0x5d, 0xe2, 0x19, 0xc4, 0xa1, 0x7a, 0x47, 0x94, 0xbd, 0x47, 0x2e, 0xfb, - 0x6a, 0xcc, 0xe8, 0x16, 0x71, 0x9d, 0xed, 0xa6, 0xef, 0x88, 0xdd, 0xb4, 0xde, 0xb1, 0xe8, 0x41, - 0x7f, 0xbf, 0x66, 0xb8, 0xdd, 0xba, 0x6e, 0xdb, 0xae, 0xa7, 0xdf, 0x14, 0x04, 0xe1, 0x23, 0x5b, - 0x62, 0x7c, 0x9f, 0x0d, 0x92, 0x3b, 0x32, 0x11, 0xfa, 0x29, 0xac, 0xf4, 0x9d, 0x76, 0xdf, 0x6e, - 0x5b, 0xb6, 0x4d, 0x4c, 0x7e, 0xa8, 0x64, 0x77, 0x08, 0x1f, 0xbf, 0xc5, 0x02, 0x2f, 0xe7, 0x2d, - 0x22, 0x6e, 0xa5, 0xe5, 0xb9, 0xa3, 0x03, 0xc0, 0xb1, 0x21, 0x41, 0x28, 0xa0, 0x6f, 0x14, 0xcc, - 0x69, 0xc3, 0x31, 0xa3, 0x83, 0xda, 0x67, 0x7d, 0xe2, 0x53, 0x41, 0x94, 0x8b, 0x86, 0x9c, 0xd4, - 0x99, 0xfe, 0x01, 0x9f, 0x1b, 0x8d, 0x74, 0x3c, 0x42, 0x7d, 0x7c, 0xb3, 0x88, 0x4c, 0x14, 0x73, - 0xab, 0x1b, 0xd4, 0xad, 0x6e, 0x8f, 0x98, 0x2c, 0x8f, 0x5a, 0x11, 0x20, 0xa2, 0xd9, 0xe3, 0x7d, - 0x8a, 0xb2, 0x36, 0x06, 0xe5, 0x10, 0x4c, 0xf4, 0x4b, 0x05, 0x2e, 0x72, 0x93, 0x87, 0x0e, 0x69, - 0x39, 0xb9, 0xdc, 0xf5, 0x82, 0x0f, 0x42, 0x70, 0xe7, 0x49, 0x18, 0x05, 0x1f, 0xbd, 0x80, 0x0a, - 0x37, 0x7b, 0xa0, 0x5b, 0x47, 0x44, 0x3e, 0xe5, 0xb7, 0xc6, 0x88, 0x7f, 0x28, 0x2a, 0xfa, 0x8d, - 0x02, 0xd5, 0x48, 0xe1, 0xc3, 0x7e, 0x98, 0x1d, 0xb9, 0x84, 0xb7, 0xc7, 0x9f, 0x86, 0x91, 0x49, - 0xd0, 0xef, 0x14, 0x78, 0x4b, 0x62, 0x9c, 0x9b, 0x9b, 0xad, 0xf1, 0x45, 0x1d, 0x87, 0x27, 0xa3, - 0x6b, 0x60, 0x28, 0x9f, 0xac, 0xed, 0xef, 0x48, 0xd7, 0x10, 0x1e, 0xf4, 0x47, 0x05, 0x6a, 0x72, - 0xfb, 0xdc, 0x29, 0xfb, 0xde, 0xf8, 0xd2, 0x8e, 0x49, 0x85, 0x6a, 0xb0, 0x10, 0xdc, 0x6e, 0x9e, - 0x51, 0xa2, 0x77, 0x9f, 0xe9, 0xa6, 0xe9, 0x11, 0xdf, 0x27, 0x3e, 0x9e, 0xa8, 0x94, 0xaa, 0xd3, - 0xda, 0xf9, 0x60, 0xe8, 0x11, 0xd1, 0xbb, 0x8d, 0x70, 0x00, 0x7d, 0x0a, 0x4b, 0x6c, 0x3f, 0xbe, - 0xaf, 0xfb, 0x94, 0x97, 0xbe, 0x3b, 0x6e, 0xb7, 0x6b, 0x51, 0x7c, 0xbb, 0x60, 0xd7, 0x0c, 0x54, - 0xfa, 0x5c, 0x25, 0xd3, 0xcd, 0x6a, 0x98, 0x26, 0x07, 0x42, 0xfb, 0xb0, 0x1c, 0x0d, 0x88, 0x9a, - 0x27, 0x28, 0xbe, 0x7f, 0x6c, 0x8a, 0x1c, 0x24, 0xf5, 0x31, 0x9c, 0x4b, 0xf5, 0xdb, 0x10, 0x86, - 0x33, 0x61, 0xf3, 0x4e, 0x61, 0xcd, 0xbb, 0xf0, 0x11, 0x5d, 0x83, 0xd3, 0xec, 0x4f, 0x3c, 0xc1, - 0xba, 0x81, 0x0b, 0x12, 0x7e, 0x8d, 0x5b, 0xa8, 0xf7, 0x04, 0xee, 0xa0, 0xed, 0x55, 0x80, 0x8b, - 0xe1, 0x8c, 0x30, 0x62, 0xc8, 0xd3, 0x5a, 0xf8, 0xa8, 0xee, 0xc1, 0x92, 0xb4, 0xeb, 0x55, 0x00, - 0x56, 0x81, 0x99, 0x98, 0x21, 0x03, 0x2c, 0x69, 0xf1, 0x57, 0xea, 0x2f, 0x14, 0xc0, 0x79, 0x8d, - 0xa3, 0x93, 0x00, 0xa3, 0x1b, 0x30, 0xc5, 0x51, 0x58, 0xd7, 0x33, 0xd3, 0x2e, 0x15, 0xad, 0x29, - 0x61, 0xa3, 0x52, 0x58, 0x90, 0xb4, 0x62, 0xc6, 0x99, 0xa6, 0x20, 0x31, 0xcc, 0x59, 0xf0, 0x2e, - 0x48, 0x78, 0x35, 0x6e, 0xa1, 0x7e, 0xa5, 0x80, 0x3a, 0xbc, 0x37, 0x33, 0x96, 0x8a, 0xc7, 0xb0, - 0x28, 0xed, 0x0f, 0x71, 0x51, 0x6a, 0xfa, 0x94, 0x2c, 0xe9, 0x08, 0x49, 0xfd, 0xd5, 0xdf, 0x2a, - 0x70, 0x3e, 0x73, 0x77, 0x1c, 0x4b, 0x61, 0x0b, 0x4a, 0x77, 0x89, 0xc1, 0x04, 0x9d, 0xe0, 0x7c, - 0x15, 0x60, 0xa8, 0x5d, 0x98, 0x4b, 0x9c, 0xce, 0x0b, 0xf4, 0x34, 0xa1, 0xd4, 0x72, 0xf8, 0x82, - 0x19, 0xa7, 0x47, 0x12, 0x38, 0xab, 0xbf, 0xca, 0xcc, 0x41, 0x6b, 0xcc, 0x2c, 0x09, 0x35, 0xa5, - 0x93, 0xa8, 0xf9, 0x9b, 0x02, 0x97, 0x46, 0xe9, 0x4d, 0x14, 0x08, 0xdc, 0x80, 0xe9, 0x41, 0x37, - 0x85, 0x4b, 0x1c, 0xbc, 0x08, 0xfc, 0xc2, 0x5e, 0x45, 0x89, 0xcb, 0x0f, 0x7b, 0x0e, 0x0d, 0x98, - 0x4b, 0x50, 0xe0, 0x49, 0xb6, 0xba, 0xd6, 0x73, 0xae, 0xac, 0xec, 0x4e, 0x9c, 0xf4, 0x50, 0xff, - 0xa1, 0xc0, 0xb5, 0x91, 0x9b, 0x06, 0xe9, 0xcf, 0x5e, 0xc9, 0x7e, 0xf6, 0xb1, 0x20, 0x27, 0x32, - 0x59, 0xc8, 0x09, 0xe3, 0x03, 0x98, 0x4f, 0x33, 0x89, 0x48, 0x52, 0x47, 0xee, 0xcc, 0x05, 0x3f, - 0xe3, 0xa7, 0x7e, 0x06, 0xab, 0xb9, 0x6d, 0x89, 0xf8, 0x42, 0x50, 0x92, 0x0b, 0x21, 0x5f, 0x76, - 0x2a, 0xe4, 0x52, 0xb6, 0x84, 0x7e, 0x39, 0x01, 0x3f, 0x18, 0xbf, 0x49, 0x71, 0xa2, 0x39, 0x4d, - 0x2c, 0x9c, 0x52, 0xc1, 0xc2, 0x99, 0x4c, 0xce, 0xf8, 0x3e, 0xe0, 0x3c, 0x3d, 0xf8, 0x34, 0x9b, - 0xf9, 0x2b, 0xd2, 0x35, 0x94, 0x6d, 0xb1, 0xe4, 0xe2, 0xa8, 0xbf, 0x57, 0x40, 0x1d, 0xde, 0x2d, - 0x49, 0x86, 0xa0, 0x14, 0x84, 0x30, 0x91, 0x0c, 0x21, 0x36, 0x29, 0xa5, 0xc2, 0x8c, 0x4d, 0x4a, - 0x37, 0xbd, 0x95, 0x9c, 0x26, 0xcb, 0x58, 0x65, 0xe4, 0x36, 0x4c, 0x47, 0x00, 0xa2, 0xc2, 0xaf, - 0x24, 0xe7, 0x6f, 0xd0, 0xc4, 0x19, 0x58, 0xaa, 0x3f, 0x57, 0x60, 0x59, 0xde, 0xa5, 0x19, 0x4b, - 0xc5, 0x16, 0x9c, 0x0d, 0xfd, 0x85, 0x88, 0xe5, 0xa4, 0x88, 0xa8, 0x07, 0x14, 0xd9, 0xa9, 0x2f, - 0x00, 0xe7, 0xb5, 0x68, 0x82, 0xcc, 0x44, 0x63, 0x61, 0x66, 0xa2, 0x17, 0xe8, 0x87, 0x30, 0x1b, - 0xb7, 0x16, 0xc7, 0xa0, 0xb5, 0x24, 0x63, 0xa2, 0xe5, 0x93, 0xb0, 0x57, 0x69, 0x7c, 0xcf, 0x28, - 0xde, 0xc3, 0xc4, 0x4e, 0x35, 0xf1, 0x1d, 0xec, 0x54, 0x5f, 0x2a, 0xb0, 0x51, 0xd4, 0xb4, 0x39, - 0xd1, 0x91, 0xe7, 0x5d, 0x80, 0x58, 0xc3, 0x88, 0xa7, 0x00, 0xe7, 0xac, 0x03, 0x5f, 0x8b, 0xd9, - 0xaa, 0x9f, 0x2b, 0xb0, 0x5e, 0xd0, 0xfa, 0x39, 0x91, 0xaa, 0xdb, 0x30, 0x3d, 0x68, 0x3a, 0x49, - 0x17, 0xe7, 0xa0, 0xc5, 0x34, 0xb0, 0x54, 0xff, 0xaa, 0xc0, 0xe5, 0x91, 0x9a, 0x47, 0x27, 0x12, - 0xb7, 0x07, 0x0b, 0x12, 0x48, 0x21, 0x33, 0xf5, 0x7f, 0x75, 0xb2, 0xc6, 0x95, 0xcc, 0x5b, 0xfd, - 0x83, 0x02, 0xe5, 0xe2, 0xb6, 0xd4, 0x89, 0x34, 0xbf, 0x07, 0x33, 0x31, 0x2c, 0xa1, 0x75, 0x35, - 0xa9, 0x35, 0x66, 0xa0, 0xc5, 0xad, 0xd5, 0xa7, 0x30, 0x9f, 0x6e, 0x1c, 0x15, 0x88, 0xb9, 0x01, - 0x53, 0xa2, 0x4f, 0x34, 0x21, 0x3b, 0x44, 0x8b, 0x7e, 0x90, 0xb0, 0x09, 0xce, 0x86, 0xe5, 0xe2, - 0xd6, 0x51, 0x01, 0xd5, 0x63, 0x58, 0x94, 0x79, 0x08, 0x62, 0x55, 0x9a, 0x8a, 0x64, 0x5b, 0x4a, - 0xea, 0xaf, 0xfe, 0x29, 0x26, 0x4a, 0x7e, 0x3b, 0x1d, 0xab, 0xd8, 0x7d, 0x00, 0xf3, 0xb1, 0xcb, - 0x1d, 0xc3, 0x11, 0x99, 0x48, 0xb7, 0xe9, 0x52, 0x56, 0x5a, 0xc6, 0x4f, 0xfd, 0xfb, 0x60, 0xa9, - 0x17, 0xdf, 0xa3, 0x0b, 0x94, 0xae, 0xc1, 0x59, 0xe1, 0xf4, 0xb6, 0x90, 0x1a, 0x3d, 0xc7, 0xc6, - 0xb6, 0xc4, 0x26, 0x1d, 0x3d, 0x4b, 0xe3, 0x98, 0x1c, 0x33, 0x8e, 0x2f, 0x06, 0xc5, 0x4d, 0x7a, - 0xf1, 0x2d, 0x90, 0xff, 0x33, 0x58, 0x92, 0xba, 0x88, 0xf4, 0x5f, 0xcc, 0xd5, 0x12, 0xbf, 0xb9, - 0x4b, 0x5f, 0x37, 0xb5, 0xaf, 0x5f, 0x95, 0x95, 0x6f, 0x5e, 0x95, 0x95, 0xff, 0xbc, 0x2a, 0x2b, - 0x9f, 0xbf, 0x2e, 0x9f, 0xfa, 0xe6, 0x75, 0xf9, 0xd4, 0xbf, 0x5e, 0x97, 0x4f, 0x3d, 0x7d, 0x77, - 0xc4, 0x12, 0xfe, 0xa2, 0x3e, 0xf8, 0xf1, 0x0e, 0xfb, 0x4d, 0xcf, 0xfe, 0x14, 0xfb, 0x8d, 0xce, - 0xf6, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x4d, 0xb1, 0x25, 0x12, 0x00, 0x25, 0x00, 0x00, + 0x15, 0x37, 0xb5, 0xb2, 0x6c, 0x3d, 0x49, 0xb1, 0x34, 0xfa, 0x1a, 0x7d, 0x78, 0xb5, 0xa1, 0x3f, + 0x22, 0x39, 0xf6, 0xca, 0x91, 0xea, 0xda, 0x68, 0x80, 0xa2, 0x92, 0x6d, 0x35, 0x9b, 0x3a, 0xb6, + 0x40, 0x39, 0x72, 0xeb, 0x04, 0x70, 0xa8, 0xe5, 0xec, 0x8a, 0x10, 0x97, 0xdc, 0x70, 0x66, 0x65, + 0xfb, 0xd6, 0x43, 0x7a, 0x6a, 0x81, 0x04, 0x4d, 0x0a, 0xb4, 0xe8, 0xa5, 0xc7, 0x1e, 0x73, 0xe8, + 0xa1, 0x40, 0xcf, 0x05, 0x72, 0x29, 0x10, 0xf4, 0x54, 0xf4, 0x10, 0x14, 0xf6, 0xa1, 0xff, 0x46, + 0xc0, 0x99, 0x21, 0x97, 0x1f, 0x43, 0xee, 0x6a, 0x95, 0x8b, 0x21, 0x72, 0xde, 0xfb, 0xfd, 0x7e, + 0x6f, 0xde, 0xf0, 0xcd, 0xcc, 0xf3, 0xc2, 0x22, 0x69, 0xd9, 0x94, 0xda, 0x9e, 0x4b, 0xd7, 0x8f, + 0x37, 0xd7, 0x9b, 0xc4, 0x25, 0xd4, 0xa6, 0xd5, 0xb6, 0xef, 0x31, 0x0f, 0x8d, 0x47, 0x63, 0xd5, + 0xe3, 0xcd, 0xc5, 0x29, 0xb3, 0x65, 0xbb, 0xde, 0x3a, 0xff, 0x57, 0x18, 0x2c, 0x2e, 0xd4, 0x3d, + 0xda, 0xf2, 0xe8, 0x33, 0xfe, 0xb4, 0x2e, 0x1e, 0xe4, 0xd0, 0x7c, 0x02, 0xd7, 0xf5, 0x2c, 0x22, + 0x07, 0x70, 0x6a, 0xc0, 0xad, 0x87, 0x23, 0x0b, 0x89, 0x91, 0xb6, 0xe9, 0x9b, 0xad, 0x10, 0x2d, + 0xa9, 0xd2, 0x27, 0xed, 0x0e, 0x23, 0xbe, 0x12, 0x90, 0xd6, 0x3d, 0x5f, 0x4d, 0x45, 0x99, 0x79, + 0xa4, 0x1e, 0x61, 0x5e, 0xdb, 0xae, 0xab, 0x47, 0x5e, 0xb6, 0x09, 0x55, 0xca, 0x7b, 0xee, 0xf9, + 0x47, 0x91, 0x84, 0x99, 0xa6, 0xd7, 0xf4, 0xc4, 0x24, 0x04, 0x7f, 0x89, 0xb7, 0xfa, 0xe7, 0x6b, + 0x30, 0xfe, 0x73, 0x31, 0xa1, 0x7b, 0xcc, 0x64, 0x04, 0x6d, 0xc0, 0x88, 0x88, 0x0a, 0x6b, 0x15, + 0x6d, 0x75, 0x6c, 0x63, 0xa6, 0x1a, 0x9f, 0xe0, 0xea, 0x2e, 0x1f, 0xdb, 0x1e, 0xfe, 0xe6, 0xbb, + 0x95, 0x33, 0x86, 0xb4, 0x44, 0x15, 0x18, 0x73, 0xc9, 0x0b, 0xf6, 0x38, 0x90, 0x58, 0xb3, 0x70, + 0xa9, 0xa2, 0xad, 0x0e, 0x1b, 0xf1, 0x57, 0xe8, 0x16, 0x8c, 0xf0, 0x00, 0x28, 0x1e, 0xae, 0x94, + 0x56, 0xc7, 0x36, 0x2e, 0x26, 0x51, 0xa5, 0xd9, 0x96, 0x6b, 0xf1, 0xbf, 0x0c, 0x69, 0x8c, 0x74, + 0x18, 0x37, 0xeb, 0xcc, 0x3e, 0x26, 0x8f, 0x85, 0xf3, 0xd9, 0x4a, 0x69, 0x75, 0xd8, 0x48, 0xbc, + 0x43, 0xd7, 0x60, 0xd2, 0x27, 0xcf, 0x4d, 0xdf, 0x32, 0x0f, 0x9c, 0xd0, 0x6e, 0x84, 0xdb, 0x65, + 0xde, 0xa3, 0x2d, 0x18, 0xe7, 0xc8, 0x4f, 0xf8, 0xc4, 0x50, 0x7c, 0x2e, 0x57, 0xcc, 0x96, 0x6b, + 0x6d, 0xd5, 0x99, 0xe7, 0xd7, 0x2c, 0x23, 0xe1, 0x82, 0xee, 0xc2, 0x04, 0x7f, 0x36, 0x44, 0x7e, + 0x29, 0x3e, 0xdf, 0x0f, 0x46, 0xd2, 0x07, 0x3d, 0x82, 0x49, 0xf9, 0x22, 0x10, 0xf8, 0x30, 0x58, + 0x5f, 0x78, 0x94, 0xe3, 0x5c, 0xca, 0x9b, 0x98, 0x6d, 0xc7, 0xab, 0x1f, 0xbd, 0x47, 0xec, 0xe6, + 0x21, 0x33, 0x32, 0xce, 0xe8, 0x29, 0xcc, 0xd8, 0x6e, 0x83, 0xf8, 0xc4, 0xdf, 0x0b, 0xd6, 0x16, + 0xdd, 0x7e, 0xc9, 0xed, 0x31, 0x70, 0xd0, 0xab, 0x4a, 0xd0, 0x18, 0xa2, 0x70, 0x32, 0x94, 0x18, + 0xe8, 0x13, 0x98, 0x6f, 0x78, 0x3e, 0xa9, 0x9b, 0x94, 0xa5, 0xe1, 0xc7, 0x4e, 0x04, 0x9f, 0x07, + 0x13, 0xa8, 0x97, 0x9f, 0x4b, 0x12, 0x7e, 0xfc, 0x64, 0xea, 0x55, 0x18, 0xa8, 0x0e, 0x4b, 0x8e, + 0xc9, 0x08, 0x65, 0xb5, 0x64, 0x6c, 0x22, 0x9f, 0x78, 0x82, 0x53, 0xbc, 0xa9, 0x9e, 0x75, 0x91, + 0x3c, 0xee, 0x61, 0x14, 0xa1, 0x20, 0x1b, 0xca, 0x62, 0x78, 0x27, 0x13, 0xa1, 0xe4, 0x79, 0xa3, + 0x5f, 0x9e, 0x1e, 0x40, 0x88, 0xc0, 0xb2, 0xb0, 0x30, 0x92, 0xd1, 0xca, 0x47, 0x7c, 0xa1, 0x5f, + 0xa2, 0x42, 0x18, 0xe4, 0xc3, 0x92, 0x9c, 0xce, 0x07, 0x36, 0x65, 0xc4, 0xb5, 0xdd, 0xe6, 0x5d, + 0x8f, 0x34, 0x1a, 0x76, 0xdd, 0x26, 0x2e, 0xc3, 0x93, 0x9c, 0xe5, 0x66, 0x11, 0x8b, 0xca, 0xcf, + 0x28, 0x02, 0x45, 0x04, 0x2e, 0xb6, 0x7d, 0x72, 0x6c, 0x7b, 0x1d, 0x2a, 0x65, 0x88, 0x25, 0xbe, + 0xe3, 0x07, 0x1f, 0xbc, 0xe7, 0xe2, 0x29, 0xce, 0xba, 0x52, 0xc4, 0x7a, 0x8f, 0xd4, 0x8d, 0x62, + 0x14, 0x64, 0xc3, 0x4a, 0x68, 0x20, 0xb2, 0xe9, 0xd6, 0x49, 0x8a, 0x08, 0xf5, 0x47, 0xd4, 0x0b, + 0x07, 0x35, 0xa1, 0x1c, 0x9a, 0x84, 0x09, 0x4d, 0x31, 0x4d, 0xf7, 0xc7, 0xd4, 0x03, 0x06, 0xd5, + 0x61, 0x39, 0x6d, 0x21, 0x73, 0x6a, 0x98, 0xcc, 0xf6, 0xf0, 0x4c, 0x7f, 0x34, 0x85, 0x20, 0x68, + 0x17, 0x80, 0x79, 0xcc, 0x74, 0xf6, 0x82, 0x4d, 0x0a, 0xcf, 0x56, 0xb4, 0xd5, 0xd1, 0xed, 0x9b, + 0xc1, 0x46, 0xf0, 0xdf, 0xef, 0x56, 0x66, 0xc5, 0xc6, 0x4a, 0xad, 0xa3, 0xaa, 0xed, 0xad, 0xb7, + 0x4c, 0x76, 0x58, 0xad, 0xb9, 0xec, 0xdf, 0x7f, 0xbb, 0x01, 0x72, 0xc7, 0xad, 0xb9, 0xec, 0xaf, + 0xff, 0xff, 0xfa, 0x9a, 0x66, 0xc4, 0x30, 0xd0, 0xbb, 0x01, 0x62, 0xdb, 0xae, 0x0b, 0xc4, 0x39, + 0x2e, 0x72, 0x29, 0xaf, 0x02, 0xd6, 0x5c, 0x66, 0xc4, 0xcc, 0xd1, 0x87, 0x30, 0xcb, 0xb7, 0x4b, + 0x99, 0xe5, 0xad, 0x0e, 0x3b, 0xf4, 0x7c, 0x9b, 0xbd, 0xc4, 0xf3, 0xbd, 0x83, 0x0d, 0xb0, 0xd4, + 0xde, 0x11, 0xec, 0x5e, 0xa7, 0xb5, 0xe3, 0x7b, 0xad, 0x7b, 0xc4, 0x21, 0x4d, 0x93, 0x79, 0x3e, + 0xc6, 0x27, 0x81, 0x4d, 0x7b, 0xa3, 0x8f, 0xe1, 0x82, 0x25, 0x1e, 0x88, 0xc5, 0xf5, 0x53, 0xbc, + 0xc0, 0x01, 0x37, 0x94, 0x80, 0x91, 0xa3, 0xd4, 0x17, 0x3d, 0xd7, 0xdc, 0x86, 0x67, 0xa4, 0xa1, + 0x82, 0x85, 0xc6, 0x69, 0x13, 0x9c, 0xf4, 0xc3, 0xb6, 0xe7, 0x86, 0x75, 0x61, 0xb1, 0x3f, 0xf5, + 0x3d, 0x60, 0xd0, 0x13, 0x98, 0x0b, 0xb9, 0xc5, 0x12, 0xdc, 0x25, 0xfe, 0xde, 0xa1, 0xe9, 0x13, + 0xbc, 0xd4, 0xdf, 0x12, 0xcb, 0x71, 0x47, 0x47, 0x30, 0x23, 0xf3, 0xd1, 0xf2, 0x8e, 0x4d, 0x27, + 0xda, 0x03, 0x96, 0x39, 0xec, 0xed, 0x24, 0x6c, 0xac, 0xf8, 0x4b, 0x86, 0xb0, 0x8c, 0xc5, 0x20, + 0xf8, 0x4c, 0x29, 0x41, 0xd1, 0x47, 0x19, 0x32, 0xae, 0x10, 0x5f, 0xe4, 0x64, 0x6f, 0x25, 0xc9, + 0xa4, 0xf8, 0xec, 0xbe, 0x63, 0x28, 0x41, 0xd0, 0xef, 0x34, 0x58, 0x0e, 0x83, 0xdc, 0x53, 0x85, + 0x54, 0xe6, 0x2c, 0xef, 0xf5, 0x0a, 0x29, 0x67, 0x09, 0x90, 0x4c, 0x8c, 0x85, 0x6c, 0x88, 0xe5, + 0xaa, 0x11, 0x31, 0xaf, 0xa8, 0x4a, 0x79, 0x9a, 0x5b, 0x11, 0x7c, 0x21, 0x2a, 0xba, 0x0f, 0x60, + 0x87, 0x45, 0x91, 0xe2, 0x0a, 0xe7, 0xb8, 0x52, 0xbc, 0xf8, 0xc2, 0x12, 0x1a, 0x73, 0x44, 0xdb, + 0x30, 0x1a, 0x1e, 0x1a, 0x28, 0x7e, 0x93, 0xa3, 0x5c, 0x2e, 0x42, 0x89, 0xca, 0x63, 0xd7, 0x0d, + 0xfd, 0x0c, 0xce, 0x3d, 0x97, 0xe7, 0x3d, 0x5d, 0x75, 0xa0, 0x78, 0x60, 0x1f, 0xec, 0x6e, 0xb4, + 0x7f, 0x41, 0x5e, 0x6e, 0xb9, 0xd6, 0xa3, 0x46, 0xa3, 0x7e, 0x68, 0xda, 0xee, 0x43, 0xcf, 0x22, + 0x46, 0xe8, 0x86, 0xb6, 0xe1, 0xbc, 0x1f, 0x1e, 0xf7, 0x2e, 0x9d, 0x08, 0x22, 0xf2, 0x43, 0xf7, + 0xe1, 0x02, 0xaf, 0x5d, 0x3b, 0x84, 0x18, 0xe4, 0x98, 0xb8, 0x1d, 0x82, 0x2f, 0xf7, 0xae, 0x77, + 0x69, 0x1f, 0xf4, 0x01, 0x4c, 0x87, 0x35, 0x9a, 0x5b, 0x3e, 0xe1, 0xc9, 0xc0, 0x57, 0x8a, 0xa1, + 0x82, 0x0f, 0x4f, 0xe5, 0x87, 0x76, 0x61, 0xc2, 0x74, 0x9c, 0x5a, 0x37, 0x53, 0x57, 0x39, 0xd0, + 0xb5, 0x5e, 0x47, 0xae, 0xae, 0x87, 0x91, 0x04, 0x40, 0x1f, 0xc0, 0xb8, 0xe9, 0x38, 0x3b, 0x51, + 0xd2, 0xde, 0xe2, 0x80, 0x6b, 0xbd, 0x00, 0x23, 0x07, 0x23, 0xe1, 0x8e, 0x3e, 0x82, 0x37, 0x4c, + 0xc7, 0x79, 0xe0, 0x51, 0xba, 0xdd, 0x71, 0x2d, 0x87, 0x50, 0xbc, 0xca, 0x01, 0x37, 0x7b, 0x01, + 0xca, 0x85, 0xbb, 0x6f, 0x3a, 0x1d, 0x22, 0x5d, 0x8d, 0x14, 0x14, 0xfa, 0x18, 0x90, 0x4b, 0x58, + 0x90, 0xe5, 0x38, 0xc1, 0x1a, 0x27, 0xb8, 0xde, 0x8b, 0x20, 0x81, 0xac, 0xc0, 0x41, 0x5f, 0x6a, + 0xb0, 0x1a, 0xce, 0xf9, 0x2e, 0xf1, 0xeb, 0xc4, 0x65, 0x66, 0x53, 0x96, 0xbd, 0xc7, 0x1e, 0xff, + 0x6a, 0xac, 0xe8, 0x16, 0x71, 0x8d, 0xef, 0xa6, 0xb7, 0xe5, 0x6e, 0xba, 0xde, 0xb4, 0xd9, 0x61, + 0xe7, 0xa0, 0x5a, 0xf7, 0x5a, 0xeb, 0xa6, 0xe3, 0x78, 0xbe, 0x79, 0x43, 0x12, 0x84, 0x8f, 0x7c, + 0x89, 0x89, 0x7d, 0x36, 0x48, 0x6e, 0xdf, 0x44, 0xc8, 0x80, 0x29, 0xaf, 0x4d, 0x5c, 0x71, 0x9a, + 0x7c, 0x62, 0xbb, 0x96, 0xf7, 0x9c, 0xe2, 0xdb, 0xaa, 0x2f, 0x2b, 0x16, 0x6b, 0x78, 0x31, 0xab, + 0x59, 0xd4, 0xc8, 0xba, 0xa3, 0x5f, 0xc2, 0x7c, 0xc7, 0x6d, 0x74, 0x9c, 0x86, 0xed, 0x38, 0xc4, + 0x12, 0x63, 0xfc, 0x5e, 0x42, 0xf1, 0xdb, 0x1c, 0xb9, 0x9c, 0xb7, 0x30, 0x85, 0x95, 0x91, 0xe7, + 0x8e, 0x0e, 0x01, 0xc7, 0x86, 0x64, 0x10, 0x12, 0xfa, 0x7a, 0x41, 0x9e, 0xb6, 0x5c, 0x2b, 0x3a, + 0xfc, 0x7d, 0xda, 0x21, 0x94, 0x49, 0xa2, 0x5c, 0x34, 0x54, 0x83, 0x09, 0xc7, 0xa4, 0xec, 0x9e, + 0x6f, 0xb7, 0x45, 0x95, 0xbe, 0xd3, 0xff, 0x7d, 0x2c, 0xe9, 0x89, 0xdc, 0xd4, 0x95, 0xe3, 0xa1, + 0x48, 0x9d, 0x41, 0x9a, 0x3e, 0x61, 0x14, 0xdf, 0x28, 0xd2, 0x2d, 0xf7, 0x1a, 0xbb, 0x15, 0x94, + 0xd5, 0x56, 0x9b, 0x58, 0x7c, 0x99, 0x19, 0x45, 0x80, 0x88, 0x65, 0x6f, 0x1f, 0x29, 0xca, 0xea, + 0x00, 0x94, 0x3d, 0x30, 0xd1, 0x6f, 0x34, 0xb8, 0x24, 0x4c, 0x1e, 0xb9, 0xa4, 0xe6, 0xe6, 0x72, + 0xaf, 0x17, 0x7c, 0xaf, 0x92, 0x3b, 0x4f, 0x42, 0x3f, 0xf8, 0xe8, 0x05, 0x54, 0x84, 0xd9, 0x43, + 0xd3, 0x3e, 0x26, 0xea, 0x29, 0xbf, 0x39, 0x40, 0xfc, 0x3d, 0x51, 0xd1, 0xe7, 0x1a, 0xac, 0x46, + 0x0a, 0x1f, 0x75, 0xc2, 0xec, 0xa8, 0x25, 0xbc, 0x33, 0xf8, 0x34, 0xf4, 0x4d, 0x82, 0xfe, 0xa0, + 0xc1, 0xdb, 0x0a, 0xe3, 0xdc, 0xdc, 0x6c, 0x0c, 0x2e, 0xea, 0x24, 0x3c, 0x19, 0x5d, 0x5d, 0x43, + 0xf5, 0x64, 0x6d, 0xfe, 0x40, 0xba, 0x7a, 0xf0, 0xa0, 0x3f, 0x6b, 0x50, 0x55, 0xdb, 0xe7, 0x4e, + 0xd9, 0x8f, 0x06, 0x97, 0x76, 0x42, 0x2a, 0x54, 0x85, 0xe9, 0xe0, 0xf2, 0xf5, 0x8c, 0x11, 0xb3, + 0xf5, 0xcc, 0xb4, 0x2c, 0x9f, 0x50, 0x4a, 0x28, 0x1e, 0xaa, 0x94, 0x56, 0x47, 0x8d, 0xa9, 0x60, + 0xe8, 0x31, 0x31, 0x5b, 0x5b, 0xe1, 0x00, 0xfa, 0x04, 0x66, 0xf9, 0x71, 0xe1, 0x81, 0x49, 0x99, + 0xa8, 0xa2, 0x77, 0xbd, 0x56, 0xcb, 0x66, 0xf8, 0x56, 0xc1, 0xa6, 0x1e, 0xa8, 0xa4, 0x42, 0x25, + 0xd7, 0xcd, 0xcb, 0xa1, 0xa1, 0x06, 0x42, 0x07, 0x30, 0x17, 0x0d, 0xc8, 0xf2, 0x29, 0x29, 0x7e, + 0x7c, 0x62, 0x8a, 0x1c, 0x24, 0x7d, 0x1f, 0x2e, 0xa4, 0xda, 0x81, 0x08, 0xc3, 0xb9, 0xb0, 0xb7, + 0xa8, 0xf1, 0xde, 0x62, 0xf8, 0x88, 0xd6, 0xe0, 0x2c, 0xff, 0x13, 0x0f, 0xf1, 0x66, 0xe5, 0xb4, + 0x82, 0xdf, 0x10, 0x16, 0xfa, 0x7d, 0x89, 0xdb, 0xed, 0xca, 0x15, 0xe0, 0x62, 0x38, 0x27, 0x8d, + 0x38, 0xf2, 0xa8, 0x11, 0x3e, 0xea, 0x7b, 0x30, 0xab, 0xdc, 0x04, 0x0a, 0xc0, 0x2a, 0x30, 0x16, + 0x33, 0xe4, 0x80, 0x25, 0x23, 0xfe, 0x4a, 0xdf, 0x87, 0x39, 0xf5, 0x6e, 0x9b, 0xf6, 0xd5, 0x32, + 0xbe, 0x68, 0x11, 0xce, 0x87, 0xd6, 0x7c, 0x69, 0x0c, 0x1b, 0xd1, 0xb3, 0xfe, 0x99, 0x06, 0x38, + 0xaf, 0x5f, 0x76, 0x1a, 0xc1, 0xe8, 0x3a, 0x8c, 0x08, 0x14, 0xde, 0xec, 0xcd, 0x74, 0x89, 0x65, + 0x47, 0x4e, 0xda, 0xe8, 0x0c, 0xa6, 0x15, 0x1d, 0xa8, 0x41, 0xa6, 0x3f, 0x48, 0x38, 0x77, 0x96, + 0xbc, 0xd3, 0x0a, 0x5e, 0x43, 0x58, 0xe8, 0x5f, 0x6b, 0xa0, 0xf7, 0x6e, 0x49, 0x0d, 0xa4, 0x62, + 0x1f, 0x66, 0x94, 0x6d, 0x31, 0x21, 0x4a, 0x4f, 0x5f, 0x0e, 0x14, 0x8d, 0x30, 0xa5, 0xbf, 0xfe, + 0x7b, 0x0d, 0xa6, 0x32, 0x57, 0xe6, 0x81, 0x14, 0xd6, 0xa0, 0x74, 0x8f, 0xd4, 0xb9, 0xa0, 0x53, + 0x1c, 0x2b, 0x03, 0x0c, 0xbd, 0x05, 0x13, 0x89, 0x4b, 0x49, 0x81, 0x9e, 0x6d, 0x28, 0xd5, 0x5c, + 0xb1, 0x60, 0x06, 0x69, 0x0d, 0x05, 0xce, 0xfa, 0x6f, 0x33, 0x73, 0x50, 0x1b, 0x30, 0x4b, 0x52, + 0x4d, 0xe9, 0x34, 0x6a, 0xfe, 0xa1, 0xc1, 0xe5, 0x7e, 0x5a, 0x32, 0x05, 0x02, 0x97, 0x61, 0xb4, + 0xdb, 0x44, 0x12, 0x12, 0xbb, 0x2f, 0x02, 0xbf, 0xb0, 0x45, 0x53, 0x12, 0xf2, 0xc3, 0x56, 0xcb, + 0x16, 0x4c, 0x24, 0x28, 0xf0, 0x30, 0x5f, 0x5d, 0x4b, 0x39, 0x37, 0x75, 0xde, 0x0a, 0x48, 0x7a, + 0xe8, 0xff, 0xd2, 0x60, 0xad, 0xef, 0x5e, 0x49, 0x1f, 0xb5, 0x26, 0x16, 0xe4, 0x50, 0x26, 0x0b, + 0x39, 0x61, 0xbc, 0x0f, 0x93, 0x69, 0x26, 0x19, 0x49, 0xea, 0x56, 0x90, 0xe9, 0x6b, 0x64, 0xfc, + 0xf4, 0x4f, 0x61, 0x21, 0xb7, 0x1b, 0x13, 0x5f, 0x08, 0x5a, 0x72, 0x21, 0xe4, 0xcb, 0x4e, 0x85, + 0x5c, 0xca, 0x96, 0xe6, 0xaf, 0x86, 0xe0, 0x27, 0x83, 0xf7, 0x66, 0x4e, 0x35, 0xa7, 0x89, 0x85, + 0x53, 0x2a, 0x58, 0x38, 0xc3, 0xc9, 0x19, 0x3f, 0x00, 0x9c, 0xa7, 0x07, 0x9f, 0xe5, 0x33, 0x7f, + 0x55, 0xb9, 0x86, 0xb2, 0x9d, 0xa5, 0x5c, 0x1c, 0xfd, 0x8f, 0x1a, 0xe8, 0xbd, 0x9b, 0x44, 0xc9, + 0x10, 0xb4, 0x82, 0x10, 0x86, 0x92, 0x21, 0xc4, 0x26, 0xa5, 0x54, 0x98, 0xb1, 0xe1, 0x6c, 0xc6, + 0x3e, 0xd3, 0x60, 0x3e, 0xa7, 0xb7, 0x34, 0x50, 0x19, 0xb9, 0x05, 0xa3, 0x11, 0x80, 0xac, 0xf0, + 0xf3, 0xc9, 0xf9, 0xeb, 0xf6, 0xae, 0xba, 0x96, 0xfa, 0xaf, 0x35, 0x98, 0x53, 0x37, 0xa7, 0x06, + 0x52, 0xb1, 0x01, 0xe7, 0x43, 0x7f, 0x29, 0x62, 0x2e, 0x29, 0x22, 0x6a, 0x7d, 0x45, 0x76, 0xfa, + 0x0b, 0xc0, 0x79, 0x9d, 0xa9, 0x20, 0x33, 0xd1, 0x58, 0x98, 0x99, 0xe8, 0x05, 0xfa, 0x29, 0x8c, + 0xc7, 0xad, 0xe5, 0xf1, 0x6a, 0x31, 0xc9, 0x98, 0xe8, 0x74, 0x25, 0xec, 0x75, 0x16, 0xdf, 0x33, + 0x8a, 0xf7, 0x30, 0xb9, 0x53, 0x0d, 0xfd, 0x00, 0x3b, 0xd5, 0x57, 0x1a, 0x2c, 0x17, 0xf5, 0xaa, + 0x4e, 0x75, 0xe4, 0xb9, 0x03, 0x10, 0xeb, 0x93, 0x89, 0x14, 0xe0, 0x9c, 0x75, 0x40, 0x8d, 0x98, + 0xad, 0xfe, 0x85, 0x06, 0x4b, 0x05, 0x1d, 0xaf, 0x53, 0xa9, 0xba, 0x05, 0xa3, 0xdd, 0x5e, 0x9b, + 0x72, 0x71, 0x76, 0x3b, 0x6b, 0x5d, 0x4b, 0xfd, 0xef, 0x1a, 0x5c, 0xe9, 0xab, 0x67, 0x76, 0x2a, + 0x71, 0x7b, 0x30, 0xad, 0x80, 0x94, 0x32, 0x53, 0xff, 0x45, 0xa9, 0xea, 0xd7, 0xa9, 0xbc, 0xf5, + 0x3f, 0x69, 0x50, 0x2e, 0xee, 0xc6, 0x9d, 0x4a, 0xf3, 0xbb, 0x30, 0x16, 0xc3, 0x92, 0x5a, 0x17, + 0x92, 0x5a, 0x63, 0x06, 0x46, 0xdc, 0x5a, 0x7f, 0x0a, 0x93, 0xe9, 0xde, 0x56, 0x81, 0x98, 0xeb, + 0x30, 0x22, 0x5b, 0x59, 0x43, 0xaa, 0x43, 0xb4, 0x6c, 0x59, 0x49, 0x9b, 0xe0, 0x6c, 0x58, 0x2e, + 0xee, 0x6e, 0x15, 0x50, 0xed, 0xc3, 0x8c, 0xca, 0x43, 0x12, 0xeb, 0xca, 0x54, 0x24, 0x3b, 0x67, + 0x4a, 0x7f, 0xfd, 0x2f, 0x31, 0x51, 0xea, 0x5b, 0xef, 0x40, 0xc5, 0xee, 0x7d, 0x98, 0x8c, 0x5d, + 0x1a, 0x39, 0x8e, 0xcc, 0x44, 0xba, 0x93, 0x98, 0xb2, 0x32, 0x32, 0x7e, 0xfa, 0x3f, 0xbb, 0x4b, + 0xbd, 0xf8, 0x7e, 0x5e, 0xa0, 0x74, 0x11, 0xce, 0x4b, 0xa7, 0x77, 0xa4, 0xd4, 0xe8, 0x39, 0x36, + 0xb6, 0x21, 0x37, 0xe9, 0xe8, 0x59, 0x19, 0xc7, 0xf0, 0x80, 0x71, 0x7c, 0xd9, 0x2d, 0x6e, 0xca, + 0x0b, 0x75, 0x81, 0xfc, 0x5f, 0xc1, 0xac, 0xd2, 0x45, 0xa6, 0xff, 0x52, 0xae, 0x96, 0x78, 0x47, + 0x40, 0xf9, 0x7a, 0xdb, 0xf8, 0xe6, 0x55, 0x59, 0xfb, 0xf6, 0x55, 0x59, 0xfb, 0xdf, 0xab, 0xb2, + 0xf6, 0xc5, 0xeb, 0xf2, 0x99, 0x6f, 0x5f, 0x97, 0xcf, 0xfc, 0xe7, 0x75, 0xf9, 0xcc, 0xd3, 0x3b, + 0x7d, 0x96, 0xf0, 0x17, 0xeb, 0xdd, 0xdf, 0x2c, 0xf1, 0x9f, 0x32, 0x1d, 0x8c, 0xf0, 0x9f, 0x26, + 0x6d, 0x7e, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x41, 0x7c, 0xad, 0x67, 0xf7, 0x25, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -2327,6 +2401,38 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.LastDripBlock) > 0 { + for iNdEx := len(m.LastDripBlock) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.LastDripBlock[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xc2 + } + } + if len(m.OpenWorkerWindows) > 0 { + for iNdEx := len(m.OpenWorkerWindows) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.OpenWorkerWindows[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xba + } + } if len(m.TopicLastReputerCommit) > 0 { for iNdEx := len(m.TopicLastReputerCommit) - 1; iNdEx >= 0; iNdEx-- { { @@ -3254,6 +3360,52 @@ func (m *TopicIdAndBlockHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *BlockHeightAndTopicIds) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BlockHeightAndTopicIds) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BlockHeightAndTopicIds) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.TopicIds) > 0 { + dAtA8 := make([]byte, len(m.TopicIds)*10) + var j7 int + for _, num := range m.TopicIds { + for num >= 1<<7 { + dAtA8[j7] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j7++ + } + dAtA8[j7] = uint8(num) + j7++ + } + i -= j7 + copy(dAtA[i:], dAtA8[:j7]) + i = encodeVarintGenesis(dAtA, i, uint64(j7)) + i-- + dAtA[i] = 0x12 + } + if m.BlockHeight != 0 { + i = encodeVarintGenesis(dAtA, i, uint64(m.BlockHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *TopicIdBlockHeightScores) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4676,6 +4828,18 @@ func (m *GenesisState) Size() (n int) { n += 2 + l + sovGenesis(uint64(l)) } } + if len(m.OpenWorkerWindows) > 0 { + for _, e := range m.OpenWorkerWindows { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } + if len(m.LastDripBlock) > 0 { + for _, e := range m.LastDripBlock { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } return n } @@ -4726,6 +4890,25 @@ func (m *TopicIdAndBlockHeight) Size() (n int) { return n } +func (m *BlockHeightAndTopicIds) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BlockHeight != 0 { + n += 1 + sovGenesis(uint64(m.BlockHeight)) + } + if len(m.TopicIds) > 0 { + l = 0 + for _, e := range m.TopicIds { + l += sovGenesis(uint64(e)) + } + n += 1 + sovGenesis(uint64(l)) + l + } + return n +} + func (m *TopicIdBlockHeightScores) Size() (n int) { if m == nil { return 0 @@ -7127,6 +7310,74 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 55: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenWorkerWindows", 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.OpenWorkerWindows = append(m.OpenWorkerWindows, &BlockHeightAndTopicIds{}) + if err := m.OpenWorkerWindows[len(m.OpenWorkerWindows)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 56: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastDripBlock", 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.LastDripBlock = append(m.LastDripBlock, &TopicIdAndBlockHeight{}) + if err := m.LastDripBlock[len(m.LastDripBlock)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) @@ -7442,6 +7693,151 @@ func (m *TopicIdAndBlockHeight) Unmarshal(dAtA []byte) error { } return nil } +func (m *BlockHeightAndTopicIds) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BlockHeightAndTopicIds: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BlockHeightAndTopicIds: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + } + m.BlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BlockHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.TopicIds = append(m.TopicIds, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.TopicIds) == 0 { + m.TopicIds = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.TopicIds = append(m.TopicIds, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field TopicIds", wireType) + } + default: + iNdEx = preIndex + skippy, err := skipGenesis(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenesis + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *TopicIdBlockHeightScores) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/emissions/types/keys.go b/x/emissions/types/keys.go index 2e7291863..acc32a93e 100644 --- a/x/emissions/types/keys.go +++ b/x/emissions/types/keys.go @@ -79,4 +79,5 @@ var ( LatestOneOutForecasterInfererNetworkRegretsKey = collections.NewPrefix(64) LatestOneOutForecasterForecasterNetworkRegretsKey = collections.NewPrefix(65) PreviousForecasterScoreRatioKey = collections.NewPrefix(66) + LastDripBlockKey = collections.NewPrefix(67) ) diff --git a/x/emissions/types/params.go b/x/emissions/types/params.go index b65f718ac..ef7dc1b39 100644 --- a/x/emissions/types/params.go +++ b/x/emissions/types/params.go @@ -47,7 +47,6 @@ func DefaultParams() Params { 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 - TopicFeeRevenueDecayRate: alloraMath.MustNewDecFromString("0.0025"), // rate at which topic fee revenue decays over time 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 @@ -167,9 +166,6 @@ func (p Params) Validate() error { if err := validateCNorm(p.CNorm); err != nil { return err } - if err := validateTopicFeeRevenueDecayRate(p.TopicFeeRevenueDecayRate); err != nil { - return err - } if err := validateHalfMaxProcessStakeRemovalsEndBlock(p.HalfMaxProcessStakeRemovalsEndBlock); err != nil { return err } @@ -500,15 +496,6 @@ func validateBlocksPerMonth(i uint64) error { return nil } -// Percent by which effecive topic fee used in weight calculation drips -// Should be a value between 0 and 1. -func validateTopicFeeRevenueDecayRate(i alloraMath.Dec) error { - if !isAlloraDecBetweenZeroAndOneInclusive(i) { - return ErrValidationMustBeBetweenZeroAndOne - } - return nil -} - // this value should be greater than or equal to 1 func validateHalfMaxProcessStakeRemovalsEndBlock(i uint64) error { if i == 0 { diff --git a/x/emissions/types/params.pb.go b/x/emissions/types/params.pb.go index 544d32559..f24e7e16b 100644 --- a/x/emissions/types/params.pb.go +++ b/x/emissions/types/params.pb.go @@ -69,15 +69,14 @@ type Params struct { // forecasts MinEpochLengthRecordLimit int64 `protobuf:"varint,31,opt,name=min_epoch_length_record_limit,json=minEpochLengthRecordLimit,proto3" json:"min_epoch_length_record_limit,omitempty"` // block emission rate in number of blocks expected per month - BlocksPerMonth uint64 `protobuf:"varint,32,opt,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` - PRewardInference github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,33,opt,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,opt,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,opt,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,opt,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,opt,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,opt,name=c_norm,json=cNorm,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"c_norm"` - TopicFeeRevenueDecayRate github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,39,opt,name=topic_fee_revenue_decay_rate,json=topicFeeRevenueDecayRate,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_fee_revenue_decay_rate"` - EpsilonReputer github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,40,opt,name=epsilon_reputer,json=epsilonReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_reputer"` + BlocksPerMonth uint64 `protobuf:"varint,32,opt,name=blocks_per_month,json=blocksPerMonth,proto3" json:"blocks_per_month,omitempty"` + PRewardInference github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,33,opt,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,opt,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,opt,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,opt,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,opt,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,opt,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,opt,name=epsilon_reputer,json=epsilonReputer,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon_reputer"` // close proximities HalfMaxProcessStakeRemovalsEndBlock uint64 `protobuf:"varint,42,opt,name=half_max_process_stake_removals_end_block,json=halfMaxProcessStakeRemovalsEndBlock,proto3" json:"half_max_process_stake_removals_end_block,omitempty"` // Applied twice once for stakeRemovals and once for @@ -255,89 +254,89 @@ func init() { func init() { proto.RegisterFile("emissions/v3/params.proto", fileDescriptor_3cdb117de9d25c4f) } var fileDescriptor_3cdb117de9d25c4f = []byte{ - // 1309 bytes of a gzipped FileDescriptorProto + // 1299 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcd, 0x6e, 0x14, 0x47, - 0x10, 0xf6, 0x06, 0x63, 0x4c, 0x63, 0xec, 0xf5, 0xc4, 0x98, 0xf1, 0xdf, 0xda, 0xc1, 0x24, 0x31, - 0x04, 0xbc, 0x91, 0x38, 0xe4, 0xf7, 0x10, 0x90, 0x6d, 0x64, 0x84, 0xd1, 0x6a, 0xec, 0x80, 0x44, - 0x22, 0x75, 0xda, 0x3d, 0x35, 0xbb, 0x2d, 0x4f, 0x77, 0x4f, 0xba, 0x7b, 0xd7, 0x6b, 0xee, 0xb9, - 0xe7, 0x31, 0x72, 0xcc, 0x21, 0x0f, 0xc1, 0x11, 0xe5, 0x10, 0x45, 0x39, 0xa0, 0x08, 0x0e, 0x79, - 0x8d, 0xa8, 0x7f, 0x66, 0xbd, 0x0b, 0x51, 0x14, 0x79, 0x72, 0xb1, 0x3c, 0x53, 0x55, 0xdf, 0x57, - 0xf3, 0x75, 0x75, 0x55, 0x2d, 0x5a, 0x00, 0xce, 0xb4, 0x66, 0x52, 0xe8, 0x66, 0xef, 0x4e, 0xb3, - 0x20, 0x8a, 0x70, 0xbd, 0x59, 0x28, 0x69, 0x64, 0x34, 0x35, 0x30, 0x6d, 0xf6, 0xee, 0x2c, 0xce, - 0x12, 0xce, 0x84, 0x6c, 0xba, 0xbf, 0xde, 0x61, 0x71, 0x81, 0x4a, 0xcd, 0xa5, 0xc6, 0xee, 0xa9, - 0xe9, 0x1f, 0x82, 0x69, 0xae, 0x2d, 0xdb, 0xd2, 0xbf, 0xb7, 0xff, 0xf9, 0xb7, 0xd7, 0x7e, 0x5b, - 0x42, 0x13, 0x2d, 0x47, 0x11, 0xc5, 0xe8, 0x42, 0x0f, 0x94, 0x45, 0x8f, 0x6b, 0x6b, 0xb5, 0x8d, - 0x8b, 0x49, 0xf9, 0x18, 0x7d, 0x86, 0x16, 0x38, 0xe9, 0x63, 0x0d, 0x8a, 0x91, 0x9c, 0x3d, 0x83, - 0x14, 0x73, 0xdd, 0xc6, 0x39, 0x88, 0xb6, 0xe9, 0xc4, 0xef, 0xac, 0xd5, 0x36, 0xce, 0x25, 0xf3, - 0x9c, 0xf4, 0xf7, 0x07, 0xf6, 0x3d, 0xdd, 0x7e, 0xe8, 0xac, 0x11, 0x41, 0x75, 0xce, 0x04, 0x36, - 0xb2, 0x60, 0x14, 0x1f, 0x03, 0x6b, 0x77, 0x4c, 0x7c, 0xce, 0xa2, 0xdf, 0xfb, 0xe4, 0xf9, 0xcb, - 0xd5, 0xb1, 0x3f, 0x5e, 0xae, 0x36, 0xdb, 0xcc, 0x74, 0xba, 0x87, 0x9b, 0x54, 0xf2, 0x26, 0xc9, - 0x73, 0xa9, 0xc8, 0x6d, 0x01, 0xe6, 0x58, 0xaa, 0xa3, 0xf2, 0x91, 0x76, 0x08, 0x13, 0x4d, 0x4e, - 0x4c, 0x67, 0x73, 0x0b, 0x68, 0x32, 0xcd, 0x99, 0x38, 0xb0, 0x78, 0x4f, 0x1c, 0x5c, 0xd4, 0x44, - 0x73, 0x36, 0x3b, 0x47, 0xa1, 0x71, 0x01, 0x0a, 0x1f, 0xe6, 0x92, 0x1e, 0xc5, 0xe3, 0x6b, 0xb5, - 0x8d, 0xf1, 0x64, 0x96, 0x93, 0xbe, 0xf3, 0xd6, 0x2d, 0x50, 0xf7, 0xac, 0x21, 0xca, 0xd0, 0xbc, - 0x82, 0xef, 0xbb, 0x4c, 0xd9, 0x0f, 0x61, 0x82, 0xf1, 0x2e, 0xc7, 0xda, 0x90, 0x23, 0x88, 0xcf, - 0xbb, 0xcc, 0x3e, 0x0e, 0x99, 0x5d, 0xf1, 0xfa, 0xe9, 0xf4, 0x68, 0x93, 0x49, 0xcf, 0xbf, 0x2b, - 0xcc, 0xaf, 0xbf, 0xdc, 0x46, 0x41, 0xd8, 0x5d, 0x61, 0x7e, 0xfa, 0xeb, 0xe7, 0x9b, 0xb5, 0x64, - 0xae, 0xc4, 0xdb, 0xf3, 0x70, 0xfb, 0x16, 0xcd, 0xca, 0xa6, 0x80, 0xcb, 0x1e, 0x78, 0x74, 0x9c, - 0x42, 0x4e, 0x4e, 0xf0, 0x31, 0x13, 0xa9, 0x3c, 0x8e, 0x27, 0xbc, 0x6c, 0xde, 0xc1, 0xf9, 0x6f, - 0x59, 0xf3, 0x13, 0x67, 0x8d, 0x36, 0xbc, 0x6c, 0x50, 0x48, 0xda, 0x29, 0x85, 0xbe, 0xe0, 0x22, - 0xec, 0xd7, 0x6f, 0xdb, 0xd7, 0x41, 0xe0, 0xa7, 0x68, 0xea, 0x10, 0x0c, 0xc1, 0x20, 0x8c, 0x92, - 0xc5, 0x49, 0x3c, 0x59, 0x4d, 0xdc, 0x4b, 0x16, 0x6c, 0xdb, 0x63, 0x45, 0xdf, 0xa2, 0xcb, 0x39, - 0x10, 0x25, 0x98, 0x68, 0x63, 0x45, 0x0c, 0xc4, 0x17, 0xab, 0x81, 0x4f, 0x95, 0x68, 0x09, 0x31, - 0x10, 0x71, 0x64, 0x8b, 0x06, 0xb7, 0x15, 0x49, 0x19, 0x08, 0x83, 0x4d, 0x47, 0x81, 0xee, 0xc8, - 0x3c, 0x8d, 0x51, 0x35, 0x1a, 0x5b, 0x0e, 0xf7, 0x03, 0xea, 0x41, 0x09, 0x1a, 0x01, 0x8a, 0xac, - 0xa4, 0xfe, 0x28, 0x32, 0x45, 0xa8, 0xb1, 0x95, 0x7e, 0xa9, 0x1a, 0x95, 0x3d, 0x25, 0x77, 0x78, - 0x3b, 0x01, 0x30, 0xda, 0x46, 0xab, 0xf6, 0xab, 0xba, 0x22, 0xeb, 0xe6, 0x19, 0xcb, 0x73, 0x48, - 0xb1, 0x8d, 0x07, 0x85, 0x6d, 0x8d, 0x80, 0x36, 0x3a, 0xbe, 0xec, 0x0a, 0x73, 0x99, 0x93, 0xfe, - 0xd7, 0xa7, 0x5e, 0x4f, 0x9c, 0x53, 0x12, 0x7c, 0xa2, 0xfb, 0x68, 0xed, 0x4d, 0x18, 0x05, 0x45, - 0xd7, 0x0c, 0xe3, 0x4c, 0x3b, 0x9c, 0x95, 0x51, 0x9c, 0xc4, 0x7b, 0x0d, 0x80, 0x9e, 0xa1, 0x15, - 0x7f, 0xf9, 0x14, 0x1c, 0x13, 0x95, 0x86, 0xef, 0x67, 0xbc, 0x90, 0xca, 0x10, 0x41, 0x21, 0x9e, - 0xa9, 0xa6, 0xc0, 0xa2, 0x43, 0x4f, 0x1c, 0xb8, 0x53, 0x62, 0x77, 0x00, 0x1d, 0xfd, 0x50, 0x43, - 0xeb, 0x23, 0xe4, 0x19, 0x00, 0x56, 0xd0, 0x03, 0xd1, 0x1d, 0x49, 0xa1, 0x5e, 0x2d, 0x85, 0xd5, - 0xa1, 0x14, 0x76, 0x00, 0x12, 0x4f, 0x30, 0x94, 0x07, 0xa0, 0x68, 0x24, 0x0d, 0x92, 0x17, 0x1d, - 0x12, 0xcf, 0x56, 0x3c, 0xfa, 0x21, 0xd6, 0xbb, 0x16, 0x30, 0xa2, 0x68, 0xd6, 0x10, 0x7d, 0x34, - 0xca, 0x12, 0x55, 0x63, 0x99, 0xb1, 0x88, 0xc3, 0x24, 0x56, 0xd3, 0x1e, 0xc9, 0x59, 0x4a, 0x8c, - 0x54, 0x1a, 0xf7, 0x34, 0xf6, 0x81, 0xb6, 0xf1, 0x51, 0x7b, 0x8d, 0x3c, 0x7b, 0xfc, 0x6e, 0x45, - 0x4d, 0x4f, 0x39, 0x1e, 0xeb, 0xbb, 0xce, 0xa5, 0xe5, 0x09, 0x7c, 0x32, 0xd1, 0x97, 0x68, 0xc9, - 0xcd, 0x04, 0xc2, 0x8b, 0x1c, 0x34, 0x36, 0x12, 0x6b, 0x4a, 0x72, 0xc0, 0x9a, 0x4a, 0x05, 0x3a, - 0x9e, 0x73, 0xb5, 0x79, 0xd5, 0x4e, 0x05, 0xef, 0x71, 0x20, 0xf7, 0xad, 0x7d, 0xdf, 0x99, 0xa3, - 0xcf, 0xd1, 0x62, 0xe8, 0xd9, 0x98, 0x89, 0x0c, 0x14, 0x28, 0x07, 0x11, 0x72, 0xbf, 0xe2, 0x82, - 0xe7, 0x7d, 0xe7, 0xde, 0x0d, 0xf6, 0x03, 0x19, 0x98, 0xbf, 0x42, 0x2b, 0x65, 0x6c, 0x26, 0x15, - 0x50, 0xa2, 0xcd, 0x68, 0xf8, 0xbc, 0x0b, 0x5f, 0xf0, 0xe1, 0x3b, 0xa7, 0x2e, 0x03, 0x84, 0x21, - 0xf6, 0x70, 0xa9, 0x86, 0xc3, 0xaf, 0x0e, 0xb3, 0x87, 0xeb, 0x74, 0x1a, 0xfb, 0x14, 0xd5, 0xa9, - 0x02, 0x62, 0x20, 0xcc, 0xb4, 0x0c, 0x20, 0x8e, 0xcf, 0x38, 0x36, 0xa6, 0x3d, 0x92, 0x1b, 0x4f, - 0x3b, 0x00, 0xd1, 0x17, 0x68, 0x71, 0xd0, 0x0d, 0x53, 0xd0, 0xee, 0x38, 0x6d, 0xa2, 0xcc, 0x66, - 0x10, 0x2f, 0x78, 0x49, 0x4b, 0x8f, 0x2d, 0xef, 0xb0, 0x47, 0xfa, 0xbb, 0xd6, 0x1c, 0x7d, 0x83, - 0xea, 0x0a, 0xda, 0x4c, 0x1b, 0x45, 0x6c, 0x23, 0x72, 0x89, 0x2d, 0x9f, 0x31, 0xb1, 0x99, 0x61, - 0x24, 0x9b, 0xd9, 0x2d, 0x14, 0xa5, 0x90, 0x91, 0x6e, 0x6e, 0x70, 0x41, 0xda, 0x80, 0x73, 0xc6, - 0x99, 0x89, 0x57, 0x5c, 0x46, 0xf5, 0x60, 0x69, 0x91, 0x36, 0x3c, 0xb4, 0xef, 0xa3, 0xeb, 0x68, - 0xda, 0xa6, 0x3d, 0xe4, 0xd9, 0x70, 0x9e, 0x53, 0x9c, 0xf4, 0x4f, 0xbd, 0xec, 0x39, 0xbe, 0x31, - 0xe3, 0xb0, 0x02, 0x2a, 0x55, 0x1a, 0x82, 0x56, 0xdd, 0xc0, 0x5b, 0x18, 0x1d, 0x78, 0x89, 0xf3, - 0xf0, 0x08, 0x1b, 0xa8, 0xee, 0x46, 0xbd, 0x9f, 0xfa, 0x5c, 0x0a, 0xd3, 0x89, 0xd7, 0x1c, 0xd3, - 0xb4, 0x7f, 0xdf, 0x02, 0xb5, 0x67, 0xdf, 0xda, 0x0e, 0x50, 0x94, 0xf7, 0xd2, 0x17, 0x9c, 0xed, - 0x3b, 0xef, 0x55, 0xec, 0x00, 0x85, 0xaf, 0x89, 0xdd, 0x12, 0xd0, 0x76, 0x80, 0x01, 0x4d, 0x59, - 0x9b, 0xf1, 0xb5, 0x8a, 0x1d, 0x20, 0xb0, 0x94, 0x85, 0x6c, 0x57, 0xaa, 0x01, 0x49, 0x28, 0xdf, - 0x78, 0xbd, 0xe2, 0x4a, 0x15, 0x38, 0x42, 0xb5, 0x5b, 0xb9, 0xe8, 0xdb, 0x72, 0x5d, 0xaf, 0x28, - 0x17, 0xfd, 0x07, 0xb9, 0xe8, 0x5b, 0x72, 0xbd, 0x5f, 0x51, 0x2e, 0xfa, 0x86, 0x5c, 0x8f, 0xd0, - 0x04, 0xc5, 0x42, 0x2a, 0x1e, 0x7f, 0x50, 0x0d, 0xf9, 0x3c, 0x7d, 0x24, 0x15, 0x8f, 0x8e, 0xd1, - 0xf2, 0xe0, 0xe6, 0x0f, 0x86, 0x59, 0x0a, 0x94, 0x9c, 0xf8, 0x1d, 0xe9, 0xc3, 0x6a, 0x2c, 0xb1, - 0x09, 0xdd, 0x20, 0x8c, 0xb1, 0x2d, 0x8b, 0xec, 0xf6, 0xa5, 0xef, 0xd0, 0x0c, 0x14, 0x9a, 0xe5, - 0x52, 0x0c, 0x8e, 0x7d, 0xa3, 0xe2, 0xb1, 0x07, 0xbc, 0xf2, 0xd8, 0x1f, 0xa3, 0x1b, 0x1d, 0x92, - 0x67, 0xae, 0xe7, 0x14, 0x4a, 0x52, 0xd0, 0x3a, 0xec, 0x0b, 0x6e, 0x4d, 0x25, 0xb9, 0xc6, 0x20, - 0xd2, 0xb0, 0x5e, 0xdf, 0x74, 0x17, 0x6d, 0xdd, 0x06, 0xec, 0x91, 0x7e, 0xcb, 0xbb, 0xbb, 0x0d, - 0x20, 0x09, 0xce, 0xdb, 0x22, 0xf5, 0x0b, 0x37, 0x41, 0xf5, 0x32, 0x73, 0x4d, 0x32, 0xc0, 0x29, - 0xeb, 0xc5, 0x1f, 0xfd, 0x3f, 0xa9, 0xef, 0x93, 0x0c, 0xb6, 0x58, 0xcf, 0xb6, 0xe5, 0x94, 0x18, - 0x82, 0x35, 0x88, 0xd4, 0xae, 0xab, 0xb6, 0xfb, 0xdd, 0x3a, 0x6b, 0x5b, 0xb6, 0x48, 0xfb, 0x1e, - 0xc8, 0x36, 0xbf, 0xf0, 0xf3, 0x07, 0x72, 0xe0, 0x20, 0x8c, 0x6f, 0x36, 0x83, 0x72, 0xbd, 0x3d, - 0x98, 0x16, 0xdb, 0xc1, 0xde, 0x02, 0x55, 0x16, 0xdf, 0x83, 0xf1, 0xc9, 0xc5, 0xfa, 0xd2, 0x83, - 0xf1, 0xc9, 0xa5, 0xfa, 0xf2, 0x83, 0xf1, 0xc9, 0x1b, 0xf5, 0x9b, 0xc9, 0x92, 0xeb, 0x79, 0x59, - 0x06, 0xd4, 0xb0, 0x5e, 0x39, 0x44, 0x42, 0x19, 0x25, 0xeb, 0x96, 0x47, 0x81, 0x51, 0xcc, 0x8f, - 0x54, 0xbf, 0xd5, 0x61, 0x21, 0x05, 0x05, 0x1d, 0xf6, 0xc8, 0xe4, 0xfa, 0xbf, 0x3a, 0x85, 0xd2, - 0xb8, 0x97, 0x3c, 0x7f, 0xd5, 0xa8, 0xbd, 0x78, 0xd5, 0xa8, 0xfd, 0xf9, 0xaa, 0x51, 0xfb, 0xf1, - 0x75, 0x63, 0xec, 0xc5, 0xeb, 0xc6, 0xd8, 0xef, 0xaf, 0x1b, 0x63, 0x4f, 0x3f, 0xfd, 0x8f, 0x5a, - 0xf7, 0x9b, 0xa7, 0x3f, 0x44, 0xcd, 0x49, 0x01, 0xfa, 0x70, 0xc2, 0xfd, 0x66, 0xbc, 0xf3, 0x77, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xd2, 0xb1, 0x20, 0x0c, 0xa2, 0x0e, 0x00, 0x00, + 0x10, 0xf6, 0x06, 0x63, 0x4c, 0x63, 0xec, 0xf5, 0xc4, 0x98, 0xf1, 0xdf, 0xda, 0xc1, 0x24, 0x59, + 0x08, 0x78, 0x23, 0x71, 0xc8, 0xef, 0x21, 0x20, 0xdb, 0xc8, 0x16, 0x46, 0xab, 0xb1, 0x03, 0x12, + 0x89, 0xd4, 0x69, 0xf7, 0xd4, 0xec, 0xb6, 0x3c, 0xd3, 0x3d, 0xe9, 0xee, 0x5d, 0xaf, 0xb9, 0xe5, + 0x90, 0x7b, 0x1e, 0x23, 0xc7, 0x1c, 0xf2, 0x10, 0x1c, 0x51, 0x4e, 0x51, 0x0e, 0x28, 0x82, 0x43, + 0x5e, 0x23, 0xea, 0x9f, 0x99, 0xdd, 0x85, 0x28, 0x8a, 0x98, 0x5c, 0x56, 0x3b, 0x5d, 0x55, 0xdf, + 0x57, 0xf3, 0x75, 0x75, 0x55, 0x0f, 0x5a, 0x82, 0x8c, 0x29, 0xc5, 0x04, 0x57, 0xad, 0xfe, 0x9d, + 0x56, 0x4e, 0x24, 0xc9, 0xd4, 0x56, 0x2e, 0x85, 0x16, 0xc1, 0x4c, 0x69, 0xda, 0xea, 0xdf, 0x59, + 0x9e, 0x27, 0x19, 0xe3, 0xa2, 0x65, 0x7f, 0x9d, 0xc3, 0xf2, 0x12, 0x15, 0x2a, 0x13, 0x0a, 0xdb, + 0xa7, 0x96, 0x7b, 0xf0, 0xa6, 0x85, 0x8e, 0xe8, 0x08, 0xb7, 0x6e, 0xfe, 0xb9, 0xd5, 0x6b, 0x3f, + 0xac, 0xa0, 0xa9, 0xb6, 0xa5, 0x08, 0x42, 0x74, 0xa1, 0x0f, 0xd2, 0xa0, 0x87, 0xb5, 0x8d, 0x5a, + 0xf3, 0x62, 0x54, 0x3c, 0x06, 0x9f, 0xa1, 0xa5, 0x8c, 0x0c, 0xb0, 0x02, 0xc9, 0x48, 0xca, 0x9e, + 0x42, 0x8c, 0x33, 0xd5, 0xc1, 0x29, 0xf0, 0x8e, 0xee, 0x86, 0xef, 0x6c, 0xd4, 0x9a, 0xe7, 0xa2, + 0xc5, 0x8c, 0x0c, 0x0e, 0x4b, 0xfb, 0x81, 0xea, 0x3c, 0xb0, 0xd6, 0x80, 0xa0, 0x7a, 0xc6, 0x38, + 0xd6, 0x22, 0x67, 0x14, 0x9f, 0x02, 0xeb, 0x74, 0x75, 0x78, 0xce, 0xa0, 0xdf, 0xfb, 0xe4, 0xd9, + 0x8b, 0xf5, 0x89, 0x3f, 0x5e, 0xac, 0xb7, 0x3a, 0x4c, 0x77, 0x7b, 0xc7, 0x5b, 0x54, 0x64, 0x2d, + 0x92, 0xa6, 0x42, 0x92, 0xdb, 0x1c, 0xf4, 0xa9, 0x90, 0x27, 0xc5, 0x23, 0xed, 0x12, 0xc6, 0x5b, + 0x19, 0xd1, 0xdd, 0xad, 0x6d, 0xa0, 0xd1, 0x6c, 0xc6, 0xf8, 0x91, 0xc1, 0x7b, 0x6c, 0xe1, 0x82, + 0x16, 0x5a, 0x30, 0xd9, 0x59, 0x0a, 0x85, 0x73, 0x90, 0xf8, 0x38, 0x15, 0xf4, 0x24, 0x9c, 0xdc, + 0xa8, 0x35, 0x27, 0xa3, 0xf9, 0x8c, 0x0c, 0xac, 0xb7, 0x6a, 0x83, 0xbc, 0x67, 0x0c, 0x41, 0x82, + 0x16, 0x25, 0x7c, 0xdf, 0x63, 0xd2, 0xbc, 0x08, 0xe3, 0x2c, 0xeb, 0x65, 0x58, 0x69, 0x72, 0x02, + 0xe1, 0x79, 0x9b, 0xd9, 0xc7, 0x3e, 0xb3, 0x2b, 0x4e, 0x3f, 0x15, 0x9f, 0x6c, 0x31, 0xe1, 0xf8, + 0xf7, 0xb8, 0xfe, 0xed, 0xd7, 0xdb, 0xc8, 0x0b, 0xbb, 0xc7, 0xf5, 0xcf, 0x7f, 0xfd, 0x72, 0xb3, + 0x16, 0x2d, 0x14, 0x78, 0x07, 0x0e, 0xee, 0xd0, 0xa0, 0x19, 0xd9, 0x24, 0x64, 0xa2, 0x0f, 0x0e, + 0x1d, 0xc7, 0x90, 0x92, 0x33, 0x7c, 0xca, 0x78, 0x2c, 0x4e, 0xc3, 0x29, 0x27, 0x9b, 0x73, 0xb0, + 0xfe, 0xdb, 0xc6, 0xfc, 0xd8, 0x5a, 0x83, 0xa6, 0x93, 0x0d, 0x72, 0x41, 0xbb, 0x85, 0xd0, 0x17, + 0x6c, 0x84, 0x79, 0xfb, 0x1d, 0xb3, 0xec, 0x05, 0x7e, 0x82, 0x66, 0x8e, 0x41, 0x13, 0x0c, 0x5c, + 0x4b, 0x91, 0x9f, 0x85, 0xd3, 0xd5, 0xc4, 0xbd, 0x64, 0xc0, 0x76, 0x1c, 0x56, 0xf0, 0x2d, 0xba, + 0x9c, 0x02, 0x91, 0x9c, 0xf1, 0x0e, 0x96, 0x44, 0x43, 0x78, 0xb1, 0x1a, 0xf8, 0x4c, 0x81, 0x16, + 0x11, 0x0d, 0x41, 0x86, 0x4c, 0xd1, 0xe0, 0x8e, 0x24, 0x31, 0x03, 0xae, 0xb1, 0xee, 0x4a, 0x50, + 0x5d, 0x91, 0xc6, 0x21, 0xaa, 0x46, 0x63, 0xca, 0xe1, 0xbe, 0x47, 0x3d, 0x2a, 0x40, 0x03, 0x40, + 0x81, 0x91, 0xd4, 0x6d, 0x45, 0x22, 0x09, 0xd5, 0xa6, 0xd2, 0x2f, 0x55, 0xa3, 0x32, 0xbb, 0x64, + 0x37, 0x6f, 0xd7, 0x03, 0x06, 0x3b, 0x68, 0xdd, 0xbc, 0x55, 0x8f, 0x27, 0xbd, 0x34, 0x61, 0x69, + 0x0a, 0x31, 0x36, 0xf1, 0x20, 0xb1, 0xa9, 0x11, 0x50, 0x5a, 0x85, 0x97, 0x6d, 0x61, 0xae, 0x66, + 0x64, 0xf0, 0xf5, 0xd0, 0xeb, 0xb1, 0x75, 0x8a, 0xbc, 0x4f, 0x70, 0x1f, 0x6d, 0xbc, 0x0e, 0x23, + 0x21, 0xef, 0xe9, 0x51, 0x9c, 0x59, 0x8b, 0xb3, 0x36, 0x8e, 0x13, 0x39, 0xaf, 0x12, 0xe8, 0x29, + 0x5a, 0x73, 0x87, 0x4f, 0xc2, 0x29, 0x91, 0xb1, 0x7f, 0x7f, 0x96, 0xe5, 0x42, 0x6a, 0xc2, 0x29, + 0x84, 0x73, 0xd5, 0x14, 0x58, 0xb6, 0xe8, 0x91, 0x05, 0xb7, 0x4a, 0xec, 0x95, 0xd0, 0xc1, 0x8f, + 0x35, 0xb4, 0x39, 0x46, 0x9e, 0x00, 0x60, 0x09, 0x7d, 0xe0, 0xbd, 0xb1, 0x14, 0xea, 0xd5, 0x52, + 0x58, 0x1f, 0x49, 0x61, 0x17, 0x20, 0x72, 0x04, 0x23, 0x79, 0x00, 0x0a, 0xc6, 0xd2, 0x20, 0x69, + 0xde, 0x25, 0xe1, 0x7c, 0xc5, 0xad, 0x1f, 0x61, 0xbd, 0x6b, 0x00, 0x03, 0x8a, 0xe6, 0x35, 0x51, + 0x27, 0xe3, 0x2c, 0x41, 0x35, 0x96, 0x39, 0x83, 0x38, 0x4a, 0x62, 0x34, 0xed, 0x93, 0x94, 0xc5, + 0x44, 0x0b, 0xa9, 0x70, 0x5f, 0x61, 0x17, 0x68, 0x1a, 0x1f, 0x35, 0xc7, 0xc8, 0xb1, 0x87, 0xef, + 0x56, 0xd4, 0x74, 0xc8, 0xf1, 0x48, 0xdd, 0xb5, 0x2e, 0x6d, 0x47, 0xe0, 0x92, 0x09, 0xbe, 0x44, + 0x2b, 0x76, 0x26, 0x90, 0x2c, 0x4f, 0x41, 0x61, 0x2d, 0xb0, 0xa2, 0x24, 0x05, 0xac, 0xa8, 0x90, + 0xa0, 0xc2, 0x05, 0x5b, 0x9b, 0x57, 0xcd, 0x54, 0x70, 0x1e, 0x47, 0xe2, 0xd0, 0xd8, 0x0f, 0xad, + 0x39, 0xf8, 0x1c, 0x2d, 0xfb, 0x9e, 0x8d, 0x19, 0x4f, 0x40, 0x82, 0xb4, 0x10, 0x3e, 0xf7, 0x2b, + 0x36, 0x78, 0xd1, 0x75, 0xee, 0x3d, 0x6f, 0x3f, 0x12, 0x9e, 0xf9, 0x2b, 0xb4, 0x56, 0xc4, 0x26, + 0x42, 0x02, 0x25, 0x4a, 0x8f, 0x87, 0x2f, 0xda, 0xf0, 0x25, 0x17, 0xbe, 0x3b, 0x74, 0x29, 0x11, + 0x46, 0xd8, 0xfd, 0xa1, 0x1a, 0x0d, 0xbf, 0x3a, 0xca, 0xee, 0x8f, 0xd3, 0x30, 0xf6, 0x09, 0xaa, + 0x53, 0x09, 0x44, 0x83, 0x9f, 0x69, 0x09, 0x40, 0x18, 0xbe, 0xe5, 0xd8, 0x98, 0x75, 0x48, 0x76, + 0x3c, 0xed, 0x02, 0x04, 0x5f, 0xa0, 0xe5, 0xb2, 0x1b, 0xc6, 0xa0, 0xec, 0x76, 0x9a, 0x44, 0x99, + 0xc9, 0x20, 0x5c, 0x72, 0x92, 0x16, 0x1e, 0xdb, 0xce, 0xe1, 0x80, 0x0c, 0xf6, 0x8c, 0x39, 0xf8, + 0x06, 0xd5, 0x25, 0x74, 0x98, 0xd2, 0x92, 0x98, 0x46, 0x64, 0x13, 0x5b, 0x7d, 0xcb, 0xc4, 0xe6, + 0x46, 0x91, 0x4c, 0x66, 0xb7, 0x50, 0x10, 0x43, 0x42, 0x7a, 0xa9, 0xc6, 0x39, 0xe9, 0x00, 0x4e, + 0x59, 0xc6, 0x74, 0xb8, 0x66, 0x33, 0xaa, 0x7b, 0x4b, 0x9b, 0x74, 0xe0, 0x81, 0x59, 0x0f, 0xae, + 0xa3, 0x59, 0x93, 0xf6, 0x88, 0x67, 0xc3, 0x7a, 0xce, 0x64, 0x64, 0x30, 0xf4, 0x32, 0xfb, 0xf8, + 0xda, 0x8c, 0xc3, 0x12, 0xa8, 0x90, 0xb1, 0x0f, 0x5a, 0xb7, 0x03, 0x6f, 0x69, 0x7c, 0xe0, 0x45, + 0xd6, 0xc3, 0x21, 0x34, 0x51, 0xdd, 0x8e, 0x7a, 0x37, 0xf5, 0x33, 0xc1, 0x75, 0x37, 0xdc, 0xb0, + 0x4c, 0xb3, 0x6e, 0xbd, 0x0d, 0xf2, 0xc0, 0xac, 0x9a, 0x0e, 0x90, 0x17, 0xe7, 0xd2, 0x15, 0x9c, + 0xe9, 0x3b, 0xef, 0x55, 0xec, 0x00, 0xb9, 0xab, 0x89, 0xbd, 0x02, 0xd0, 0x74, 0x80, 0x92, 0xa6, + 0xa8, 0xcd, 0xf0, 0x5a, 0xc5, 0x0e, 0xe0, 0x59, 0x8a, 0x42, 0x36, 0x57, 0xaa, 0x92, 0xc4, 0x97, + 0x6f, 0xb8, 0x59, 0xf1, 0x4a, 0xe5, 0x39, 0x7c, 0xb5, 0x1b, 0xb9, 0xe8, 0x9b, 0x72, 0x5d, 0xaf, + 0x28, 0x17, 0xfd, 0x07, 0xb9, 0xe8, 0x1b, 0x72, 0xbd, 0x5f, 0x51, 0x2e, 0xfa, 0x9a, 0x5c, 0x0f, + 0xd1, 0x14, 0xc5, 0x5c, 0xc8, 0x2c, 0xfc, 0xa0, 0x1a, 0xf2, 0x79, 0xfa, 0x50, 0xc8, 0x2c, 0xf8, + 0x0e, 0xcd, 0x41, 0xae, 0x58, 0x2a, 0x78, 0xa9, 0x7e, 0xb3, 0xa2, 0xfa, 0x1e, 0xaf, 0x50, 0xff, + 0x11, 0xba, 0xd1, 0x25, 0x69, 0x62, 0x8f, 0x7e, 0x2e, 0x05, 0x05, 0xa5, 0xfc, 0xd8, 0xb6, 0xb7, + 0x45, 0x92, 0x2a, 0x0c, 0x3c, 0xf6, 0xb7, 0xdc, 0x9b, 0xb6, 0xde, 0x37, 0x4d, 0xc0, 0x01, 0x19, + 0xb4, 0x9d, 0xbb, 0x1d, 0xc4, 0x91, 0x77, 0xde, 0xe1, 0xb1, 0xbb, 0xf7, 0x12, 0x54, 0x2f, 0x32, + 0x57, 0x24, 0x01, 0x1c, 0xb3, 0x7e, 0xf8, 0xd1, 0xff, 0x93, 0xfa, 0x21, 0x49, 0x60, 0x9b, 0xf5, + 0x4d, 0x77, 0x8c, 0x89, 0x26, 0x58, 0x01, 0x8f, 0xcd, 0xad, 0xd1, 0x34, 0xa1, 0x5b, 0x6f, 0xdb, + 0x1d, 0x0d, 0xd2, 0xa1, 0x03, 0x32, 0x3d, 0xc8, 0x7f, 0x85, 0x40, 0x0a, 0x19, 0x70, 0xed, 0xce, + 0x7c, 0x59, 0x35, 0xb7, 0xcb, 0xa6, 0xbd, 0xe3, 0xed, 0x6d, 0x90, 0x45, 0x0d, 0xec, 0x4f, 0x4e, + 0x2f, 0xd7, 0x57, 0xf6, 0x27, 0xa7, 0x57, 0xea, 0xab, 0xfb, 0x93, 0xd3, 0x1f, 0xd6, 0x9b, 0xfb, + 0x93, 0xd3, 0x37, 0xea, 0x37, 0xa3, 0xd5, 0xb2, 0x87, 0x97, 0xd7, 0x92, 0x18, 0x28, 0x39, 0xb3, + 0xb7, 0xdd, 0x68, 0xc5, 0xb6, 0xa7, 0x24, 0x01, 0xaa, 0x59, 0xbf, 0xe8, 0xf7, 0xde, 0x2f, 0xda, + 0x34, 0xb9, 0x48, 0xd0, 0x92, 0xb9, 0xe9, 0xe7, 0x2e, 0x60, 0x98, 0x0b, 0x4e, 0x41, 0xf9, 0x2b, + 0x5f, 0x74, 0xfd, 0x5f, 0x9d, 0x7c, 0xf9, 0xdc, 0x8b, 0x9e, 0xbd, 0x6c, 0xd4, 0x9e, 0xbf, 0x6c, + 0xd4, 0xfe, 0x7c, 0xd9, 0xa8, 0xfd, 0xf4, 0xaa, 0x31, 0xf1, 0xfc, 0x55, 0x63, 0xe2, 0xf7, 0x57, + 0x8d, 0x89, 0x27, 0x9f, 0xfe, 0xc7, 0xfd, 0x18, 0xb4, 0x86, 0xdf, 0x8c, 0xfa, 0x2c, 0x07, 0x75, + 0x3c, 0x65, 0x3f, 0xef, 0xee, 0xfc, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x85, 0xe8, 0xcb, 0x56, 0x4d, + 0x0e, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -410,18 +409,6 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x2 i-- dAtA[i] = 0xc2 - { - size := m.TopicFeeRevenueDecayRate.Size() - i -= size - if _, err := m.TopicFeeRevenueDecayRate.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintParams(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2 - i-- - dAtA[i] = 0xba { size := m.CNorm.Size() i -= size @@ -843,8 +830,6 @@ func (m *Params) Size() (n int) { n += 2 + l + sovParams(uint64(l)) l = m.CNorm.Size() n += 2 + l + sovParams(uint64(l)) - l = m.TopicFeeRevenueDecayRate.Size() - n += 2 + l + sovParams(uint64(l)) l = m.EpsilonReputer.Size() n += 2 + l + sovParams(uint64(l)) if m.HalfMaxProcessStakeRemovalsEndBlock != 0 { @@ -1858,40 +1843,6 @@ func (m *Params) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 39: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TopicFeeRevenueDecayRate", 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.TopicFeeRevenueDecayRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 40: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field EpsilonReputer", wireType) diff --git a/x/emissions/types/tx.pb.go b/x/emissions/types/tx.pb.go index 5d637e11f..4506be2de 100644 --- a/x/emissions/types/tx.pb.go +++ b/x/emissions/types/tx.pb.go @@ -75,7 +75,6 @@ type OptionalParams struct { 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"` - TopicFeeRevenueDecayRate []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,39,rep,name=topic_fee_revenue_decay_rate,json=topicFeeRevenueDecayRate,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"topic_fee_revenue_decay_rate"` 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"` @@ -1844,162 +1843,161 @@ func init() { func init() { proto.RegisterFile("emissions/v3/tx.proto", fileDescriptor_fedd7926bf8d7af0) } var fileDescriptor_fedd7926bf8d7af0 = []byte{ - // 2466 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4b, 0x6f, 0x1c, 0xc7, - 0xf1, 0xd7, 0x8a, 0x4b, 0x72, 0xd9, 0xcb, 0xc7, 0x72, 0x4c, 0x51, 0xc3, 0xe5, 0x53, 0x4b, 0xca, - 0xa6, 0x65, 0x8b, 0xfc, 0x5b, 0xfe, 0x23, 0x71, 0x94, 0x1c, 0x22, 0x85, 0xa2, 0x4d, 0x46, 0xab, - 0xd0, 0x43, 0x5a, 0x04, 0x18, 0x03, 0x93, 0xe6, 0x4c, 0xed, 0xec, 0x80, 0x33, 0xd3, 0x9b, 0xee, - 0xde, 0x25, 0xe9, 0x5c, 0x82, 0x00, 0x39, 0xe5, 0x12, 0xe4, 0x90, 0x04, 0xf9, 0x04, 0x49, 0x4e, - 0x3e, 0x04, 0x39, 0xe5, 0x03, 0xf8, 0x68, 0xe4, 0x14, 0xe4, 0x20, 0x04, 0xd2, 0xc1, 0x9f, 0x21, - 0xb7, 0xa0, 0x1f, 0x33, 0x9c, 0xd9, 0x07, 0x45, 0x70, 0x74, 0xf0, 0x45, 0xd2, 0x74, 0x55, 0xff, - 0xea, 0xd7, 0x55, 0xd5, 0x55, 0xd5, 0xc2, 0xa2, 0x5b, 0x10, 0xfa, 0x8c, 0xf9, 0x24, 0x62, 0x9b, - 0x9d, 0x0f, 0x37, 0xf9, 0xd9, 0x46, 0x8b, 0x12, 0x4e, 0x8c, 0xf1, 0x64, 0x79, 0xa3, 0xf3, 0x61, - 0x75, 0x1a, 0x87, 0x7e, 0x44, 0x36, 0xe5, 0x9f, 0x4a, 0xa1, 0x7a, 0xdb, 0x21, 0x2c, 0x24, 0x6c, - 0x33, 0x64, 0xde, 0x66, 0xe7, 0x03, 0xf1, 0x97, 0x16, 0xcc, 0x29, 0x81, 0x2d, 0xbf, 0x36, 0xd5, - 0x87, 0x16, 0x55, 0x33, 0xb6, 0x28, 0xb4, 0xda, 0x1c, 0x68, 0xbc, 0x2d, 0x23, 0x3b, 0x25, 0xf4, - 0x24, 0x11, 0xcd, 0x78, 0xc4, 0x23, 0x0a, 0x4e, 0xfc, 0x4b, 0xad, 0xd6, 0x5e, 0xcc, 0xa3, 0xc9, - 0x9f, 0xb4, 0xb8, 0x4f, 0x22, 0x1c, 0xec, 0x61, 0x8a, 0x43, 0x66, 0x98, 0x68, 0xb4, 0x03, 0x54, - 0x80, 0x98, 0x85, 0x95, 0xa1, 0xf5, 0x31, 0x2b, 0xfe, 0x34, 0xbe, 0x87, 0xe6, 0x42, 0x7c, 0x66, - 0x33, 0xa0, 0x3e, 0x0e, 0xfc, 0x2f, 0xc0, 0xb5, 0x43, 0xe6, 0xd9, 0x01, 0x44, 0x1e, 0x6f, 0x9a, - 0x37, 0x57, 0x86, 0xd6, 0x87, 0xac, 0xd9, 0x10, 0x9f, 0xed, 0x27, 0xf2, 0x3a, 0xf3, 0x9e, 0x4a, - 0xa9, 0x81, 0x51, 0x25, 0xf4, 0x23, 0x9b, 0x93, 0x96, 0xef, 0xd8, 0xa7, 0xe0, 0x7b, 0x4d, 0x6e, - 0x0e, 0x09, 0xf4, 0xc7, 0xdf, 0xfd, 0xea, 0xc5, 0xf2, 0x8d, 0x7f, 0xbf, 0x58, 0xde, 0xf4, 0x7c, - 0xde, 0x6c, 0x1f, 0x6f, 0x38, 0x24, 0xdc, 0xc4, 0x41, 0x40, 0x28, 0xbe, 0x1f, 0x01, 0x17, 0x47, - 0x88, 0x3f, 0x9d, 0x26, 0xf6, 0xa3, 0xcd, 0x10, 0xf3, 0xe6, 0xc6, 0x16, 0x38, 0xd6, 0x64, 0xe8, - 0x47, 0x07, 0x02, 0xef, 0x50, 0xc2, 0x19, 0x9b, 0x68, 0x46, 0xb0, 0x93, 0x26, 0x98, 0xdd, 0x02, - 0x6a, 0x1f, 0x07, 0xc4, 0x39, 0x31, 0x8b, 0x2b, 0x43, 0xeb, 0x45, 0x6b, 0x3a, 0xc4, 0x67, 0x52, - 0x9b, 0xed, 0x01, 0x7d, 0x2c, 0x04, 0x46, 0x03, 0xcd, 0x52, 0xf8, 0x79, 0xdb, 0xa7, 0xe2, 0x20, - 0x7e, 0xe4, 0x87, 0xed, 0xd0, 0x66, 0x1c, 0x9f, 0x80, 0x39, 0x2c, 0x99, 0xfd, 0x9f, 0x66, 0x76, - 0x4b, 0xb9, 0x9f, 0xb9, 0x27, 0x1b, 0x3e, 0x51, 0xf6, 0x77, 0x22, 0xfe, 0xcf, 0xbf, 0xdd, 0x47, - 0x3a, 0x2e, 0x3b, 0x11, 0xff, 0xf3, 0x37, 0x5f, 0xde, 0x2b, 0x58, 0x33, 0x31, 0x5e, 0x5d, 0xc1, - 0xed, 0x0b, 0x34, 0xe1, 0x36, 0x0a, 0x21, 0xe9, 0x80, 0x42, 0xb7, 0x5d, 0x08, 0xf0, 0xb9, 0x7d, - 0xea, 0x47, 0x2e, 0x39, 0x35, 0x47, 0x94, 0xdb, 0x94, 0x82, 0xd4, 0xdf, 0x12, 0xe2, 0x43, 0x29, - 0x35, 0xd6, 0x95, 0xdb, 0xa0, 0x45, 0x9c, 0x66, 0xec, 0xe8, 0x51, 0xb9, 0x43, 0x9c, 0xfe, 0x89, - 0x58, 0xd6, 0x0e, 0x3e, 0x42, 0xe3, 0xc7, 0xc0, 0xb1, 0x0d, 0x11, 0xa7, 0xa4, 0x75, 0x6e, 0x96, - 0xf2, 0x39, 0xb7, 0x2c, 0xc0, 0x9e, 0x28, 0x2c, 0xe3, 0x73, 0x34, 0x11, 0x00, 0xa6, 0x91, 0x1f, - 0x79, 0x36, 0xc5, 0x1c, 0xcc, 0xb1, 0x7c, 0xe0, 0xe3, 0x31, 0x9a, 0x85, 0x39, 0x18, 0x21, 0x12, - 0x49, 0x63, 0x7b, 0x14, 0xbb, 0x3e, 0x44, 0xdc, 0xe6, 0x4d, 0x0a, 0xac, 0x49, 0x02, 0xd7, 0x44, - 0xf9, 0xcc, 0x88, 0x74, 0xf8, 0x58, 0xa3, 0x1e, 0xc4, 0xa0, 0x06, 0x20, 0x43, 0xb8, 0x54, 0x85, - 0xa2, 0x41, 0xb1, 0x23, 0x92, 0xdf, 0x2c, 0xe7, 0x33, 0x25, 0xa2, 0x24, 0x83, 0xb7, 0xad, 0x01, - 0x8d, 0x27, 0x68, 0x59, 0x9c, 0xaa, 0x1d, 0x35, 0xda, 0x41, 0xc3, 0x0f, 0x02, 0x70, 0x6d, 0x75, - 0x1d, 0x6d, 0x91, 0x23, 0xc0, 0x38, 0x33, 0x27, 0x64, 0x62, 0x2e, 0x84, 0xf8, 0xec, 0xb3, 0x0b, - 0xad, 0x43, 0xa9, 0x64, 0x69, 0x1d, 0xe3, 0x63, 0xb4, 0xd2, 0x0d, 0xa3, 0x6f, 0xfc, 0x05, 0xce, - 0xa4, 0xc4, 0x59, 0xcc, 0xe2, 0x58, 0x4a, 0x2b, 0x01, 0xfa, 0x02, 0x2d, 0xaa, 0xcb, 0x47, 0xe1, - 0x14, 0x53, 0x57, 0x9f, 0xdf, 0x0f, 0x5b, 0x84, 0x72, 0x1c, 0x39, 0x60, 0x4e, 0xe5, 0xf3, 0x40, - 0x55, 0xa2, 0x5b, 0x12, 0x5c, 0x7a, 0x62, 0x27, 0x81, 0x36, 0x7e, 0x5d, 0x40, 0xab, 0x19, 0xe3, - 0x0d, 0x00, 0x9b, 0x42, 0x07, 0xa2, 0x76, 0x86, 0x42, 0x25, 0x1f, 0x85, 0xe5, 0x14, 0x85, 0x6d, - 0x00, 0x4b, 0x19, 0x48, 0xf1, 0x00, 0x64, 0x64, 0x68, 0xe0, 0xa0, 0xd5, 0xc4, 0xe6, 0x74, 0xce, - 0xd0, 0xa7, 0xac, 0x3e, 0x12, 0x80, 0x86, 0x83, 0xa6, 0x39, 0x66, 0x27, 0x59, 0x2b, 0x46, 0x3e, - 0x2b, 0x53, 0x02, 0x31, 0x6d, 0x44, 0xf8, 0xb4, 0x83, 0x03, 0xdf, 0xc5, 0x9c, 0x50, 0x66, 0x77, - 0x98, 0xad, 0x36, 0x8a, 0xc2, 0xe7, 0x88, 0x6b, 0xa4, 0xac, 0x9b, 0x6f, 0xe5, 0xf4, 0xe9, 0x85, - 0x8d, 0xe7, 0xec, 0x91, 0x54, 0xd9, 0x53, 0x06, 0x14, 0x19, 0xe3, 0x07, 0x68, 0x5e, 0xf6, 0x04, - 0x1c, 0xb6, 0x02, 0x60, 0x36, 0x27, 0x36, 0x73, 0x70, 0x00, 0x36, 0x73, 0x08, 0x05, 0x66, 0xce, - 0xc8, 0xdc, 0xbc, 0x2d, 0xba, 0x82, 0xd2, 0x38, 0x20, 0xfb, 0x42, 0xbe, 0x2f, 0xc5, 0xc6, 0x43, - 0x54, 0xd5, 0x35, 0xdb, 0xf6, 0xa3, 0x06, 0x50, 0xa0, 0x12, 0x42, 0x73, 0xbf, 0x25, 0x37, 0xcf, - 0xaa, 0xca, 0xbd, 0xa3, 0xe5, 0x07, 0x44, 0x5b, 0xfe, 0x21, 0x5a, 0x8c, 0xf7, 0x36, 0x08, 0x05, - 0x07, 0x33, 0x9e, 0xdd, 0x3e, 0x2b, 0xb7, 0xcf, 0xa9, 0xed, 0xdb, 0x17, 0x2a, 0x09, 0x42, 0xca, - 0xba, 0xbe, 0x54, 0xe9, 0xed, 0xb7, 0xd3, 0xd6, 0xf5, 0x75, 0xba, 0xd8, 0x7b, 0x84, 0x2a, 0x0e, - 0x05, 0xcc, 0x41, 0xf7, 0xb4, 0x06, 0x80, 0x69, 0x5e, 0xb3, 0x6d, 0x4c, 0x2a, 0x24, 0xd9, 0x9e, - 0xb6, 0x01, 0x8c, 0xef, 0xa3, 0x6a, 0x52, 0x0d, 0x5d, 0x60, 0x32, 0x9c, 0x82, 0xa8, 0x2f, 0x18, - 0x98, 0x73, 0xca, 0xa5, 0xb1, 0xc6, 0x96, 0x52, 0xa8, 0xe3, 0xb3, 0x1d, 0x21, 0x36, 0x7e, 0x8a, - 0x2a, 0x14, 0x3c, 0x9f, 0x71, 0x8a, 0x45, 0x21, 0x92, 0xc4, 0x16, 0xae, 0x49, 0x6c, 0x2a, 0x8d, - 0x24, 0x98, 0xbd, 0x8f, 0x0c, 0x17, 0x1a, 0xb8, 0x1d, 0x70, 0xbb, 0x85, 0x3d, 0xb0, 0x03, 0x3f, - 0xf4, 0xb9, 0xb9, 0x28, 0x19, 0x55, 0xb4, 0x64, 0x0f, 0x7b, 0xf0, 0x54, 0xac, 0x1b, 0x6b, 0x68, - 0x52, 0xd0, 0x4e, 0x69, 0x2e, 0x49, 0xcd, 0xf1, 0x10, 0x9f, 0x5d, 0x68, 0x89, 0x38, 0x76, 0xf5, - 0x38, 0x9b, 0x82, 0x43, 0xa8, 0xab, 0x37, 0x2d, 0xcb, 0x86, 0x37, 0x97, 0x6d, 0x78, 0x96, 0xd4, - 0x50, 0x08, 0xeb, 0xa8, 0x22, 0x5b, 0xbd, 0xea, 0xfa, 0x21, 0x89, 0x78, 0xd3, 0x5c, 0x91, 0x96, - 0x26, 0xd5, 0xfa, 0x1e, 0xd0, 0xba, 0x58, 0x15, 0x15, 0xa0, 0x15, 0xdf, 0x4b, 0x95, 0x70, 0xa2, - 0xee, 0xdc, 0xc9, 0x59, 0x01, 0x5a, 0x2a, 0x27, 0x76, 0x62, 0x40, 0x51, 0x01, 0x12, 0x33, 0x71, - 0x6e, 0x9a, 0xb5, 0x9c, 0x15, 0x40, 0x5b, 0x89, 0x13, 0x59, 0x8c, 0x54, 0x89, 0x11, 0x9d, 0xbe, - 0xe6, 0x6a, 0xce, 0x91, 0x4a, 0xdb, 0xd0, 0xd9, 0x2e, 0xdc, 0xe5, 0xf4, 0xba, 0x6b, 0x2d, 0xa7, - 0xbb, 0x9c, 0x3e, 0xee, 0x72, 0x7a, 0xdc, 0x75, 0x37, 0xa7, 0xbb, 0x9c, 0x2e, 0x77, 0x3d, 0x43, - 0x23, 0x8e, 0x1d, 0x11, 0x1a, 0x9a, 0x6f, 0xe7, 0x43, 0x1e, 0x76, 0x9e, 0x11, 0x1a, 0x1a, 0xa7, - 0x68, 0x21, 0xb9, 0xf9, 0x49, 0x33, 0x73, 0xc1, 0xc1, 0xe7, 0x6a, 0x46, 0x7a, 0x27, 0x9f, 0x15, - 0x93, 0xeb, 0x6a, 0xa0, 0xdb, 0xd8, 0x96, 0x40, 0x96, 0xf3, 0xd2, 0xcf, 0xd0, 0x14, 0xb4, 0x98, - 0x1f, 0x90, 0x28, 0x09, 0xfb, 0x7a, 0xce, 0xb0, 0x6b, 0xbc, 0x38, 0xec, 0xcf, 0xd1, 0xbb, 0x4d, - 0x1c, 0x34, 0x64, 0xcd, 0x69, 0x51, 0xe2, 0x00, 0x63, 0x7a, 0x5e, 0x90, 0x63, 0x2a, 0x0e, 0x98, - 0x0d, 0x91, 0xab, 0xc7, 0xeb, 0x7b, 0xf2, 0xa2, 0xad, 0x8a, 0x0d, 0x75, 0x7c, 0xb6, 0xa7, 0xd4, - 0xe5, 0x04, 0x60, 0x69, 0xe5, 0x27, 0x91, 0xab, 0x06, 0xee, 0x23, 0x54, 0x71, 0x31, 0xc7, 0x36, - 0x83, 0xc8, 0x15, 0xb3, 0xa4, 0x28, 0x4d, 0xef, 0x5d, 0xb7, 0x66, 0x0a, 0xa4, 0x7d, 0x05, 0x24, - 0x2a, 0x13, 0x46, 0x95, 0xd8, 0x2b, 0x0c, 0x37, 0xc0, 0x76, 0xfd, 0x8e, 0xf9, 0xfe, 0x9b, 0x71, - 0xcb, 0x3e, 0x6e, 0xc0, 0x96, 0xdf, 0x89, 0x9f, 0x3f, 0x10, 0x40, 0x08, 0x11, 0x57, 0xc5, 0x26, - 0x49, 0xd7, 0xfb, 0x49, 0xb7, 0x78, 0xa2, 0xe5, 0x7b, 0x40, 0xe3, 0xe4, 0xdb, 0x2d, 0x96, 0xaa, - 0x95, 0xf9, 0xdd, 0x62, 0x69, 0xbe, 0xb2, 0xb0, 0x5b, 0x2c, 0xbd, 0x5b, 0xb9, 0x67, 0xcd, 0xcb, - 0x9a, 0xd7, 0x68, 0x80, 0xc3, 0xfd, 0x4e, 0xdc, 0x44, 0x74, 0x1a, 0x59, 0xab, 0xc2, 0x0e, 0x05, - 0x4e, 0x7d, 0xd5, 0x52, 0xd5, 0x54, 0x67, 0x47, 0x24, 0x72, 0x80, 0xe9, 0x39, 0xd2, 0x5a, 0xbb, - 0x54, 0x49, 0xa7, 0x46, 0x2d, 0x40, 0x53, 0x75, 0xe6, 0x7d, 0xd6, 0x72, 0x31, 0x07, 0xfd, 0xc0, - 0x9b, 0x45, 0x23, 0x22, 0x02, 0x40, 0xcd, 0xc2, 0x4a, 0x61, 0x7d, 0xcc, 0xd2, 0x5f, 0xc6, 0xff, - 0xa3, 0x91, 0x96, 0xd4, 0x30, 0x6f, 0xae, 0x14, 0xd6, 0xcb, 0x0f, 0x16, 0x36, 0xd2, 0xcf, 0xd7, - 0x8d, 0xec, 0x33, 0xd1, 0xd2, 0xba, 0x0f, 0xcb, 0xbf, 0xfa, 0xe6, 0xcb, 0x7b, 0x1a, 0xa2, 0x36, - 0x87, 0x6e, 0x77, 0x59, 0xb3, 0x80, 0xb5, 0x48, 0xc4, 0xa0, 0xf6, 0xdf, 0x22, 0x9a, 0xae, 0x33, - 0xef, 0x47, 0xb2, 0xd5, 0x3d, 0x83, 0x53, 0xd9, 0xed, 0xc4, 0x63, 0x53, 0x36, 0x3f, 0x12, 0x93, - 0x89, 0x3f, 0x8d, 0x2a, 0x2a, 0x85, 0xc0, 0xb1, 0x08, 0xb3, 0xe4, 0x33, 0x66, 0x25, 0xdf, 0xc6, - 0x32, 0x2a, 0x07, 0x84, 0x31, 0x3b, 0x04, 0xde, 0x24, 0xae, 0x59, 0x94, 0x62, 0x24, 0x96, 0xea, - 0x72, 0xc5, 0xb8, 0x83, 0xc6, 0xbb, 0xde, 0x4c, 0x85, 0xf5, 0x21, 0xab, 0x0c, 0xa9, 0x07, 0xd3, - 0x3a, 0xaa, 0x78, 0x94, 0xb4, 0x23, 0xd7, 0xe6, 0xb4, 0xcd, 0x9b, 0x76, 0x80, 0x3d, 0xb3, 0x24, - 0xd5, 0x26, 0xd5, 0xfa, 0x81, 0x58, 0x7e, 0x8a, 0x3d, 0x51, 0x39, 0x5a, 0xaa, 0x72, 0x20, 0x61, - 0x28, 0x47, 0xe5, 0x68, 0xc9, 0xca, 0x71, 0x84, 0xc6, 0xe5, 0x4c, 0x68, 0x53, 0xf0, 0x28, 0x70, - 0xb3, 0x9c, 0x0f, 0xb5, 0x2c, 0xc1, 0x2c, 0x89, 0x65, 0xdc, 0x45, 0x93, 0x42, 0xeb, 0xd4, 0x8e, - 0xc0, 0xc3, 0x22, 0xb3, 0xcc, 0xf1, 0x95, 0xc2, 0x7a, 0xc9, 0x9a, 0x90, 0xab, 0xcf, 0xf4, 0xa2, - 0xf1, 0x29, 0x1a, 0xd5, 0xc9, 0x6d, 0x4e, 0xe4, 0xb3, 0x1e, 0xe3, 0x18, 0x1f, 0x21, 0x53, 0x3f, - 0x70, 0x58, 0xfb, 0x58, 0xe7, 0x4d, 0xfc, 0xc8, 0x9d, 0x94, 0x7e, 0x9d, 0x55, 0xf2, 0xfd, 0x44, - 0xac, 0x1e, 0xb9, 0x0f, 0xc7, 0x45, 0x06, 0xc5, 0x71, 0xdf, 0x2d, 0x96, 0x86, 0x2a, 0xc5, 0xdd, - 0x62, 0x69, 0xb8, 0x32, 0xb2, 0x5b, 0x2c, 0x8d, 0x54, 0x46, 0x77, 0x8b, 0xa5, 0xb1, 0x0a, 0x52, - 0xe1, 0xb5, 0x03, 0xe2, 0xf9, 0x8e, 0x35, 0x95, 0x34, 0x23, 0xbd, 0x50, 0xb9, 0x58, 0x50, 0x39, - 0x61, 0x95, 0xe3, 0x39, 0x05, 0x53, 0xaf, 0xf6, 0x1d, 0x34, 0xd7, 0x93, 0x7a, 0x71, 0x62, 0x1a, - 0x73, 0xa8, 0xa4, 0x6e, 0x9f, 0xef, 0xca, 0x1c, 0x2c, 0x5a, 0xa3, 0xf2, 0x7b, 0xc7, 0xad, 0xfd, - 0xae, 0x20, 0xf3, 0x79, 0x27, 0x62, 0x40, 0xb9, 0xae, 0x8e, 0x7b, 0xf8, 0x3c, 0x20, 0xd8, 0x1d, - 0x78, 0x8b, 0x2c, 0x34, 0x13, 0xbf, 0xd0, 0x3a, 0x38, 0x68, 0x83, 0x7d, 0xdc, 0x8e, 0xdc, 0x00, - 0xf4, 0x9d, 0x5a, 0xc9, 0xde, 0x29, 0x8d, 0xf9, 0x5c, 0x28, 0x3e, 0x96, 0x7a, 0x96, 0x41, 0x7b, - 0xd6, 0xb2, 0x77, 0xec, 0x0e, 0x5a, 0x1e, 0xc0, 0x29, 0xb9, 0x6b, 0xbf, 0x29, 0xa0, 0xd9, 0x44, - 0x47, 0xbd, 0x28, 0x5f, 0x47, 0xfb, 0x29, 0x32, 0x74, 0xf8, 0x64, 0x89, 0xce, 0x90, 0x5e, 0xca, - 0x92, 0x56, 0x80, 0x5b, 0x98, 0x63, 0x4d, 0xb9, 0x72, 0xda, 0xb5, 0x92, 0x25, 0xbc, 0x82, 0x96, - 0xfa, 0x93, 0x49, 0xf8, 0xfe, 0xb5, 0x80, 0xca, 0x75, 0xe6, 0x59, 0x72, 0xda, 0x04, 0x3a, 0x90, - 0x64, 0x3a, 0x54, 0xc5, 0x4c, 0xa8, 0x8c, 0x19, 0x34, 0x4c, 0x4e, 0x23, 0xa0, 0xe6, 0xb0, 0xdc, - 0xa1, 0x3e, 0x8c, 0x45, 0x84, 0xfc, 0xa4, 0x16, 0x9a, 0x23, 0xf2, 0x2a, 0x8c, 0xf9, 0x4c, 0xbb, - 0x2d, 0x43, 0x73, 0xb7, 0x58, 0xba, 0x59, 0x19, 0x52, 0xe9, 0x67, 0x95, 0x03, 0xff, 0xd8, 0x6e, - 0x3d, 0x68, 0xd9, 0x27, 0x70, 0x6e, 0x4d, 0x84, 0xed, 0x80, 0xfb, 0x36, 0x76, 0x5d, 0x0a, 0x8c, - 0xd5, 0x76, 0xd0, 0x5b, 0x29, 0xae, 0x49, 0x1a, 0x99, 0x68, 0x94, 0xb5, 0x1d, 0xd1, 0xfc, 0x24, - 0xe9, 0x92, 0x15, 0x7f, 0x0a, 0x49, 0x08, 0x8c, 0x61, 0x0f, 0x74, 0x21, 0x8b, 0x3f, 0x6b, 0x1d, - 0x74, 0x4b, 0x42, 0x85, 0xa4, 0x03, 0x56, 0x6a, 0xd4, 0xbe, 0x92, 0x03, 0x6e, 0x66, 0x1d, 0x90, - 0x3d, 0xea, 0xd0, 0x65, 0x47, 0xad, 0xed, 0xa3, 0xc5, 0xbe, 0x76, 0x73, 0x1d, 0xe6, 0x0f, 0x2a, - 0x88, 0x8f, 0x5c, 0xf5, 0xfe, 0xbf, 0xce, 0x19, 0x3e, 0x41, 0x23, 0x38, 0x24, 0xed, 0x88, 0x4b, - 0xfe, 0xd7, 0x19, 0x0b, 0xf4, 0xfe, 0xec, 0x71, 0x6f, 0xc9, 0x88, 0xc5, 0xc4, 0x92, 0xac, 0xfb, - 0x53, 0x01, 0x4d, 0x26, 0x6e, 0xf8, 0xb6, 0x71, 0x36, 0xe5, 0x0d, 0x4e, 0x71, 0x4b, 0x68, 0x3f, - 0x47, 0x33, 0xa2, 0x98, 0xe1, 0xc8, 0x81, 0x20, 0x1f, 0xf7, 0xac, 0xc5, 0x25, 0xb4, 0xd0, 0x0f, - 0x37, 0xb1, 0xfb, 0xf7, 0x02, 0xaa, 0xd4, 0x99, 0xb7, 0x05, 0x81, 0xe8, 0x22, 0xd7, 0x77, 0x98, - 0x89, 0x46, 0xd3, 0x59, 0x3a, 0x66, 0xc5, 0x9f, 0x29, 0x57, 0x16, 0xdf, 0xa4, 0x2b, 0xab, 0xc8, - 0xec, 0xe6, 0x9d, 0x1c, 0xea, 0x1f, 0x85, 0x94, 0x9f, 0xaf, 0x76, 0xb4, 0x14, 0xff, 0x9b, 0x59, - 0xfe, 0xe9, 0x43, 0x0f, 0x0d, 0xca, 0x92, 0x37, 0x7a, 0x34, 0x55, 0x5a, 0xfb, 0xb0, 0x4f, 0x0e, - 0xf8, 0xfb, 0x42, 0x4f, 0x58, 0x73, 0x47, 0x70, 0x01, 0x8d, 0xb9, 0x0a, 0x83, 0xc4, 0x31, 0xbc, - 0x58, 0x48, 0xfb, 0xa7, 0x98, 0xf1, 0x4f, 0x96, 0xfa, 0xdb, 0x68, 0xed, 0x32, 0x5e, 0xc9, 0x01, - 0xfe, 0x58, 0x40, 0xe3, 0x75, 0xe6, 0x6d, 0x8b, 0x89, 0x4c, 0x8e, 0x8c, 0xdf, 0x9e, 0x3b, 0x3a, - 0x2b, 0x6f, 0x62, 0xc2, 0x2c, 0xa1, 0x7c, 0x28, 0x73, 0xea, 0x91, 0xeb, 0x1e, 0x90, 0xc3, 0xa6, - 0xcf, 0x21, 0xf0, 0x19, 0x7f, 0xe4, 0x86, 0x7e, 0x74, 0x59, 0x4e, 0xe9, 0xf6, 0x12, 0xe7, 0x94, - 0xfe, 0xec, 0x17, 0xee, 0x3e, 0xc0, 0x89, 0xe9, 0xcf, 0xd1, 0x7c, 0x92, 0x10, 0xdb, 0x94, 0x84, - 0x6f, 0xd6, 0xfe, 0x5d, 0xb4, 0x7a, 0x09, 0x7a, 0x42, 0x22, 0xce, 0x4a, 0xf1, 0xfe, 0xee, 0x1f, - 0x54, 0xaa, 0x6f, 0x5d, 0x8f, 0xc6, 0x1b, 0x2d, 0x28, 0x19, 0xf2, 0x0f, 0xfe, 0x32, 0x8e, 0x86, - 0xea, 0xcc, 0x33, 0x0e, 0xd0, 0x78, 0xe6, 0x39, 0xb4, 0x98, 0x9d, 0x6e, 0xba, 0xde, 0x2f, 0xd5, - 0xbb, 0x97, 0x8a, 0x93, 0x8e, 0x79, 0x84, 0x26, 0xbb, 0x9e, 0x36, 0xcb, 0x3d, 0x1b, 0xb3, 0x0a, - 0xd5, 0x77, 0x5e, 0xa3, 0x90, 0x60, 0x7f, 0x82, 0x4a, 0xc9, 0x68, 0x34, 0xd7, 0xb3, 0x29, 0x16, - 0x55, 0xef, 0x0c, 0x14, 0x25, 0x48, 0x0d, 0x64, 0xf4, 0x99, 0x36, 0x56, 0xfb, 0x6c, 0xec, 0x56, - 0xaa, 0xbe, 0x77, 0x05, 0xa5, 0x34, 0xe3, 0x64, 0x0e, 0xe8, 0x65, 0x1c, 0x8b, 0xfa, 0x30, 0xee, - 0x6e, 0xd2, 0xc6, 0xa7, 0xa8, 0x9c, 0x6e, 0x72, 0x0b, 0x03, 0x58, 0x28, 0xbc, 0xb5, 0xcb, 0xa4, - 0x09, 0xa4, 0x83, 0xa6, 0x7b, 0xbb, 0x67, 0xad, 0x37, 0x18, 0xdd, 0x3a, 0xd5, 0x7b, 0xaf, 0xd7, - 0x49, 0x8c, 0x1c, 0xa2, 0x89, 0x6c, 0x62, 0x2f, 0xf5, 0x6c, 0xce, 0xc8, 0xab, 0x6f, 0x5f, 0x2e, - 0x4f, 0x80, 0x7d, 0xf4, 0x56, 0xbf, 0x7b, 0xd3, 0xef, 0xe8, 0x3d, 0x5a, 0xd5, 0xf7, 0xaf, 0xa2, - 0x95, 0x35, 0xd5, 0xdb, 0x31, 0x06, 0x79, 0xf9, 0xf5, 0xa6, 0x06, 0x56, 0x79, 0xe3, 0x17, 0x68, - 0x6e, 0x70, 0x8b, 0xba, 0xdc, 0xef, 0x59, 0xb3, 0x0f, 0xae, 0xae, 0x9b, 0x18, 0xff, 0x31, 0x1a, - 0xbb, 0x68, 0x2f, 0xd5, 0x1e, 0x80, 0x44, 0x56, 0xad, 0x0d, 0x96, 0xa5, 0x9d, 0xd6, 0xaf, 0xf2, - 0xaf, 0xf5, 0x4b, 0xf5, 0x6e, 0xad, 0x3e, 0x4e, 0xbb, 0xa4, 0xd8, 0x1b, 0x67, 0xc8, 0x1c, 0x58, - 0xe9, 0xdf, 0x1d, 0xe0, 0xfe, 0x5e, 0xd5, 0xea, 0x07, 0x57, 0x56, 0x4d, 0x1f, 0xb2, 0xdf, 0xe3, - 0xb2, 0xf7, 0x90, 0x7d, 0xb4, 0xfa, 0x1c, 0xf2, 0x92, 0xb7, 0xa1, 0x11, 0xa0, 0x99, 0xbe, 0xef, - 0xef, 0xbb, 0x03, 0x50, 0xb2, 0x6a, 0xd5, 0xfb, 0x57, 0x52, 0x8b, 0xad, 0x55, 0x87, 0x7f, 0x29, - 0xda, 0xfd, 0x63, 0xeb, 0xab, 0x97, 0x4b, 0x85, 0xaf, 0x5f, 0x2e, 0x15, 0xfe, 0xf3, 0x72, 0xa9, - 0xf0, 0xdb, 0x57, 0x4b, 0x37, 0xbe, 0x7e, 0xb5, 0x74, 0xe3, 0x5f, 0xaf, 0x96, 0x6e, 0x1c, 0x7d, - 0x74, 0xc5, 0xff, 0x20, 0x39, 0xdb, 0xbc, 0xf8, 0x29, 0x06, 0x3f, 0x6f, 0x01, 0x3b, 0x1e, 0x91, - 0xbf, 0xb8, 0xf8, 0xf0, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x61, 0x58, 0xb4, 0xa4, 0x2c, 0x22, - 0x00, 0x00, + // 2453 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcd, 0x6f, 0x1c, 0x49, + 0x15, 0xcf, 0xc4, 0x63, 0x7b, 0x5c, 0xe3, 0x8f, 0x71, 0xaf, 0xe3, 0xb4, 0xc7, 0x9f, 0x19, 0x3b, + 0xd9, 0x49, 0x36, 0xb1, 0xd9, 0x04, 0xc1, 0x12, 0x38, 0x90, 0xe0, 0x78, 0xd7, 0x26, 0x13, 0xbc, + 0x6d, 0x6f, 0x2c, 0x99, 0x95, 0x9a, 0x72, 0xf7, 0x9b, 0x9e, 0x96, 0xbb, 0xbb, 0x86, 0xaa, 0x9a, + 0xb1, 0xbd, 0x5c, 0x10, 0x12, 0x07, 0xc4, 0x05, 0x71, 0x00, 0xc4, 0x5f, 0x00, 0x9c, 0xf6, 0x80, + 0x38, 0xf1, 0x07, 0xec, 0x71, 0xc5, 0x09, 0x71, 0x58, 0xa1, 0xe4, 0xb0, 0x7f, 0x03, 0x37, 0x54, + 0x1f, 0xdd, 0xee, 0x9e, 0x0f, 0xc7, 0xf2, 0xe4, 0xb0, 0x97, 0x24, 0x5d, 0xef, 0xd5, 0xef, 0xfd, + 0xea, 0xd5, 0xfb, 0xaa, 0x68, 0xd0, 0x0d, 0x08, 0x7d, 0xc6, 0x7c, 0x12, 0xb1, 0x8d, 0xf6, 0xa3, + 0x0d, 0x7e, 0xba, 0xde, 0xa4, 0x84, 0x13, 0x63, 0x3c, 0x59, 0x5e, 0x6f, 0x3f, 0x2a, 0x4f, 0xe3, + 0xd0, 0x8f, 0xc8, 0x86, 0xfc, 0x53, 0x29, 0x94, 0x6f, 0x3a, 0x84, 0x85, 0x84, 0x6d, 0x84, 0xcc, + 0xdb, 0x68, 0xbf, 0x2f, 0xfe, 0xd2, 0x82, 0x39, 0x25, 0xb0, 0xe5, 0xd7, 0x86, 0xfa, 0xd0, 0xa2, + 0x72, 0xc6, 0x16, 0x85, 0x66, 0x8b, 0x03, 0x8d, 0xb7, 0x65, 0x64, 0x27, 0x84, 0x1e, 0x27, 0xa2, + 0x19, 0x8f, 0x78, 0x44, 0xc1, 0x89, 0x7f, 0xa9, 0xd5, 0xca, 0x6f, 0xe6, 0xd1, 0xe4, 0x4f, 0x9a, + 0xdc, 0x27, 0x11, 0x0e, 0x76, 0x31, 0xc5, 0x21, 0x33, 0x4c, 0x34, 0xda, 0x06, 0x2a, 0x40, 0xcc, + 0xdc, 0xca, 0x50, 0x75, 0xcc, 0x8a, 0x3f, 0x8d, 0xef, 0xa1, 0xb9, 0x10, 0x9f, 0xda, 0x0c, 0xa8, + 0x8f, 0x03, 0xff, 0x33, 0x70, 0xed, 0x90, 0x79, 0x76, 0x00, 0x91, 0xc7, 0x1b, 0xe6, 0xf5, 0x95, + 0xa1, 0xea, 0x90, 0x35, 0x1b, 0xe2, 0xd3, 0xbd, 0x44, 0x5e, 0x63, 0xde, 0x73, 0x29, 0x35, 0x30, + 0x2a, 0x85, 0x7e, 0x64, 0x73, 0xd2, 0xf4, 0x1d, 0xfb, 0x04, 0x7c, 0xaf, 0xc1, 0xcd, 0x21, 0x81, + 0xfe, 0xf4, 0xbb, 0x5f, 0x7c, 0xb5, 0x7c, 0xed, 0x3f, 0x5f, 0x2d, 0x6f, 0x78, 0x3e, 0x6f, 0xb4, + 0x8e, 0xd6, 0x1d, 0x12, 0x6e, 0xe0, 0x20, 0x20, 0x14, 0x3f, 0x88, 0x80, 0x8b, 0x23, 0xc4, 0x9f, + 0x4e, 0x03, 0xfb, 0xd1, 0x46, 0x88, 0x79, 0x63, 0x7d, 0x13, 0x1c, 0x6b, 0x32, 0xf4, 0xa3, 0x7d, + 0x81, 0x77, 0x20, 0xe1, 0x8c, 0x0d, 0x34, 0x23, 0xd8, 0x49, 0x13, 0xcc, 0x6e, 0x02, 0xb5, 0x8f, + 0x02, 0xe2, 0x1c, 0x9b, 0xf9, 0x95, 0xa1, 0x6a, 0xde, 0x9a, 0x0e, 0xf1, 0xa9, 0xd4, 0x66, 0xbb, + 0x40, 0x9f, 0x0a, 0x81, 0x51, 0x47, 0xb3, 0x14, 0x7e, 0xde, 0xf2, 0xa9, 0x38, 0x88, 0x1f, 0xf9, + 0x61, 0x2b, 0xb4, 0x19, 0xc7, 0xc7, 0x60, 0x0e, 0x4b, 0x66, 0xdf, 0xd2, 0xcc, 0x6e, 0x28, 0xf7, + 0x33, 0xf7, 0x78, 0xdd, 0x27, 0xca, 0xfe, 0x76, 0xc4, 0xff, 0xf5, 0xf7, 0x07, 0x48, 0xdf, 0xcb, + 0x76, 0xc4, 0xff, 0xf2, 0xf5, 0xe7, 0xf7, 0x72, 0xd6, 0x4c, 0x8c, 0x57, 0x53, 0x70, 0x7b, 0x02, + 0x4d, 0xb8, 0x8d, 0x42, 0x48, 0xda, 0xa0, 0xd0, 0x6d, 0x17, 0x02, 0x7c, 0x66, 0x9f, 0xf8, 0x91, + 0x4b, 0x4e, 0xcc, 0x11, 0xe5, 0x36, 0xa5, 0x20, 0xf5, 0x37, 0x85, 0xf8, 0x40, 0x4a, 0x8d, 0xaa, + 0x72, 0x1b, 0x34, 0x89, 0xd3, 0x88, 0x1d, 0x3d, 0x2a, 0x77, 0x88, 0xd3, 0x3f, 0x13, 0xcb, 0xda, + 0xc1, 0x87, 0x68, 0xfc, 0x08, 0x38, 0xb6, 0x21, 0xe2, 0x94, 0x34, 0xcf, 0xcc, 0xc2, 0x60, 0xce, + 0x2d, 0x0a, 0xb0, 0x67, 0x0a, 0xcb, 0xf8, 0x14, 0x4d, 0x04, 0x80, 0x69, 0xe4, 0x47, 0x9e, 0x4d, + 0x31, 0x07, 0x73, 0x6c, 0x30, 0xf0, 0xf1, 0x18, 0xcd, 0xc2, 0x1c, 0x8c, 0x10, 0x89, 0xa0, 0xb1, + 0x3d, 0x8a, 0x5d, 0x1f, 0x22, 0x6e, 0xf3, 0x06, 0x05, 0xd6, 0x20, 0x81, 0x6b, 0xa2, 0xc1, 0xcc, + 0x88, 0x70, 0xf8, 0x50, 0xa3, 0xee, 0xc7, 0xa0, 0x06, 0x20, 0x43, 0xb8, 0x54, 0x5d, 0x45, 0x9d, + 0x62, 0x47, 0x04, 0xbf, 0x59, 0x1c, 0xcc, 0x94, 0xb8, 0x25, 0x79, 0x79, 0x5b, 0x1a, 0xd0, 0x78, + 0x86, 0x96, 0xc5, 0xa9, 0x5a, 0x51, 0xbd, 0x15, 0xd4, 0xfd, 0x20, 0x00, 0xd7, 0x56, 0xe9, 0x68, + 0x8b, 0x18, 0x01, 0xc6, 0x99, 0x39, 0x21, 0x03, 0x73, 0x21, 0xc4, 0xa7, 0x9f, 0x9c, 0x6b, 0x1d, + 0x48, 0x25, 0x4b, 0xeb, 0x18, 0x1f, 0xa2, 0x95, 0x4e, 0x18, 0x9d, 0xf1, 0xe7, 0x38, 0x93, 0x12, + 0x67, 0x31, 0x8b, 0x63, 0x29, 0xad, 0x04, 0xe8, 0x33, 0xb4, 0xa8, 0x92, 0x8f, 0xc2, 0x09, 0xa6, + 0xae, 0x3e, 0xbf, 0x1f, 0x36, 0x09, 0xe5, 0x38, 0x72, 0xc0, 0x9c, 0x1a, 0xcc, 0x03, 0x65, 0x89, + 0x6e, 0x49, 0x70, 0xe9, 0x89, 0xed, 0x04, 0xda, 0xf8, 0x75, 0x0e, 0xad, 0x66, 0x8c, 0xd7, 0x01, + 0x6c, 0x0a, 0x6d, 0x88, 0x5a, 0x19, 0x0a, 0xa5, 0xc1, 0x28, 0x2c, 0xa7, 0x28, 0x6c, 0x01, 0x58, + 0xca, 0x40, 0x8a, 0x07, 0x20, 0x23, 0x43, 0x03, 0x07, 0xcd, 0x06, 0x36, 0xa7, 0x07, 0xbc, 0xfa, + 0x94, 0xd5, 0x27, 0x02, 0xd0, 0x70, 0xd0, 0x34, 0xc7, 0xec, 0x38, 0x6b, 0xc5, 0x18, 0xcc, 0xca, + 0x94, 0x40, 0x4c, 0x1b, 0x11, 0x3e, 0x6d, 0xe3, 0xc0, 0x77, 0x31, 0x27, 0x94, 0xd9, 0x6d, 0x66, + 0xab, 0x8d, 0xa2, 0xf0, 0x39, 0x22, 0x8d, 0x94, 0x75, 0xf3, 0x9d, 0x01, 0x7d, 0x7a, 0x6e, 0xe3, + 0x25, 0x7b, 0x22, 0x55, 0x76, 0x95, 0x01, 0x45, 0xc6, 0xf8, 0x01, 0x9a, 0x97, 0x3d, 0x01, 0x87, + 0xcd, 0x00, 0x98, 0xcd, 0x89, 0xcd, 0x1c, 0x1c, 0x80, 0xcd, 0x1c, 0x42, 0x81, 0x99, 0x33, 0x32, + 0x36, 0x6f, 0x8a, 0xae, 0xa0, 0x34, 0xf6, 0xc9, 0x9e, 0x90, 0xef, 0x49, 0xb1, 0xf1, 0x18, 0x95, + 0x75, 0xcd, 0xb6, 0xfd, 0xa8, 0x0e, 0x14, 0xa8, 0x84, 0xd0, 0xdc, 0x6f, 0xc8, 0xcd, 0xb3, 0xaa, + 0x72, 0x6f, 0x6b, 0xf9, 0x3e, 0xd1, 0x96, 0x7f, 0x88, 0x16, 0xe3, 0xbd, 0x75, 0x42, 0xc1, 0xc1, + 0x8c, 0x67, 0xb7, 0xcf, 0xca, 0xed, 0x73, 0x6a, 0xfb, 0xd6, 0xb9, 0x4a, 0x82, 0x90, 0xb2, 0xae, + 0x93, 0x2a, 0xbd, 0xfd, 0x66, 0xda, 0xba, 0x4e, 0xa7, 0xf3, 0xbd, 0x87, 0xa8, 0xe4, 0x50, 0xc0, + 0x1c, 0x74, 0x4f, 0xab, 0x03, 0x98, 0xe6, 0x15, 0xdb, 0xc6, 0xa4, 0x42, 0x92, 0xed, 0x69, 0x0b, + 0xc0, 0xf8, 0x3e, 0x2a, 0x27, 0xd5, 0xd0, 0x05, 0x26, 0xaf, 0x53, 0x10, 0xf5, 0x05, 0x03, 0x73, + 0x4e, 0xb9, 0x34, 0xd6, 0xd8, 0x54, 0x0a, 0x35, 0x7c, 0xba, 0x2d, 0xc4, 0xc6, 0x4f, 0x51, 0x89, + 0x82, 0xe7, 0x33, 0x4e, 0xb1, 0x28, 0x44, 0x92, 0xd8, 0xc2, 0x15, 0x89, 0x4d, 0xa5, 0x91, 0x04, + 0xb3, 0xfb, 0xc8, 0x70, 0xa1, 0x8e, 0x5b, 0x01, 0xb7, 0x9b, 0xd8, 0x03, 0x3b, 0xf0, 0x43, 0x9f, + 0x9b, 0x8b, 0x92, 0x51, 0x49, 0x4b, 0x76, 0xb1, 0x07, 0xcf, 0xc5, 0xba, 0xb1, 0x86, 0x26, 0x05, + 0xed, 0x94, 0xe6, 0x92, 0xd4, 0x1c, 0x0f, 0xf1, 0xe9, 0xb9, 0x96, 0xb8, 0xc7, 0x8e, 0x1e, 0x67, + 0x53, 0x70, 0x08, 0x75, 0xf5, 0xa6, 0x65, 0xd9, 0xf0, 0xe6, 0xb2, 0x0d, 0xcf, 0x92, 0x1a, 0x0a, + 0xa1, 0x8a, 0x4a, 0xb2, 0xd5, 0xab, 0xae, 0x1f, 0x92, 0x88, 0x37, 0xcc, 0x15, 0x69, 0x69, 0x52, + 0xad, 0xef, 0x02, 0xad, 0x89, 0x55, 0x51, 0x01, 0x9a, 0x71, 0x5e, 0xaa, 0x80, 0x13, 0x75, 0xe7, + 0xd6, 0x80, 0x15, 0xa0, 0xa9, 0x62, 0x62, 0x3b, 0x06, 0x14, 0x15, 0x20, 0x31, 0x13, 0xc7, 0xa6, + 0x59, 0x19, 0xb0, 0x02, 0x68, 0x2b, 0x71, 0x20, 0x8b, 0x91, 0x2a, 0x31, 0xa2, 0xc3, 0xd7, 0x5c, + 0x1d, 0x70, 0xa4, 0xd2, 0x36, 0x74, 0xb4, 0x0b, 0x77, 0x39, 0xdd, 0xee, 0x5a, 0x1b, 0xd0, 0x5d, + 0x4e, 0x0f, 0x77, 0x39, 0x5d, 0xee, 0xba, 0x3d, 0xa0, 0xbb, 0x9c, 0x0e, 0x77, 0xbd, 0x40, 0x23, + 0x8e, 0x1d, 0x11, 0x1a, 0x9a, 0x77, 0x06, 0x43, 0x1e, 0x76, 0x5e, 0x10, 0x1a, 0x1a, 0x3f, 0x43, + 0x53, 0xd0, 0x64, 0x7e, 0x40, 0xa2, 0xc4, 0xfb, 0xd5, 0x01, 0xbd, 0xaf, 0xf1, 0x62, 0xef, 0xbf, + 0x44, 0x77, 0x1b, 0x38, 0xa8, 0xcb, 0xd4, 0x6f, 0x52, 0xe2, 0x00, 0x63, 0xba, 0x6d, 0xcb, 0x69, + 0x11, 0x07, 0xcc, 0x86, 0xc8, 0xd5, 0x53, 0xee, 0x3d, 0x19, 0xef, 0xab, 0x62, 0x43, 0x0d, 0x9f, + 0xee, 0x2a, 0x75, 0xd9, 0x88, 0x2d, 0xad, 0xfc, 0x2c, 0x72, 0xd5, 0xdc, 0x7b, 0x88, 0x4a, 0x2e, + 0xe6, 0xd8, 0x66, 0x10, 0xb9, 0x62, 0xa4, 0x13, 0x15, 0xe2, 0xbd, 0xab, 0x96, 0x2e, 0x81, 0xb4, + 0xa7, 0x80, 0x44, 0x81, 0xc0, 0xa8, 0x14, 0x7b, 0x85, 0xe1, 0x3a, 0xd8, 0xae, 0xdf, 0x36, 0xef, + 0xbf, 0x1d, 0xb7, 0xec, 0xe1, 0x3a, 0x6c, 0xfa, 0xed, 0xf8, 0x15, 0x02, 0x01, 0x84, 0x10, 0x71, + 0x95, 0xf3, 0x49, 0xd4, 0x3c, 0x48, 0x8a, 0xf6, 0x33, 0x2d, 0xdf, 0x05, 0x1a, 0xc7, 0xc0, 0x4e, + 0xbe, 0x50, 0x2e, 0xcd, 0xef, 0xe4, 0x0b, 0xf3, 0xa5, 0x85, 0x9d, 0x7c, 0xe1, 0xdd, 0x52, 0x75, + 0x27, 0x5f, 0xb8, 0x5b, 0xba, 0x67, 0x2d, 0x24, 0x35, 0x3c, 0x19, 0x4b, 0x5c, 0x70, 0xf0, 0x99, + 0x9c, 0x76, 0xad, 0x79, 0x59, 0x9e, 0xea, 0x75, 0x70, 0xb8, 0xdf, 0x8e, 0xeb, 0xbd, 0xd6, 0xb3, + 0x56, 0x05, 0x17, 0x0a, 0x9c, 0xfa, 0xaa, 0xfb, 0xa9, 0x01, 0xcc, 0x8e, 0x48, 0xe4, 0x00, 0xd3, + 0x23, 0x9f, 0xb5, 0x76, 0xa1, 0x92, 0x0e, 0x9f, 0x4a, 0x80, 0xa6, 0x6a, 0xcc, 0xfb, 0xa4, 0xe9, + 0x62, 0x0e, 0xfa, 0x2d, 0x36, 0x8b, 0x46, 0xc4, 0x2d, 0x01, 0x35, 0x73, 0x2b, 0xb9, 0xea, 0x98, + 0xa5, 0xbf, 0x8c, 0x6f, 0xa3, 0x91, 0xa6, 0xd4, 0x30, 0xaf, 0xaf, 0xe4, 0xaa, 0xc5, 0x87, 0x0b, + 0xeb, 0xe9, 0x97, 0xe6, 0x7a, 0xf6, 0x45, 0x67, 0x69, 0xdd, 0xc7, 0xc5, 0x5f, 0x7d, 0xfd, 0xf9, + 0x3d, 0x0d, 0x51, 0x99, 0x43, 0x37, 0x3b, 0xac, 0x59, 0xc0, 0x9a, 0x24, 0x62, 0x50, 0xf9, 0x5f, + 0x1e, 0x4d, 0xd7, 0x98, 0xf7, 0x23, 0xd9, 0x95, 0x5e, 0xc0, 0x89, 0x6c, 0x4c, 0xe2, 0x5d, 0x28, + 0xfb, 0x14, 0x89, 0xc9, 0xc4, 0x9f, 0x46, 0x19, 0x15, 0x42, 0xe0, 0x58, 0x84, 0x82, 0xe4, 0x33, + 0x66, 0x25, 0xdf, 0xc6, 0x32, 0x2a, 0x06, 0x84, 0x31, 0x3b, 0x04, 0xde, 0x20, 0xae, 0x99, 0x97, + 0x62, 0x24, 0x96, 0x6a, 0x72, 0xc5, 0xb8, 0x85, 0xc6, 0x3b, 0x9e, 0x37, 0xb9, 0xea, 0x90, 0x55, + 0x84, 0xd4, 0xdb, 0xa6, 0x8a, 0x4a, 0x1e, 0x25, 0xad, 0xc8, 0xb5, 0x39, 0x6d, 0xf1, 0x86, 0x1d, + 0x60, 0xcf, 0x2c, 0x48, 0xb5, 0x49, 0xb5, 0xbe, 0x2f, 0x96, 0x9f, 0x63, 0x4f, 0x24, 0x79, 0x53, + 0x25, 0x39, 0x12, 0x86, 0x06, 0x48, 0xf2, 0xa6, 0x4c, 0xf2, 0x43, 0x34, 0x2e, 0xc7, 0x37, 0x9b, + 0x82, 0x47, 0x81, 0x9b, 0xc5, 0xc1, 0x50, 0x8b, 0x12, 0xcc, 0x92, 0x58, 0xc6, 0x6d, 0x34, 0x29, + 0xb4, 0x4e, 0xec, 0x08, 0x3c, 0x2c, 0x22, 0xcb, 0x1c, 0x5f, 0xc9, 0x55, 0x0b, 0xd6, 0x84, 0x5c, + 0x7d, 0xa1, 0x17, 0x8d, 0x8f, 0xd1, 0xa8, 0x4e, 0x00, 0x73, 0x62, 0x30, 0xeb, 0x31, 0x8e, 0xf1, + 0x01, 0x32, 0xf5, 0x5b, 0x84, 0xb5, 0x8e, 0x74, 0xdc, 0xc4, 0xef, 0xd1, 0x49, 0xe9, 0xd7, 0x59, + 0x25, 0xdf, 0x4b, 0xc4, 0xea, 0x3d, 0xfa, 0x78, 0x5c, 0x44, 0x50, 0x7c, 0xef, 0x3b, 0xf9, 0xc2, + 0x50, 0x29, 0xbf, 0x93, 0x2f, 0x0c, 0x97, 0x46, 0x76, 0xf2, 0x85, 0x91, 0xd2, 0xe8, 0x4e, 0xbe, + 0x30, 0x56, 0x42, 0xea, 0x7a, 0xed, 0x80, 0x78, 0xbe, 0x63, 0x4d, 0x25, 0x7d, 0x43, 0x2f, 0x94, + 0xce, 0x17, 0x54, 0x4c, 0x58, 0xc5, 0x78, 0xa4, 0xc0, 0xd4, 0xab, 0x7c, 0x07, 0xcd, 0x75, 0x85, + 0x5e, 0x1c, 0x98, 0xc6, 0x1c, 0x2a, 0xa8, 0xec, 0xf3, 0x5d, 0x19, 0x83, 0x79, 0x6b, 0x54, 0x7e, + 0x6f, 0xbb, 0x95, 0xdf, 0xe7, 0x64, 0x3c, 0x6f, 0x47, 0x0c, 0x28, 0xd7, 0x15, 0x74, 0x17, 0x9f, + 0x05, 0x04, 0xbb, 0x7d, 0xb3, 0xc8, 0x42, 0x33, 0xf1, 0x63, 0xaa, 0x8d, 0x83, 0x16, 0xd8, 0x47, + 0xad, 0xc8, 0x0d, 0x40, 0xe7, 0xd4, 0x4a, 0x36, 0xa7, 0x34, 0xe6, 0x4b, 0xa1, 0xf8, 0x54, 0xea, + 0x59, 0x06, 0xed, 0x5a, 0xcb, 0xe6, 0xd8, 0x2d, 0xb4, 0xdc, 0x87, 0x53, 0x92, 0x6b, 0xbf, 0xcd, + 0xa1, 0xd9, 0x44, 0x47, 0x3d, 0xfe, 0xde, 0x44, 0xfb, 0x39, 0x32, 0xf4, 0xf5, 0xc9, 0x32, 0x9e, + 0x21, 0xbd, 0x94, 0x25, 0xad, 0x00, 0x37, 0x31, 0xc7, 0x9a, 0x72, 0xe9, 0xa4, 0x63, 0x25, 0x4b, + 0x78, 0x05, 0x2d, 0xf5, 0x26, 0x93, 0xf0, 0xfd, 0x5b, 0x0e, 0x15, 0x6b, 0xcc, 0xb3, 0xe4, 0x60, + 0x08, 0xb4, 0x2f, 0xc9, 0xf4, 0x55, 0xe5, 0x33, 0x57, 0x65, 0xcc, 0xa0, 0x61, 0x72, 0x12, 0x01, + 0x35, 0x87, 0xe5, 0x0e, 0xf5, 0x61, 0x2c, 0x22, 0xe4, 0x27, 0xb5, 0xd0, 0x1c, 0x91, 0xa9, 0x30, + 0xe6, 0x33, 0xed, 0xb6, 0x0c, 0xcd, 0x9d, 0x7c, 0xe1, 0x7a, 0x69, 0x48, 0x85, 0x9f, 0x55, 0x0c, + 0xfc, 0x23, 0xbb, 0xf9, 0xb0, 0x69, 0x1f, 0xc3, 0x99, 0x35, 0x11, 0xb6, 0x02, 0xee, 0xdb, 0xd8, + 0x75, 0x29, 0x30, 0x56, 0xd9, 0x46, 0xef, 0xa4, 0xb8, 0x26, 0x61, 0x64, 0xa2, 0x51, 0xd6, 0x72, + 0x44, 0x83, 0x94, 0xa4, 0x0b, 0x56, 0xfc, 0x29, 0x24, 0x21, 0x30, 0x86, 0x3d, 0xd0, 0x85, 0x2c, + 0xfe, 0xac, 0xb4, 0xd1, 0x0d, 0x09, 0x15, 0x92, 0x36, 0x58, 0xa9, 0xa9, 0xf8, 0x52, 0x0e, 0xb8, + 0x9e, 0x75, 0x40, 0xf6, 0xa8, 0x43, 0x17, 0x1d, 0xb5, 0xb2, 0x87, 0x16, 0x7b, 0xda, 0x1d, 0xe8, + 0x30, 0x7f, 0x54, 0x97, 0xf8, 0xc4, 0x55, 0x4f, 0xf5, 0xab, 0x9c, 0xe1, 0x23, 0x34, 0x82, 0x43, + 0xd2, 0x8a, 0xb8, 0xe4, 0x7f, 0x95, 0xd1, 0x41, 0xef, 0xcf, 0x1e, 0xf7, 0x86, 0xbc, 0xb1, 0x98, + 0x58, 0x12, 0x75, 0x7f, 0xce, 0xa1, 0xc9, 0xc4, 0x0d, 0xdf, 0x34, 0xce, 0xa6, 0xcc, 0xe0, 0x14, + 0xb7, 0x84, 0xf6, 0x4b, 0x34, 0x23, 0x8a, 0x19, 0x8e, 0x1c, 0x08, 0x06, 0xe3, 0x9e, 0xb5, 0xb8, + 0x84, 0x16, 0x7a, 0xe1, 0x26, 0x76, 0xff, 0x91, 0x43, 0xa5, 0x1a, 0xf3, 0x36, 0x21, 0x10, 0x5d, + 0xe4, 0xea, 0x0e, 0x33, 0xd1, 0x68, 0x3a, 0x4a, 0xc7, 0xac, 0xf8, 0x33, 0xe5, 0xca, 0xfc, 0xdb, + 0x74, 0x65, 0x19, 0x99, 0x9d, 0xbc, 0x93, 0x43, 0xfd, 0x33, 0x97, 0xf2, 0xf3, 0xe5, 0x8e, 0x96, + 0xe2, 0x7f, 0x3d, 0xcb, 0x3f, 0x7d, 0xe8, 0xa1, 0x7e, 0x51, 0xf2, 0x56, 0x8f, 0xa6, 0x4a, 0x6b, + 0x0f, 0xf6, 0xc9, 0x01, 0xff, 0x90, 0xeb, 0xba, 0xd6, 0x81, 0x6f, 0x70, 0x01, 0x8d, 0xb9, 0x0a, + 0x83, 0xc4, 0x77, 0x78, 0xbe, 0x90, 0xf6, 0x4f, 0x3e, 0xe3, 0x9f, 0x2c, 0xf5, 0x3b, 0x68, 0xed, + 0x22, 0x5e, 0xc9, 0x01, 0xfe, 0x94, 0x43, 0xe3, 0x35, 0xe6, 0x6d, 0x89, 0x89, 0x4c, 0x8e, 0x8c, + 0xdf, 0x9c, 0x1c, 0x9d, 0x95, 0x99, 0x98, 0x30, 0x4b, 0x28, 0x1f, 0xc8, 0x98, 0x7a, 0xe2, 0xba, + 0xfb, 0xe4, 0xa0, 0xe1, 0x73, 0x08, 0x7c, 0xc6, 0x9f, 0xb8, 0xa1, 0x1f, 0x5d, 0x14, 0x53, 0xba, + 0xbd, 0xc4, 0x31, 0xa5, 0x3f, 0x7b, 0x5d, 0x77, 0x0f, 0xe0, 0xc4, 0xf4, 0xa7, 0x68, 0x3e, 0x09, + 0x88, 0x2d, 0x4a, 0xc2, 0xb7, 0x6b, 0xff, 0x36, 0x5a, 0xbd, 0x00, 0x3d, 0x21, 0x11, 0x47, 0xa5, + 0x78, 0x2a, 0xf7, 0xbe, 0x54, 0xaa, 0xb3, 0xae, 0x4b, 0xe3, 0xad, 0x16, 0x94, 0x0c, 0xf9, 0x87, + 0x7f, 0x1d, 0x47, 0x43, 0x35, 0xe6, 0x19, 0xfb, 0x68, 0x3c, 0xf3, 0x1c, 0x5a, 0xcc, 0x4e, 0x37, + 0x1d, 0xef, 0x97, 0xf2, 0xed, 0x0b, 0xc5, 0x49, 0xc7, 0x3c, 0x44, 0x93, 0x1d, 0x4f, 0x9b, 0xe5, + 0xae, 0x8d, 0x59, 0x85, 0xf2, 0xbb, 0x6f, 0x50, 0x48, 0xb0, 0x3f, 0x42, 0x85, 0x64, 0x34, 0x9a, + 0xeb, 0xda, 0x14, 0x8b, 0xca, 0xb7, 0xfa, 0x8a, 0x12, 0xa4, 0x3a, 0x32, 0x7a, 0x4c, 0x1b, 0xab, + 0x3d, 0x36, 0x76, 0x2a, 0x95, 0xdf, 0xbb, 0x84, 0x52, 0x9a, 0x71, 0x32, 0x07, 0x74, 0x33, 0x8e, + 0x45, 0x3d, 0x18, 0x77, 0x36, 0x69, 0xe3, 0x63, 0x54, 0x4c, 0x37, 0xb9, 0x85, 0x3e, 0x2c, 0x14, + 0xde, 0xda, 0x45, 0xd2, 0x04, 0xd2, 0x41, 0xd3, 0xdd, 0xdd, 0xb3, 0xd2, 0x7d, 0x19, 0x9d, 0x3a, + 0xe5, 0x7b, 0x6f, 0xd6, 0x49, 0x8c, 0x1c, 0xa0, 0x89, 0x6c, 0x60, 0x2f, 0x75, 0x6d, 0xce, 0xc8, + 0xcb, 0x77, 0x2e, 0x96, 0x27, 0xc0, 0x3e, 0x7a, 0xa7, 0x57, 0xde, 0xf4, 0x3a, 0x7a, 0x97, 0x56, + 0xf9, 0xfe, 0x65, 0xb4, 0xb2, 0xa6, 0xba, 0x3b, 0x46, 0x3f, 0x2f, 0xbf, 0xd9, 0x54, 0xdf, 0x2a, + 0x6f, 0xfc, 0x02, 0xcd, 0xf5, 0x6f, 0x51, 0x17, 0xfb, 0x3d, 0x6b, 0xf6, 0xe1, 0xe5, 0x75, 0x13, + 0xe3, 0x3f, 0x46, 0x63, 0xe7, 0xed, 0xa5, 0xdc, 0x05, 0x90, 0xc8, 0xca, 0x95, 0xfe, 0xb2, 0xb4, + 0xd3, 0x7a, 0x55, 0xfe, 0xb5, 0x5e, 0xa1, 0xde, 0xa9, 0xd5, 0xc3, 0x69, 0x17, 0x14, 0x7b, 0xe3, + 0x14, 0x99, 0x7d, 0x2b, 0xfd, 0xdd, 0x3e, 0xee, 0xef, 0x56, 0x2d, 0xbf, 0x7f, 0x69, 0xd5, 0xf4, + 0x21, 0x7b, 0x3d, 0x2e, 0xbb, 0x0f, 0xd9, 0x43, 0xab, 0xc7, 0x21, 0x2f, 0x78, 0x1b, 0x1a, 0x01, + 0x9a, 0xe9, 0xf9, 0xfe, 0xbe, 0xdd, 0x07, 0x25, 0xab, 0x56, 0x7e, 0x70, 0x29, 0xb5, 0xd8, 0x5a, + 0x79, 0xf8, 0x97, 0xa2, 0xdd, 0x3f, 0xb5, 0xbe, 0x78, 0xb5, 0x94, 0xfb, 0xf2, 0xd5, 0x52, 0xee, + 0xbf, 0xaf, 0x96, 0x72, 0xbf, 0x7b, 0xbd, 0x74, 0xed, 0xcb, 0xd7, 0x4b, 0xd7, 0xfe, 0xfd, 0x7a, + 0xe9, 0xda, 0xe1, 0x07, 0x97, 0xfc, 0x0f, 0x92, 0xd3, 0x8d, 0xf3, 0x5f, 0x4d, 0xf0, 0xb3, 0x26, + 0xb0, 0xa3, 0x11, 0xf9, 0xe3, 0x88, 0x47, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x53, 0xc4, 0x24, + 0x84, 0xd7, 0x21, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2730,22 +2728,6 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0xc2 } } - if len(m.TopicFeeRevenueDecayRate) > 0 { - for iNdEx := len(m.TopicFeeRevenueDecayRate) - 1; iNdEx >= 0; iNdEx-- { - { - size := m.TopicFeeRevenueDecayRate[iNdEx].Size() - i -= size - if _, err := m.TopicFeeRevenueDecayRate[iNdEx].MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintTx(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2 - i-- - dAtA[i] = 0xba - } - } if len(m.CNorm) > 0 { for iNdEx := len(m.CNorm) - 1; iNdEx >= 0; iNdEx-- { { @@ -4750,12 +4732,6 @@ func (m *OptionalParams) Size() (n int) { n += 2 + l + sovTx(uint64(l)) } } - if len(m.TopicFeeRevenueDecayRate) > 0 { - for _, e := range m.TopicFeeRevenueDecayRate { - l = e.Size() - n += 2 + l + sovTx(uint64(l)) - } - } if len(m.EpsilonReputer) > 0 { for _, e := range m.EpsilonReputer { l = e.Size() @@ -7167,42 +7143,6 @@ func (m *OptionalParams) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 39: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TopicFeeRevenueDecayRate", 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.TopicFeeRevenueDecayRate = append(m.TopicFeeRevenueDecayRate, v) - if err := m.TopicFeeRevenueDecayRate[len(m.TopicFeeRevenueDecayRate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 40: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field EpsilonReputer", wireType)