From 79656349927650709c93f4eb913266700cdc46f0 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 2 Jul 2024 17:04:35 +0200 Subject: [PATCH 01/13] remove historical info --- x/staking/keeper/abci.go | 7 - x/staking/keeper/grpc_query.go | 11 +- x/staking/keeper/historical_info.go | 53 ------ x/staking/keeper/historical_info_test.go | 173 ------------------ x/staking/keeper/keeper.go | 19 -- x/staking/module.go | 6 - .../proto/cosmos/staking/v1beta1/query.proto | 3 + 7 files changed, 4 insertions(+), 268 deletions(-) delete mode 100644 x/staking/keeper/historical_info.go delete mode 100644 x/staking/keeper/historical_info_test.go diff --git a/x/staking/keeper/abci.go b/x/staking/keeper/abci.go index 59db9be890cb..dc14285ccf68 100644 --- a/x/staking/keeper/abci.go +++ b/x/staking/keeper/abci.go @@ -9,13 +9,6 @@ import ( "github.com/cosmos/cosmos-sdk/telemetry" ) -// BeginBlocker will persist the current header and validator set as a historical entry -// and prune the oldest entry based on the HistoricalEntries parameter -func (k *Keeper) BeginBlocker(ctx context.Context) error { - defer telemetry.ModuleMeasureSince(types.ModuleName, telemetry.Now(), telemetry.MetricKeyBeginBlocker) - return k.TrackHistoricalInfo(ctx) -} - // EndBlocker called at every block, update validator set func (k *Keeper) EndBlocker(ctx context.Context) ([]appmodule.ValidatorUpdate, error) { start := telemetry.Now() diff --git a/x/staking/keeper/grpc_query.go b/x/staking/keeper/grpc_query.go index 3fece4866509..911bde082e4f 100644 --- a/x/staking/keeper/grpc_query.go +++ b/x/staking/keeper/grpc_query.go @@ -409,16 +409,7 @@ func (k Querier) HistoricalInfo(ctx context.Context, req *types.QueryHistoricalI return nil, status.Error(codes.InvalidArgument, "empty request") } - if req.Height < 0 { - return nil, status.Error(codes.InvalidArgument, "height cannot be negative") - } - - hi, err := k.Keeper.HistoricalInfo.Get(ctx, uint64(req.Height)) - if err != nil { - return nil, status.Errorf(codes.NotFound, "historical info for height %d not found", req.Height) - } - - return &types.QueryHistoricalInfoResponse{HistoricalRecord: &hi}, nil + return nil, status.Error(codes.Internal, "this endpoint has been deprecated and removed in 0.52") } // Redelegations queries redelegations of given address diff --git a/x/staking/keeper/historical_info.go b/x/staking/keeper/historical_info.go deleted file mode 100644 index d0d500ebad89..000000000000 --- a/x/staking/keeper/historical_info.go +++ /dev/null @@ -1,53 +0,0 @@ -package keeper - -import ( - "context" - - "cosmossdk.io/x/staking/types" -) - -// TrackHistoricalInfo saves the latest historical-info and deletes the oldest -// heights that are below pruning height -func (k Keeper) TrackHistoricalInfo(ctx context.Context) error { - entryNum, err := k.HistoricalEntries(ctx) - if err != nil { - return err - } - - headerInfo := k.HeaderService.HeaderInfo(ctx) - - // Prune store to ensure we only have parameter-defined historical entries. - // In most cases, this will involve removing a single historical entry. - // In the rare scenario when the historical entries gets reduced to a lower value k' - // from the original value k. k - k' entries must be deleted from the store. - // Since the entries to be deleted are always in a continuous range, we can iterate - // over the historical entries starting from the most recent version to be pruned - // and then return at the first empty entry. - for i := headerInfo.Height - int64(entryNum); i >= 0; i-- { - has, err := k.HistoricalInfo.Has(ctx, uint64(i)) - if err != nil { - return err - } - if !has { - break - } - if err = k.HistoricalInfo.Remove(ctx, uint64(i)); err != nil { - return err - } - } - - // if there is no need to persist historicalInfo, return - if entryNum == 0 { - return nil - } - - ci := k.cometInfoService.CometInfo(ctx) - historicalEntry := types.HistoricalRecord{ - Time: &headerInfo.Time, - ValidatorsHash: ci.ValidatorsHash, - Apphash: headerInfo.AppHash, - } - - // Set latest HistoricalInfo at current height - return k.HistoricalInfo.Set(ctx, uint64(headerInfo.Height), historicalEntry) -} diff --git a/x/staking/keeper/historical_info_test.go b/x/staking/keeper/historical_info_test.go deleted file mode 100644 index c41bfba3e188..000000000000 --- a/x/staking/keeper/historical_info_test.go +++ /dev/null @@ -1,173 +0,0 @@ -package keeper_test - -import ( - "time" - - "cosmossdk.io/collections" - coreheader "cosmossdk.io/core/header" - "cosmossdk.io/math" - "cosmossdk.io/x/staking/testutil" - stakingtypes "cosmossdk.io/x/staking/types" -) - -// IsValSetSorted reports whether valset is sorted. -func IsValSetSorted(data []stakingtypes.Validator, powerReduction math.Int) bool { - n := len(data) - for i := n - 1; i > 0; i-- { - if stakingtypes.ValidatorsByVotingPower(data).Less(i, i-1, powerReduction) { - return false - } - } - return true -} - -func (s *KeeperTestSuite) TestHistoricalInfo() { - ctx, keeper := s.ctx, s.stakingKeeper - require := s.Require() - - _, addrVals := createValAddrs(50) - - validators := make([]stakingtypes.Validator, len(addrVals)) - - for i, valAddr := range addrVals { - validators[i] = testutil.NewValidator(s.T(), valAddr, PKs[i]) - } - - time := ctx.BlockTime() - hi := stakingtypes.HistoricalRecord{ - Time: &time, - ValidatorsHash: ctx.CometInfo().ValidatorsHash, - Apphash: ctx.HeaderInfo().AppHash, - } - require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(2), hi)) - - recv, err := keeper.HistoricalInfo.Get(ctx, uint64(2)) - require.NoError(err, "HistoricalInfo found after set") - require.Equal(hi, recv, "HistoricalInfo not equal") - - require.NoError(keeper.HistoricalInfo.Remove(ctx, uint64(2))) - - recv, err = keeper.HistoricalInfo.Get(ctx, uint64(2)) - require.ErrorIs(err, collections.ErrNotFound, "HistoricalInfo not found after delete") - require.Equal(stakingtypes.HistoricalRecord{}, recv, "HistoricalInfo is not empty") -} - -func (s *KeeperTestSuite) TestTrackHistoricalInfo() { - ctx, keeper := s.ctx, s.stakingKeeper - require := s.Require() - - _, addrVals := createValAddrs(50) - - // set historical entries in params to 5 - params := stakingtypes.DefaultParams() - params.HistoricalEntries = 5 - require.NoError(keeper.Params.Set(ctx, params)) - - // set historical info at 5, 4 which should be pruned - // and check that it has been stored - t := time.Now().Round(0).UTC() - hi4 := stakingtypes.HistoricalRecord{ - Time: &t, - ValidatorsHash: []byte("validatorHash"), - Apphash: []byte("AppHash"), - } - - hi5 := stakingtypes.HistoricalRecord{ - Time: &t, - ValidatorsHash: []byte("validatorHash"), - Apphash: []byte("AppHash"), - } - - require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(4), hi4)) - require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(5), hi5)) - recv, err := keeper.HistoricalInfo.Get(ctx, uint64(4)) - require.NoError(err) - require.Equal(hi4, recv) - recv, err = keeper.HistoricalInfo.Get(ctx, uint64(5)) - require.NoError(err) - require.Equal(hi5, recv) - - // Set bonded validators in keeper - val1 := testutil.NewValidator(s.T(), addrVals[2], PKs[2]) - val1.Status = stakingtypes.Bonded // when not bonded, consensus power is Zero - val1.Tokens = keeper.TokensFromConsensusPower(ctx, 10) - require.NoError(keeper.SetValidator(ctx, val1)) - valbz, err := keeper.ValidatorAddressCodec().StringToBytes(val1.GetOperator()) - require.NoError(err) - require.NoError(keeper.SetLastValidatorPower(ctx, valbz, 10)) - val2 := testutil.NewValidator(s.T(), addrVals[3], PKs[3]) - val1.Status = stakingtypes.Bonded - val2.Tokens = keeper.TokensFromConsensusPower(ctx, 80) - require.NoError(keeper.SetValidator(ctx, val2)) - valbz, err = keeper.ValidatorAddressCodec().StringToBytes(val2.GetOperator()) - require.NoError(err) - require.NoError(keeper.SetLastValidatorPower(ctx, valbz, 80)) - - vals := []stakingtypes.Validator{val1, val2} - require.True(IsValSetSorted(vals, keeper.PowerReduction(ctx))) - - // Set Header for BeginBlock context - ctx = ctx.WithHeaderInfo(coreheader.Info{ - ChainID: "HelloChain", - Height: 10, - Time: t, - }) - - require.NoError(keeper.TrackHistoricalInfo(ctx)) - - // Check HistoricalInfo at height 10 is persisted - expected := stakingtypes.HistoricalRecord{ - Time: &t, - ValidatorsHash: ctx.CometInfo().ValidatorsHash, - Apphash: ctx.HeaderInfo().AppHash, - } - recv, err = keeper.HistoricalInfo.Get(ctx, uint64(10)) - require.NoError(err, "GetHistoricalInfo failed after BeginBlock") - require.Equal(expected, recv, "GetHistoricalInfo returned unexpected result") - - // Check HistoricalInfo at height 5, 4 is pruned - recv, err = keeper.HistoricalInfo.Get(ctx, uint64(4)) - require.ErrorIs(err, collections.ErrNotFound, "GetHistoricalInfo did not prune earlier height") - require.Equal(stakingtypes.HistoricalRecord{}, recv, "GetHistoricalInfo at height 4 is not empty after prune") - recv, err = keeper.HistoricalInfo.Get(ctx, uint64(5)) - require.ErrorIs(err, collections.ErrNotFound, "GetHistoricalInfo did not prune first prune height") - require.Equal(stakingtypes.HistoricalRecord{}, recv, "GetHistoricalInfo at height 5 is not empty after prune") -} - -func (s *KeeperTestSuite) TestGetAllHistoricalInfo() { - ctx, keeper := s.ctx, s.stakingKeeper - require := s.Require() - - t := time.Now().Round(0).UTC() - - hist1 := stakingtypes.HistoricalRecord{ - Time: &t, - ValidatorsHash: nil, - Apphash: nil, - } - hist2 := stakingtypes.HistoricalRecord{ - Time: &t, - ValidatorsHash: nil, - Apphash: nil, - } - hist3 := stakingtypes.HistoricalRecord{ - Time: &t, - ValidatorsHash: nil, - Apphash: nil, - } - - expHistInfos := []stakingtypes.HistoricalRecord{hist1, hist2, hist3} - - for i, hi := range expHistInfos { - require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(int64(9+i)), hi)) - } - - var infos []stakingtypes.HistoricalRecord - err := keeper.HistoricalInfo.Walk(ctx, nil, func(key uint64, info stakingtypes.HistoricalRecord) (stop bool, err error) { - infos = append(infos, info) - return false, nil - }) - - require.NoError(err) - require.Equal(expHistInfos, infos) -} diff --git a/x/staking/keeper/keeper.go b/x/staking/keeper/keeper.go index c9b632f0a993..caa49e44a55e 100644 --- a/x/staking/keeper/keeper.go +++ b/x/staking/keeper/keeper.go @@ -25,22 +25,6 @@ var _ types.ValidatorSet = Keeper{} // Implements DelegationSet interface var _ types.DelegationSet = Keeper{} -func HistoricalInfoCodec(cdc codec.BinaryCodec) collcodec.ValueCodec[types.HistoricalRecord] { - return collcodec.NewAltValueCodec(codec.CollValue[types.HistoricalRecord](cdc), func(b []byte) (types.HistoricalRecord, error) { - historicalinfo := types.HistoricalInfo{} //nolint: staticcheck // HistoricalInfo is deprecated - err := historicalinfo.Unmarshal(b) - if err != nil { - return types.HistoricalRecord{}, err - } - - return types.HistoricalRecord{ - Apphash: historicalinfo.Header.AppHash, - Time: &historicalinfo.Header.Time, - ValidatorsHash: historicalinfo.Header.NextValidatorsHash, - }, nil - }) -} - type rotationHistoryIndexes struct { Block *indexes.Multi[uint64, collections.Pair[[]byte, uint64], types.ConsPubKeyRotationHistory] } @@ -81,8 +65,6 @@ type Keeper struct { Schema collections.Schema - // HistoricalInfo key: Height | value: HistoricalInfo - HistoricalInfo collections.Map[uint64, types.HistoricalRecord] // LastTotalPower value: LastTotalPower LastTotalPower collections.Item[math.Int] // DelegationsByValidator key: valAddr+delAddr | value: none used (index key for delegations by validator index) @@ -172,7 +154,6 @@ func NewKeeper( consensusAddressCodec: consensusAddressCodec, cometInfoService: cometInfoService, LastTotalPower: collections.NewItem(sb, types.LastTotalPowerKey, "last_total_power", sdk.IntValue), - HistoricalInfo: collections.NewMap(sb, types.HistoricalInfoKey, "historical_info", collections.Uint64Key, HistoricalInfoCodec(cdc)), Delegations: collections.NewMap( sb, types.DelegationKey, "delegations", collections.PairKeyCodec( diff --git a/x/staking/module.go b/x/staking/module.go index 622b088ca1ed..f8080c182992 100644 --- a/x/staking/module.go +++ b/x/staking/module.go @@ -37,7 +37,6 @@ var ( _ module.HasABCIEndBlock = AppModule{} _ appmodule.AppModule = AppModule{} - _ appmodule.HasBeginBlocker = AppModule{} _ appmodule.HasServices = AppModule{} _ appmodule.HasMigrations = AppModule{} _ appmodule.HasRegisterInterfaces = AppModule{} @@ -171,11 +170,6 @@ func (am AppModule) ExportGenesis(ctx context.Context) (json.RawMessage, error) // ConsensusVersion implements HasConsensusVersion func (AppModule) ConsensusVersion() uint64 { return consensusVersion } -// BeginBlock returns the begin blocker for the staking module. -func (am AppModule) BeginBlock(ctx context.Context) error { - return am.keeper.BeginBlocker(ctx) -} - // EndBlock returns the end blocker for the staking module. func (am AppModule) EndBlock(ctx context.Context) ([]appmodule.ValidatorUpdate, error) { return am.keeper.EndBlocker(ctx) diff --git a/x/staking/proto/cosmos/staking/v1beta1/query.proto b/x/staking/proto/cosmos/staking/v1beta1/query.proto index 1518a6f4c534..6df51519492a 100644 --- a/x/staking/proto/cosmos/staking/v1beta1/query.proto +++ b/x/staking/proto/cosmos/staking/v1beta1/query.proto @@ -113,6 +113,7 @@ service Query { // HistoricalInfo queries the historical info for given height. rpc HistoricalInfo(QueryHistoricalInfoRequest) returns (QueryHistoricalInfoResponse) { + option deprecated = true; option (cosmos.query.v1.module_query_safe) = true; option (google.api.http).get = "/cosmos/staking/v1beta1/historical_info/{height}"; } @@ -367,6 +368,7 @@ message QueryDelegatorValidatorResponse { // QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC // method. message QueryHistoricalInfoRequest { + option deprecated = true; // height defines at which height to query the historical info. int64 height = 1; } @@ -374,6 +376,7 @@ message QueryHistoricalInfoRequest { // QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC // method. message QueryHistoricalInfoResponse { + option deprecated = true; // hist defines the historical info at the given height. HistoricalInfo hist = 1 [deprecated = true]; HistoricalRecord historical_record = 2; From c8495b70bb1ad8c037f6bbd1f264895432a254df Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 2 Jul 2024 17:17:16 +0200 Subject: [PATCH 02/13] delete the old key --- x/staking/migrations/v6/keys.go | 5 ++++- x/staking/migrations/v6/store.go | 1 + x/staking/types/keys.go | 3 +-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/x/staking/migrations/v6/keys.go b/x/staking/migrations/v6/keys.go index ed44b1c56faf..252d7ce50396 100644 --- a/x/staking/migrations/v6/keys.go +++ b/x/staking/migrations/v6/keys.go @@ -2,4 +2,7 @@ package v6 import "cosmossdk.io/collections" -var ValidatorUpdatesKey = collections.NewPrefix(97) +var ( + ValidatorUpdatesKey = collections.NewPrefix(97) + HistoricalInfoKey = collections.NewPrefix(80) // prefix for the historical info +) diff --git a/x/staking/migrations/v6/store.go b/x/staking/migrations/v6/store.go index 235e7fbf6ce4..93de43ec51fa 100644 --- a/x/staking/migrations/v6/store.go +++ b/x/staking/migrations/v6/store.go @@ -12,5 +12,6 @@ import ( // It deletes the ValidatorUpdatesKey from the store. func MigrateStore(ctx context.Context, store storetypes.KVStore, cdc codec.BinaryCodec) error { store.Delete(ValidatorUpdatesKey) + store.Delete(HistoricalInfoKey) return nil } diff --git a/x/staking/types/keys.go b/x/staking/types/keys.go index 8e445584b45c..03335a9a8372 100644 --- a/x/staking/types/keys.go +++ b/x/staking/types/keys.go @@ -57,8 +57,7 @@ var ( RedelegationQueueKey = collections.NewPrefix(66) // prefix for the timestamps in redelegations queue ValidatorQueueKey = collections.NewPrefix(67) // prefix for the timestamps in validator queue - HistoricalInfoKey = collections.NewPrefix(80) // prefix for the historical info - ParamsKey = collections.NewPrefix(81) // prefix for parameters for module x/staking + ParamsKey = collections.NewPrefix(81) // prefix for parameters for module x/staking DelegationByValIndexKey = collections.NewPrefix(113) // key for delegations by a validator From ef799cecbd65967d64706dfa25c9ac56f075d675 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 2 Jul 2024 17:18:42 +0200 Subject: [PATCH 03/13] add changelog --- x/staking/CHANGELOG.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/x/staking/CHANGELOG.md b/x/staking/CHANGELOG.md index b004438104e3..c3c095bd5807 100644 --- a/x/staking/CHANGELOG.md +++ b/x/staking/CHANGELOG.md @@ -92,20 +92,16 @@ Ref: https://keepachangelog.com/en/1.0.0/ * remove from `types`: `GetValidatorByConsAddrKey` * [#17248](https://github.com/cosmos/cosmos-sdk/pull/17248) Use collections for `UnbondingType`. * remove from `types`: `GetUnbondingTypeKey`. -* [#17063](https://github.com/cosmos/cosmos-sdk/pull/17063) Use collections for `HistoricalInfo`: - * remove `Keeper`: `GetHistoricalInfo`, `SetHistoricalInfo` * [#17062](https://github.com/cosmos/cosmos-sdk/pull/17062), [#19788](https://github.com/cosmos/cosmos-sdk/pull/19788) Remove `GetValidatorUpdates` and `ValidatorUpdates` storage. * [#17026](https://github.com/cosmos/cosmos-sdk/pull/17026) Use collections for `LastTotalPower`: * remove `Keeper`: `SetLastTotalPower`, `GetLastTotalPower` * [#17335](https://github.com/cosmos/cosmos-sdk/pull/17335) Remove usage of `"cosmossdk.io/x/staking/types".Infraction_*` in favour of `"cosmossdk.io/api/cosmos/staking/v1beta1".Infraction_` in order to remove dependency between modules on staking -* [#17655](https://github.com/cosmos/cosmos-sdk/pull/17655) `QueryHistoricalInfo` was adjusted to return `HistoricalRecord` and marked `Hist` as deprecated. * [#20295](https://github.com/cosmos/cosmos-sdk/pull/20295) `GetValidatorByConsAddr` now returns the Cosmos SDK `cryptotypes.Pubkey` instead of `cometcrypto.Publickey`. The caller is responsible to translate the returned value to the expected type. * Remove `CmtConsPublicKey()` and `TmConsPublicKey()` from `Validator` interface and as methods on the `Validator` struct. -* [#20728](https://github.com/cosmos/cosmos-sdk/pull/20728) Remove `NewHistoricalInfo` and related functions to Historical Info & `GetCmtConsPubKey`, `ToCmtValidator` & `ToCmtValidators` as comet validator type is no longer used in the staking module. ### State Breaking changes * [#18841](https://github.com/cosmos/cosmos-sdk/pull/18841) In a undelegation or redelegation if the shares being left delegated correspond to less than 1 token (in base denom) the entire delegation gets removed. * [#18142](https://github.com/cosmos/cosmos-sdk/pull/18142) Introduce `key_rotation_fee` param to calculate fees while rotating the keys -* [#17655](https://github.com/cosmos/cosmos-sdk/pull/17655) `HistoricalInfo` was replaced with `HistoricalRecord`, it removes the validator set and comet header and only keep what is needed for IBC. * [#19740](https://github.com/cosmos/cosmos-sdk/pull/19740) `InitGenesis` and `ExportGenesis` module code and keeper code do not panic but return errors. +* [#20845](https://github.com/cosmoc/cosmos-sdk/pull/20845) Remove HistoricalInfo from the staking modules storage From 59e60dd11a163526f34c3c2c2b66c38dd560b406 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 2 Jul 2024 17:20:53 +0200 Subject: [PATCH 04/13] fix changelog --- x/staking/CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/x/staking/CHANGELOG.md b/x/staking/CHANGELOG.md index c3c095bd5807..7185c83c2855 100644 --- a/x/staking/CHANGELOG.md +++ b/x/staking/CHANGELOG.md @@ -28,6 +28,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Bug Fixes * [#20688](https://github.com/cosmos/cosmos-sdk/pull/20688) Avoid overslashing unbonding delegations after a redelegation. +* [#19226](https://github.com/cosmos/cosmos-sdk/pull/19226) Ensure `GetLastValidators` in `x/staking` does not return an error when `MaxValidators` exceeds total number of bonded validators. ### Features @@ -42,9 +43,6 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [#18636](https://github.com/cosmos/cosmos-sdk/pull/18636) `IterateBondedValidatorsByPower`, `GetDelegatorBonded`, `Delegate`, `Unbond`, `Slash`, `Jail`, `SlashRedelegation`, `ApplyAndReturnValidatorSetUpdates` methods no longer panics on any kind of errors but instead returns appropriate errors. * [#18506](https://github.com/cosmos/cosmos-sdk/pull/18506) Detect the length of the ed25519 pubkey in CreateValidator to prevent panic. -### Bug Fixes - -* [#19226](https://github.com/cosmos/cosmos-sdk/pull/19226) Ensure `GetLastValidators` in `x/staking` does not return an error when `MaxValidators` exceeds total number of bonded validators. ### API Breaking Changes From 7bd94967e2111b9ffdb6c242459cf49f87397b25 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 2 Jul 2024 17:42:40 +0200 Subject: [PATCH 05/13] remove added proto values --- api/cosmos/staking/v1beta1/query.pulsar.go | 279 +-- api/cosmos/staking/v1beta1/query_grpc.pb.go | 3 + api/cosmos/staking/v1beta1/staking.pulsar.go | 1699 +++++-------- .../proto/cosmos/staking/v1beta1/query.proto | 4 +- .../cosmos/staking/v1beta1/staking.proto | 10 - x/staking/types/query.pb.go | 261 +- x/staking/types/staking.pb.go | 2106 +++++++---------- 7 files changed, 1640 insertions(+), 2722 deletions(-) diff --git a/api/cosmos/staking/v1beta1/query.pulsar.go b/api/cosmos/staking/v1beta1/query.pulsar.go index 4fa56617ac6b..f0b99e1e6696 100644 --- a/api/cosmos/staking/v1beta1/query.pulsar.go +++ b/api/cosmos/staking/v1beta1/query.pulsar.go @@ -12225,16 +12225,14 @@ func (x *fastReflection_QueryHistoricalInfoRequest) ProtoMethods() *protoiface.M } var ( - md_QueryHistoricalInfoResponse protoreflect.MessageDescriptor - fd_QueryHistoricalInfoResponse_hist protoreflect.FieldDescriptor - fd_QueryHistoricalInfoResponse_historical_record protoreflect.FieldDescriptor + md_QueryHistoricalInfoResponse protoreflect.MessageDescriptor + fd_QueryHistoricalInfoResponse_hist protoreflect.FieldDescriptor ) func init() { file_cosmos_staking_v1beta1_query_proto_init() md_QueryHistoricalInfoResponse = File_cosmos_staking_v1beta1_query_proto.Messages().ByName("QueryHistoricalInfoResponse") fd_QueryHistoricalInfoResponse_hist = md_QueryHistoricalInfoResponse.Fields().ByName("hist") - fd_QueryHistoricalInfoResponse_historical_record = md_QueryHistoricalInfoResponse.Fields().ByName("historical_record") } var _ protoreflect.Message = (*fastReflection_QueryHistoricalInfoResponse)(nil) @@ -12308,12 +12306,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Range(f func(protoreflect.F return } } - if x.HistoricalRecord != nil { - value := protoreflect.ValueOfMessage(x.HistoricalRecord.ProtoReflect()) - if !f(fd_QueryHistoricalInfoResponse_historical_record, value) { - return - } - } } // Has reports whether a field is populated. @@ -12331,8 +12323,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Has(fd protoreflect.FieldDe switch fd.FullName() { case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": return x.Hist != nil - case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": - return x.HistoricalRecord != nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -12351,8 +12341,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Clear(fd protoreflect.Field switch fd.FullName() { case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": x.Hist = nil - case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": - x.HistoricalRecord = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -12372,9 +12360,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Get(descriptor protoreflect case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": value := x.Hist return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": - value := x.HistoricalRecord - return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -12397,8 +12382,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Set(fd protoreflect.FieldDe switch fd.FullName() { case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": x.Hist = value.Message().Interface().(*HistoricalInfo) - case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": - x.HistoricalRecord = value.Message().Interface().(*HistoricalRecord) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -12424,11 +12407,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Mutable(fd protoreflect.Fie x.Hist = new(HistoricalInfo) } return protoreflect.ValueOfMessage(x.Hist.ProtoReflect()) - case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": - if x.HistoricalRecord == nil { - x.HistoricalRecord = new(HistoricalRecord) - } - return protoreflect.ValueOfMessage(x.HistoricalRecord.ProtoReflect()) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -12445,9 +12423,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) NewField(fd protoreflect.Fi case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": m := new(HistoricalInfo) return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": - m := new(HistoricalRecord) - return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -12521,10 +12496,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) ProtoMethods() *protoiface. l = options.Size(x.Hist) n += 1 + l + runtime.Sov(uint64(l)) } - if x.HistoricalRecord != nil { - l = options.Size(x.HistoricalRecord) - n += 1 + l + runtime.Sov(uint64(l)) - } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -12554,20 +12525,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) ProtoMethods() *protoiface. i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if x.HistoricalRecord != nil { - encoded, err := options.Marshal(x.HistoricalRecord) - 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] = 0x12 - } if x.Hist != nil { encoded, err := options.Marshal(x.Hist) if err != nil { @@ -12667,42 +12624,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) ProtoMethods() *protoiface. return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 2: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HistoricalRecord", 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 - } - if x.HistoricalRecord == nil { - x.HistoricalRecord = &HistoricalRecord{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.HistoricalRecord); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -14379,6 +14300,7 @@ func (x *QueryValidatorsRequest) GetPagination() *v1beta1.PageRequest { return nil } +// ValidatorInfo contains the validator's address and public key. type ValidatorInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -14421,7 +14343,11 @@ type QueryValidatorsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Validators []*Validator `protobuf:"bytes,1,rep,name=validators,proto3" json:"validators,omitempty"` + Validators []*Validator `protobuf:"bytes,1,rep,name=validators,proto3" json:"validators,omitempty"` + // validator_info contains additional information for each validator. + // The order of the elements in this list corresponds to the order of the elements in the validators list. + // For example, if you want the ValidatorInfo for the third validator in the validators list, + // you should look at the third element in the validator_info list. ValidatorInfo []*ValidatorInfo `protobuf:"bytes,2,rep,name=validator_info,json=validatorInfo,proto3" json:"validator_info,omitempty"` Pagination *v1beta1.PageResponse `protobuf:"bytes,3,opt,name=pagination,proto3" json:"pagination,omitempty"` } @@ -15374,6 +15300,8 @@ func (x *QueryDelegatorValidatorResponse) GetValidator() *Validator { // QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC // method. +// +// Deprecated: Do not use. type QueryHistoricalInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -15412,6 +15340,8 @@ func (x *QueryHistoricalInfoRequest) GetHeight() int64 { // QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC // method. +// +// Deprecated: Do not use. type QueryHistoricalInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -15420,8 +15350,7 @@ type QueryHistoricalInfoResponse struct { // hist defines the historical info at the given height. // // Deprecated: Do not use. - Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` - HistoricalRecord *HistoricalRecord `protobuf:"bytes,2,opt,name=historical_record,json=historicalRecord,proto3" json:"historical_record,omitempty"` + Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` } func (x *QueryHistoricalInfoResponse) Reset() { @@ -15452,13 +15381,6 @@ func (x *QueryHistoricalInfoResponse) GetHist() *HistoricalInfo { return nil } -func (x *QueryHistoricalInfoResponse) GetHistoricalRecord() *HistoricalRecord { - if x != nil { - return x.HistoricalRecord - } - return nil -} - // QueryPoolRequest is request type for the Query/Pool RPC method. type QueryPoolRequest struct { state protoimpl.MessageState @@ -15866,22 +15788,17 @@ var file_cosmos_staking_v1beta1_query_proto_rawDesc = []byte{ 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x34, 0x0a, 0x1a, 0x51, 0x75, 0x65, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x38, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0xb4, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, - 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3e, 0x0a, 0x04, 0x68, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x68, 0x69, 0x73, 0x74, 0x12, - 0x55, 0x0a, 0x11, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x02, 0x18, 0x01, 0x22, 0x61, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x68, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x68, 0x69, + 0x73, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x12, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, @@ -15894,7 +15811,7 @@ var file_cosmos_staking_v1beta1_query_proto_rawDesc = []byte{ 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0xb0, 0x16, 0x0a, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0xb3, 0x16, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x9e, 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, @@ -16044,7 +15961,7 @@ var file_cosmos_staking_v1beta1_query_proto_rawDesc = []byte{ 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x48, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, 0xbb, 0x01, 0x0a, 0x0e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, @@ -16052,43 +15969,43 @@ var file_cosmos_staking_v1beta1_query_proto_rawDesc = []byte{ 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x68, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x7b, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x28, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x88, 0x02, 0x01, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2f, + 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, + 0x6c, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x6f, 0x6f, + 0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x29, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, - 0x12, 0x1c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x8e, - 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, - 0x1e, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, - 0xda, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x42, 0xda, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, + 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -16141,9 +16058,8 @@ var file_cosmos_staking_v1beta1_query_proto_goTypes = []interface{}{ (*UnbondingDelegation)(nil), // 33: cosmos.staking.v1beta1.UnbondingDelegation (*RedelegationResponse)(nil), // 34: cosmos.staking.v1beta1.RedelegationResponse (*HistoricalInfo)(nil), // 35: cosmos.staking.v1beta1.HistoricalInfo - (*HistoricalRecord)(nil), // 36: cosmos.staking.v1beta1.HistoricalRecord - (*Pool)(nil), // 37: cosmos.staking.v1beta1.Pool - (*Params)(nil), // 38: cosmos.staking.v1beta1.Params + (*Pool)(nil), // 36: cosmos.staking.v1beta1.Pool + (*Params)(nil), // 37: cosmos.staking.v1beta1.Params } var file_cosmos_staking_v1beta1_query_proto_depIdxs = []int32{ 29, // 0: cosmos.staking.v1beta1.QueryValidatorsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest @@ -16173,42 +16089,41 @@ var file_cosmos_staking_v1beta1_query_proto_depIdxs = []int32{ 31, // 24: cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse 30, // 25: cosmos.staking.v1beta1.QueryDelegatorValidatorResponse.validator:type_name -> cosmos.staking.v1beta1.Validator 35, // 26: cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist:type_name -> cosmos.staking.v1beta1.HistoricalInfo - 36, // 27: cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record:type_name -> cosmos.staking.v1beta1.HistoricalRecord - 37, // 28: cosmos.staking.v1beta1.QueryPoolResponse.pool:type_name -> cosmos.staking.v1beta1.Pool - 38, // 29: cosmos.staking.v1beta1.QueryParamsResponse.params:type_name -> cosmos.staking.v1beta1.Params - 0, // 30: cosmos.staking.v1beta1.Query.Validators:input_type -> cosmos.staking.v1beta1.QueryValidatorsRequest - 3, // 31: cosmos.staking.v1beta1.Query.Validator:input_type -> cosmos.staking.v1beta1.QueryValidatorRequest - 5, // 32: cosmos.staking.v1beta1.Query.ValidatorDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsRequest - 7, // 33: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest - 9, // 34: cosmos.staking.v1beta1.Query.Delegation:input_type -> cosmos.staking.v1beta1.QueryDelegationRequest - 11, // 35: cosmos.staking.v1beta1.Query.UnbondingDelegation:input_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationRequest - 13, // 36: cosmos.staking.v1beta1.Query.DelegatorDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest - 15, // 37: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest - 17, // 38: cosmos.staking.v1beta1.Query.Redelegations:input_type -> cosmos.staking.v1beta1.QueryRedelegationsRequest - 19, // 39: cosmos.staking.v1beta1.Query.DelegatorValidators:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest - 21, // 40: cosmos.staking.v1beta1.Query.DelegatorValidator:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorRequest - 23, // 41: cosmos.staking.v1beta1.Query.HistoricalInfo:input_type -> cosmos.staking.v1beta1.QueryHistoricalInfoRequest - 25, // 42: cosmos.staking.v1beta1.Query.Pool:input_type -> cosmos.staking.v1beta1.QueryPoolRequest - 27, // 43: cosmos.staking.v1beta1.Query.Params:input_type -> cosmos.staking.v1beta1.QueryParamsRequest - 2, // 44: cosmos.staking.v1beta1.Query.Validators:output_type -> cosmos.staking.v1beta1.QueryValidatorsResponse - 4, // 45: cosmos.staking.v1beta1.Query.Validator:output_type -> cosmos.staking.v1beta1.QueryValidatorResponse - 6, // 46: cosmos.staking.v1beta1.Query.ValidatorDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsResponse - 8, // 47: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse - 10, // 48: cosmos.staking.v1beta1.Query.Delegation:output_type -> cosmos.staking.v1beta1.QueryDelegationResponse - 12, // 49: cosmos.staking.v1beta1.Query.UnbondingDelegation:output_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationResponse - 14, // 50: cosmos.staking.v1beta1.Query.DelegatorDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse - 16, // 51: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse - 18, // 52: cosmos.staking.v1beta1.Query.Redelegations:output_type -> cosmos.staking.v1beta1.QueryRedelegationsResponse - 20, // 53: cosmos.staking.v1beta1.Query.DelegatorValidators:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse - 22, // 54: cosmos.staking.v1beta1.Query.DelegatorValidator:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorResponse - 24, // 55: cosmos.staking.v1beta1.Query.HistoricalInfo:output_type -> cosmos.staking.v1beta1.QueryHistoricalInfoResponse - 26, // 56: cosmos.staking.v1beta1.Query.Pool:output_type -> cosmos.staking.v1beta1.QueryPoolResponse - 28, // 57: cosmos.staking.v1beta1.Query.Params:output_type -> cosmos.staking.v1beta1.QueryParamsResponse - 44, // [44:58] is the sub-list for method output_type - 30, // [30:44] is the sub-list for method input_type - 30, // [30:30] is the sub-list for extension type_name - 30, // [30:30] is the sub-list for extension extendee - 0, // [0:30] is the sub-list for field type_name + 36, // 27: cosmos.staking.v1beta1.QueryPoolResponse.pool:type_name -> cosmos.staking.v1beta1.Pool + 37, // 28: cosmos.staking.v1beta1.QueryParamsResponse.params:type_name -> cosmos.staking.v1beta1.Params + 0, // 29: cosmos.staking.v1beta1.Query.Validators:input_type -> cosmos.staking.v1beta1.QueryValidatorsRequest + 3, // 30: cosmos.staking.v1beta1.Query.Validator:input_type -> cosmos.staking.v1beta1.QueryValidatorRequest + 5, // 31: cosmos.staking.v1beta1.Query.ValidatorDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsRequest + 7, // 32: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest + 9, // 33: cosmos.staking.v1beta1.Query.Delegation:input_type -> cosmos.staking.v1beta1.QueryDelegationRequest + 11, // 34: cosmos.staking.v1beta1.Query.UnbondingDelegation:input_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationRequest + 13, // 35: cosmos.staking.v1beta1.Query.DelegatorDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest + 15, // 36: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest + 17, // 37: cosmos.staking.v1beta1.Query.Redelegations:input_type -> cosmos.staking.v1beta1.QueryRedelegationsRequest + 19, // 38: cosmos.staking.v1beta1.Query.DelegatorValidators:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest + 21, // 39: cosmos.staking.v1beta1.Query.DelegatorValidator:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorRequest + 23, // 40: cosmos.staking.v1beta1.Query.HistoricalInfo:input_type -> cosmos.staking.v1beta1.QueryHistoricalInfoRequest + 25, // 41: cosmos.staking.v1beta1.Query.Pool:input_type -> cosmos.staking.v1beta1.QueryPoolRequest + 27, // 42: cosmos.staking.v1beta1.Query.Params:input_type -> cosmos.staking.v1beta1.QueryParamsRequest + 2, // 43: cosmos.staking.v1beta1.Query.Validators:output_type -> cosmos.staking.v1beta1.QueryValidatorsResponse + 4, // 44: cosmos.staking.v1beta1.Query.Validator:output_type -> cosmos.staking.v1beta1.QueryValidatorResponse + 6, // 45: cosmos.staking.v1beta1.Query.ValidatorDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsResponse + 8, // 46: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse + 10, // 47: cosmos.staking.v1beta1.Query.Delegation:output_type -> cosmos.staking.v1beta1.QueryDelegationResponse + 12, // 48: cosmos.staking.v1beta1.Query.UnbondingDelegation:output_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationResponse + 14, // 49: cosmos.staking.v1beta1.Query.DelegatorDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse + 16, // 50: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse + 18, // 51: cosmos.staking.v1beta1.Query.Redelegations:output_type -> cosmos.staking.v1beta1.QueryRedelegationsResponse + 20, // 52: cosmos.staking.v1beta1.Query.DelegatorValidators:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse + 22, // 53: cosmos.staking.v1beta1.Query.DelegatorValidator:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorResponse + 24, // 54: cosmos.staking.v1beta1.Query.HistoricalInfo:output_type -> cosmos.staking.v1beta1.QueryHistoricalInfoResponse + 26, // 55: cosmos.staking.v1beta1.Query.Pool:output_type -> cosmos.staking.v1beta1.QueryPoolResponse + 28, // 56: cosmos.staking.v1beta1.Query.Params:output_type -> cosmos.staking.v1beta1.QueryParamsResponse + 43, // [43:57] is the sub-list for method output_type + 29, // [29:43] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_cosmos_staking_v1beta1_query_proto_init() } diff --git a/api/cosmos/staking/v1beta1/query_grpc.pb.go b/api/cosmos/staking/v1beta1/query_grpc.pb.go index a015a80c6eb2..e5cc9c0689e9 100644 --- a/api/cosmos/staking/v1beta1/query_grpc.pb.go +++ b/api/cosmos/staking/v1beta1/query_grpc.pb.go @@ -86,6 +86,7 @@ type QueryClient interface { // DelegatorValidator queries validator info for given delegator validator // pair. DelegatorValidator(ctx context.Context, in *QueryDelegatorValidatorRequest, opts ...grpc.CallOption) (*QueryDelegatorValidatorResponse, error) + // Deprecated: Do not use. // HistoricalInfo queries the historical info for given height. HistoricalInfo(ctx context.Context, in *QueryHistoricalInfoRequest, opts ...grpc.CallOption) (*QueryHistoricalInfoResponse, error) // Pool queries the pool info. @@ -201,6 +202,7 @@ func (c *queryClient) DelegatorValidator(ctx context.Context, in *QueryDelegator return out, nil } +// Deprecated: Do not use. func (c *queryClient) HistoricalInfo(ctx context.Context, in *QueryHistoricalInfoRequest, opts ...grpc.CallOption) (*QueryHistoricalInfoResponse, error) { out := new(QueryHistoricalInfoResponse) err := c.cc.Invoke(ctx, Query_HistoricalInfo_FullMethodName, in, out, opts...) @@ -279,6 +281,7 @@ type QueryServer interface { // DelegatorValidator queries validator info for given delegator validator // pair. DelegatorValidator(context.Context, *QueryDelegatorValidatorRequest) (*QueryDelegatorValidatorResponse, error) + // Deprecated: Do not use. // HistoricalInfo queries the historical info for given height. HistoricalInfo(context.Context, *QueryHistoricalInfoRequest) (*QueryHistoricalInfoResponse, error) // Pool queries the pool info. diff --git a/api/cosmos/staking/v1beta1/staking.pulsar.go b/api/cosmos/staking/v1beta1/staking.pulsar.go index a5bc255e320c..55a7bc8165fa 100644 --- a/api/cosmos/staking/v1beta1/staking.pulsar.go +++ b/api/cosmos/staking/v1beta1/staking.pulsar.go @@ -594,573 +594,6 @@ func (x *fastReflection_HistoricalInfo) ProtoMethods() *protoiface.Methods { } } -var ( - md_HistoricalRecord protoreflect.MessageDescriptor - fd_HistoricalRecord_apphash protoreflect.FieldDescriptor - fd_HistoricalRecord_time protoreflect.FieldDescriptor - fd_HistoricalRecord_validators_hash protoreflect.FieldDescriptor -) - -func init() { - file_cosmos_staking_v1beta1_staking_proto_init() - md_HistoricalRecord = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("HistoricalRecord") - fd_HistoricalRecord_apphash = md_HistoricalRecord.Fields().ByName("apphash") - fd_HistoricalRecord_time = md_HistoricalRecord.Fields().ByName("time") - fd_HistoricalRecord_validators_hash = md_HistoricalRecord.Fields().ByName("validators_hash") -} - -var _ protoreflect.Message = (*fastReflection_HistoricalRecord)(nil) - -type fastReflection_HistoricalRecord HistoricalRecord - -func (x *HistoricalRecord) ProtoReflect() protoreflect.Message { - return (*fastReflection_HistoricalRecord)(x) -} - -func (x *HistoricalRecord) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[1] - 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_HistoricalRecord_messageType fastReflection_HistoricalRecord_messageType -var _ protoreflect.MessageType = fastReflection_HistoricalRecord_messageType{} - -type fastReflection_HistoricalRecord_messageType struct{} - -func (x fastReflection_HistoricalRecord_messageType) Zero() protoreflect.Message { - return (*fastReflection_HistoricalRecord)(nil) -} -func (x fastReflection_HistoricalRecord_messageType) New() protoreflect.Message { - return new(fastReflection_HistoricalRecord) -} -func (x fastReflection_HistoricalRecord_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_HistoricalRecord -} - -// Descriptor returns message descriptor, which contains only the protobuf -// type information for the message. -func (x *fastReflection_HistoricalRecord) Descriptor() protoreflect.MessageDescriptor { - return md_HistoricalRecord -} - -// 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_HistoricalRecord) Type() protoreflect.MessageType { - return _fastReflection_HistoricalRecord_messageType -} - -// New returns a newly allocated and mutable empty message. -func (x *fastReflection_HistoricalRecord) New() protoreflect.Message { - return new(fastReflection_HistoricalRecord) -} - -// Interface unwraps the message reflection interface and -// returns the underlying ProtoMessage interface. -func (x *fastReflection_HistoricalRecord) Interface() protoreflect.ProtoMessage { - return (*HistoricalRecord)(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_HistoricalRecord) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if len(x.Apphash) != 0 { - value := protoreflect.ValueOfBytes(x.Apphash) - if !f(fd_HistoricalRecord_apphash, value) { - return - } - } - if x.Time != nil { - value := protoreflect.ValueOfMessage(x.Time.ProtoReflect()) - if !f(fd_HistoricalRecord_time, value) { - return - } - } - if len(x.ValidatorsHash) != 0 { - value := protoreflect.ValueOfBytes(x.ValidatorsHash) - if !f(fd_HistoricalRecord_validators_hash, 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_HistoricalRecord) Has(fd protoreflect.FieldDescriptor) bool { - switch fd.FullName() { - case "cosmos.staking.v1beta1.HistoricalRecord.apphash": - return len(x.Apphash) != 0 - case "cosmos.staking.v1beta1.HistoricalRecord.time": - return x.Time != nil - case "cosmos.staking.v1beta1.HistoricalRecord.validators_hash": - return len(x.ValidatorsHash) != 0 - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) - } - panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord 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_HistoricalRecord) Clear(fd protoreflect.FieldDescriptor) { - switch fd.FullName() { - case "cosmos.staking.v1beta1.HistoricalRecord.apphash": - x.Apphash = nil - case "cosmos.staking.v1beta1.HistoricalRecord.time": - x.Time = nil - case "cosmos.staking.v1beta1.HistoricalRecord.validators_hash": - x.ValidatorsHash = nil - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) - } - panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord 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_HistoricalRecord) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { - switch descriptor.FullName() { - case "cosmos.staking.v1beta1.HistoricalRecord.apphash": - value := x.Apphash - return protoreflect.ValueOfBytes(value) - case "cosmos.staking.v1beta1.HistoricalRecord.time": - value := x.Time - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "cosmos.staking.v1beta1.HistoricalRecord.validators_hash": - value := x.ValidatorsHash - return protoreflect.ValueOfBytes(value) - default: - if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) - } - panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord 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_HistoricalRecord) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { - switch fd.FullName() { - case "cosmos.staking.v1beta1.HistoricalRecord.apphash": - x.Apphash = value.Bytes() - case "cosmos.staking.v1beta1.HistoricalRecord.time": - x.Time = value.Message().Interface().(*timestamppb.Timestamp) - case "cosmos.staking.v1beta1.HistoricalRecord.validators_hash": - x.ValidatorsHash = value.Bytes() - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) - } - panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord 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_HistoricalRecord) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "cosmos.staking.v1beta1.HistoricalRecord.time": - if x.Time == nil { - x.Time = new(timestamppb.Timestamp) - } - return protoreflect.ValueOfMessage(x.Time.ProtoReflect()) - case "cosmos.staking.v1beta1.HistoricalRecord.apphash": - panic(fmt.Errorf("field apphash of message cosmos.staking.v1beta1.HistoricalRecord is not mutable")) - case "cosmos.staking.v1beta1.HistoricalRecord.validators_hash": - panic(fmt.Errorf("field validators_hash of message cosmos.staking.v1beta1.HistoricalRecord is not mutable")) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) - } - panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord 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_HistoricalRecord) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - switch fd.FullName() { - case "cosmos.staking.v1beta1.HistoricalRecord.apphash": - return protoreflect.ValueOfBytes(nil) - case "cosmos.staking.v1beta1.HistoricalRecord.time": - m := new(timestamppb.Timestamp) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "cosmos.staking.v1beta1.HistoricalRecord.validators_hash": - return protoreflect.ValueOfBytes(nil) - default: - if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) - } - panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord 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_HistoricalRecord) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - switch d.FullName() { - default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.HistoricalRecord", 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_HistoricalRecord) 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_HistoricalRecord) 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_HistoricalRecord) 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_HistoricalRecord) ProtoMethods() *protoiface.Methods { - size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*HistoricalRecord) - if x == nil { - return protoiface.SizeOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Size: 0, - } - } - options := runtime.SizeInputToOptions(input) - _ = options - var n int - var l int - _ = l - l = len(x.Apphash) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } - if x.Time != nil { - l = options.Size(x.Time) - n += 1 + l + runtime.Sov(uint64(l)) - } - l = len(x.ValidatorsHash) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(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().(*HistoricalRecord) - 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.ValidatorsHash) > 0 { - i -= len(x.ValidatorsHash) - copy(dAtA[i:], x.ValidatorsHash) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorsHash))) - i-- - dAtA[i] = 0x1a - } - if x.Time != nil { - encoded, err := options.Marshal(x.Time) - 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] = 0x12 - } - if len(x.Apphash) > 0 { - i -= len(x.Apphash) - copy(dAtA[i:], x.Apphash) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Apphash))) - i-- - dAtA[i] = 0xa - } - 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().(*HistoricalRecord) - 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: HistoricalRecord: wiretype end group for non-group") - } - if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: HistoricalRecord: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Apphash", wireType) - } - var byteLen 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++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + byteLen - 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.Apphash = append(x.Apphash[:0], dAtA[iNdEx:postIndex]...) - if x.Apphash == nil { - x.Apphash = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Time", 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 - } - if x.Time == nil { - x.Time = ×tamppb.Timestamp{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Time); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorsHash", wireType) - } - var byteLen 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++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + byteLen - 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.ValidatorsHash = append(x.ValidatorsHash[:0], dAtA[iNdEx:postIndex]...) - if x.ValidatorsHash == nil { - x.ValidatorsHash = []byte{} - } - iNdEx = postIndex - 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_CommissionRates protoreflect.MessageDescriptor fd_CommissionRates_rate protoreflect.FieldDescriptor @@ -1185,7 +618,7 @@ func (x *CommissionRates) ProtoReflect() protoreflect.Message { } func (x *CommissionRates) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[2] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1731,7 +1164,7 @@ func (x *Commission) ProtoReflect() protoreflect.Message { } func (x *Commission) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[3] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2251,7 +1684,7 @@ func (x *Description) ProtoReflect() protoreflect.Message { } func (x *Description) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[4] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2989,7 +2422,7 @@ func (x *Validator) ProtoReflect() protoreflect.Message { } func (x *Validator) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[5] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4271,7 +3704,7 @@ func (x *ValAddresses) ProtoReflect() protoreflect.Message { } func (x *ValAddresses) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[6] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4707,7 +4140,7 @@ func (x *DVPair) ProtoReflect() protoreflect.Message { } func (x *DVPair) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[7] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5240,7 +4673,7 @@ func (x *DVPairs) ProtoReflect() protoreflect.Message { } func (x *DVPairs) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[8] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5687,7 +5120,7 @@ func (x *DVVTriplet) ProtoReflect() protoreflect.Message { } func (x *DVVTriplet) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[9] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6282,7 +5715,7 @@ func (x *DVVTriplets) ProtoReflect() protoreflect.Message { } func (x *DVVTriplets) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[10] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6729,7 +6162,7 @@ func (x *Delegation) ProtoReflect() protoreflect.Message { } func (x *Delegation) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[11] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7328,7 +6761,7 @@ func (x *UnbondingDelegation) ProtoReflect() protoreflect.Message { } func (x *UnbondingDelegation) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[12] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7905,7 +7338,7 @@ func (x *UnbondingDelegationEntry) ProtoReflect() protoreflect.Message { } func (x *UnbondingDelegationEntry) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[13] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8612,7 +8045,7 @@ func (x *RedelegationEntry) ProtoReflect() protoreflect.Message { } func (x *RedelegationEntry) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[14] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9366,7 +8799,7 @@ func (x *Redelegation) ProtoReflect() protoreflect.Message { } func (x *Redelegation) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[15] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10007,7 +9440,7 @@ func (x *Params) ProtoReflect() protoreflect.Message { } func (x *Params) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[16] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10783,7 +10216,7 @@ func (x *DelegationResponse) ProtoReflect() protoreflect.Message { } func (x *DelegationResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[17] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11297,7 +10730,7 @@ func (x *RedelegationEntryResponse) ProtoReflect() protoreflect.Message { } func (x *RedelegationEntryResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[18] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11847,7 +11280,7 @@ func (x *RedelegationResponse) ProtoReflect() protoreflect.Message { } func (x *RedelegationResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[19] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12369,7 +11802,7 @@ func (x *Pool) ProtoReflect() protoreflect.Message { } func (x *Pool) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[20] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12902,7 +12335,7 @@ func (x *ValidatorUpdates) ProtoReflect() protoreflect.Message { } func (x *ValidatorUpdates) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[21] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13353,7 +12786,7 @@ func (x *ConsPubKeyRotationHistory) ProtoReflect() protoreflect.Message { } func (x *ConsPubKeyRotationHistory) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[22] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14098,7 +13531,7 @@ func (x *ValAddrsOfRotatedConsKeys) ProtoReflect() protoreflect.Message { } func (x *ValAddrsOfRotatedConsKeys) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[23] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14684,61 +14117,6 @@ func (x *HistoricalInfo) GetValset() []*Validator { return nil } -// HistoricalRecord contains a set of minimum values needed for evaluating historical validator sets and blocks. -// It is stored as part of staking module's state, which persists the `n` most -// recent HistoricalInfo -// (`n` is set by the staking module's `historical_entries` parameter). -type HistoricalRecord struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Apphash []byte `protobuf:"bytes,1,opt,name=apphash,proto3" json:"apphash,omitempty"` - Time *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"` - ValidatorsHash []byte `protobuf:"bytes,3,opt,name=validators_hash,json=validatorsHash,proto3" json:"validators_hash,omitempty"` -} - -func (x *HistoricalRecord) Reset() { - *x = HistoricalRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *HistoricalRecord) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*HistoricalRecord) ProtoMessage() {} - -// Deprecated: Use HistoricalRecord.ProtoReflect.Descriptor instead. -func (*HistoricalRecord) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{1} -} - -func (x *HistoricalRecord) GetApphash() []byte { - if x != nil { - return x.Apphash - } - return nil -} - -func (x *HistoricalRecord) GetTime() *timestamppb.Timestamp { - if x != nil { - return x.Time - } - return nil -} - -func (x *HistoricalRecord) GetValidatorsHash() []byte { - if x != nil { - return x.ValidatorsHash - } - return nil -} - // CommissionRates defines the initial commission rates to be used for creating // a validator. type CommissionRates struct { @@ -14757,7 +14135,7 @@ type CommissionRates struct { func (x *CommissionRates) Reset() { *x = CommissionRates{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[2] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14771,7 +14149,7 @@ func (*CommissionRates) ProtoMessage() {} // Deprecated: Use CommissionRates.ProtoReflect.Descriptor instead. func (*CommissionRates) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{2} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{1} } func (x *CommissionRates) GetRate() string { @@ -14810,7 +14188,7 @@ type Commission struct { func (x *Commission) Reset() { *x = Commission{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[3] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14824,7 +14202,7 @@ func (*Commission) ProtoMessage() {} // Deprecated: Use Commission.ProtoReflect.Descriptor instead. func (*Commission) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{3} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{2} } func (x *Commission) GetCommissionRates() *CommissionRates { @@ -14862,7 +14240,7 @@ type Description struct { func (x *Description) Reset() { *x = Description{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[4] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14876,7 +14254,7 @@ func (*Description) ProtoMessage() {} // Deprecated: Use Description.ProtoReflect.Descriptor instead. func (*Description) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{4} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{3} } func (x *Description) GetMoniker() string { @@ -14958,7 +14336,7 @@ type Validator struct { func (x *Validator) Reset() { *x = Validator{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[5] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14972,7 +14350,7 @@ func (*Validator) ProtoMessage() {} // Deprecated: Use Validator.ProtoReflect.Descriptor instead. func (*Validator) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{5} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{4} } func (x *Validator) GetOperatorAddress() string { @@ -15078,7 +14456,7 @@ type ValAddresses struct { func (x *ValAddresses) Reset() { *x = ValAddresses{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[6] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15092,7 +14470,7 @@ func (*ValAddresses) ProtoMessage() {} // Deprecated: Use ValAddresses.ProtoReflect.Descriptor instead. func (*ValAddresses) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{6} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{5} } func (x *ValAddresses) GetAddresses() []string { @@ -15117,7 +14495,7 @@ type DVPair struct { func (x *DVPair) Reset() { *x = DVPair{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[7] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15131,7 +14509,7 @@ func (*DVPair) ProtoMessage() {} // Deprecated: Use DVPair.ProtoReflect.Descriptor instead. func (*DVPair) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{7} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{6} } func (x *DVPair) GetDelegatorAddress() string { @@ -15160,7 +14538,7 @@ type DVPairs struct { func (x *DVPairs) Reset() { *x = DVPairs{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[8] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15174,7 +14552,7 @@ func (*DVPairs) ProtoMessage() {} // Deprecated: Use DVPairs.ProtoReflect.Descriptor instead. func (*DVPairs) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{8} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{7} } func (x *DVPairs) GetPairs() []*DVPair { @@ -15201,7 +14579,7 @@ type DVVTriplet struct { func (x *DVVTriplet) Reset() { *x = DVVTriplet{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[9] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15215,7 +14593,7 @@ func (*DVVTriplet) ProtoMessage() {} // Deprecated: Use DVVTriplet.ProtoReflect.Descriptor instead. func (*DVVTriplet) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{9} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{8} } func (x *DVVTriplet) GetDelegatorAddress() string { @@ -15251,7 +14629,7 @@ type DVVTriplets struct { func (x *DVVTriplets) Reset() { *x = DVVTriplets{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[10] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15265,7 +14643,7 @@ func (*DVVTriplets) ProtoMessage() {} // Deprecated: Use DVVTriplets.ProtoReflect.Descriptor instead. func (*DVVTriplets) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{10} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{9} } func (x *DVVTriplets) GetTriplets() []*DVVTriplet { @@ -15294,7 +14672,7 @@ type Delegation struct { func (x *Delegation) Reset() { *x = Delegation{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[11] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15308,7 +14686,7 @@ func (*Delegation) ProtoMessage() {} // Deprecated: Use Delegation.ProtoReflect.Descriptor instead. func (*Delegation) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{11} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{10} } func (x *Delegation) GetDelegatorAddress() string { @@ -15350,7 +14728,7 @@ type UnbondingDelegation struct { func (x *UnbondingDelegation) Reset() { *x = UnbondingDelegation{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[12] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15364,7 +14742,7 @@ func (*UnbondingDelegation) ProtoMessage() {} // Deprecated: Use UnbondingDelegation.ProtoReflect.Descriptor instead. func (*UnbondingDelegation) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{12} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{11} } func (x *UnbondingDelegation) GetDelegatorAddress() string { @@ -15411,7 +14789,7 @@ type UnbondingDelegationEntry struct { func (x *UnbondingDelegationEntry) Reset() { *x = UnbondingDelegationEntry{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[13] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15425,7 +14803,7 @@ func (*UnbondingDelegationEntry) ProtoMessage() {} // Deprecated: Use UnbondingDelegationEntry.ProtoReflect.Descriptor instead. func (*UnbondingDelegationEntry) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{13} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{12} } func (x *UnbondingDelegationEntry) GetCreationHeight() int64 { @@ -15493,7 +14871,7 @@ type RedelegationEntry struct { func (x *RedelegationEntry) Reset() { *x = RedelegationEntry{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[14] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15507,7 +14885,7 @@ func (*RedelegationEntry) ProtoMessage() {} // Deprecated: Use RedelegationEntry.ProtoReflect.Descriptor instead. func (*RedelegationEntry) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{14} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{13} } func (x *RedelegationEntry) GetCreationHeight() int64 { @@ -15572,7 +14950,7 @@ type Redelegation struct { func (x *Redelegation) Reset() { *x = Redelegation{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[15] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15586,7 +14964,7 @@ func (*Redelegation) ProtoMessage() {} // Deprecated: Use Redelegation.ProtoReflect.Descriptor instead. func (*Redelegation) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{15} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{14} } func (x *Redelegation) GetDelegatorAddress() string { @@ -15643,7 +15021,7 @@ type Params struct { func (x *Params) Reset() { *x = Params{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[16] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15657,7 +15035,7 @@ func (*Params) ProtoMessage() {} // Deprecated: Use Params.ProtoReflect.Descriptor instead. func (*Params) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{16} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{15} } func (x *Params) GetUnbondingTime() *durationpb.Duration { @@ -15723,7 +15101,7 @@ type DelegationResponse struct { func (x *DelegationResponse) Reset() { *x = DelegationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[17] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15737,7 +15115,7 @@ func (*DelegationResponse) ProtoMessage() {} // Deprecated: Use DelegationResponse.ProtoReflect.Descriptor instead. func (*DelegationResponse) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{17} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{16} } func (x *DelegationResponse) GetDelegation() *Delegation { @@ -15769,7 +15147,7 @@ type RedelegationEntryResponse struct { func (x *RedelegationEntryResponse) Reset() { *x = RedelegationEntryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[18] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15783,7 +15161,7 @@ func (*RedelegationEntryResponse) ProtoMessage() {} // Deprecated: Use RedelegationEntryResponse.ProtoReflect.Descriptor instead. func (*RedelegationEntryResponse) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{18} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{17} } func (x *RedelegationEntryResponse) GetRedelegationEntry() *RedelegationEntry { @@ -15815,7 +15193,7 @@ type RedelegationResponse struct { func (x *RedelegationResponse) Reset() { *x = RedelegationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[19] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15829,7 +15207,7 @@ func (*RedelegationResponse) ProtoMessage() {} // Deprecated: Use RedelegationResponse.ProtoReflect.Descriptor instead. func (*RedelegationResponse) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{19} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{18} } func (x *RedelegationResponse) GetRedelegation() *Redelegation { @@ -15860,7 +15238,7 @@ type Pool struct { func (x *Pool) Reset() { *x = Pool{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[20] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15874,7 +15252,7 @@ func (*Pool) ProtoMessage() {} // Deprecated: Use Pool.ProtoReflect.Descriptor instead. func (*Pool) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{20} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{19} } func (x *Pool) GetNotBondedTokens() string { @@ -15906,7 +15284,7 @@ type ValidatorUpdates struct { func (x *ValidatorUpdates) Reset() { *x = ValidatorUpdates{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[21] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15920,7 +15298,7 @@ func (*ValidatorUpdates) ProtoMessage() {} // Deprecated: Use ValidatorUpdates.ProtoReflect.Descriptor instead. func (*ValidatorUpdates) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{21} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{20} } func (x *ValidatorUpdates) GetUpdates() []*v11.ValidatorUpdate { @@ -15951,7 +15329,7 @@ type ConsPubKeyRotationHistory struct { func (x *ConsPubKeyRotationHistory) Reset() { *x = ConsPubKeyRotationHistory{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[22] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15965,7 +15343,7 @@ func (*ConsPubKeyRotationHistory) ProtoMessage() {} // Deprecated: Use ConsPubKeyRotationHistory.ProtoReflect.Descriptor instead. func (*ConsPubKeyRotationHistory) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{22} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{21} } func (x *ConsPubKeyRotationHistory) GetOperatorAddress() []byte { @@ -16016,7 +15394,7 @@ type ValAddrsOfRotatedConsKeys struct { func (x *ValAddrsOfRotatedConsKeys) Reset() { *x = ValAddrsOfRotatedConsKeys{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[23] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16030,7 +15408,7 @@ func (*ValAddrsOfRotatedConsKeys) ProtoMessage() {} // Deprecated: Use ValAddrsOfRotatedConsKeys.ProtoReflect.Descriptor instead. func (*ValAddrsOfRotatedConsKeys) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{23} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{22} } func (x *ValAddrsOfRotatedConsKeys) GetAddresses() [][]byte { @@ -16072,410 +15450,401 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x73, - 0x65, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x8b, 0x01, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x70, 0x70, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, - 0x70, 0x68, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x48, 0x61, 0x73, 0x68, 0x22, 0x96, 0x02, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, - 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x04, - 0x72, 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, - 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, - 0x6d, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x5e, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x36, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, - 0x63, 0x79, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xc1, 0x01, - 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x61, 0x0a, 0x10, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x42, - 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0xd0, 0xde, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, - 0x4a, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, - 0x01, 0x22, 0xa8, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, - 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, - 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, - 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0x9d, 0x07, 0x0a, - 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x10, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0f, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x59, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x75, 0x62, - 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, - 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x6e, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x43, - 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, - 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, 0x52, 0x06, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xc8, - 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, - 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, - 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, - 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x75, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x50, - 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x65, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x96, 0x02, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x04, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, + 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, + 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, + 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, + 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, + 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, + 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x5e, 0x0a, 0x0f, 0x6d, 0x61, 0x78, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x36, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, + 0x67, 0x61, 0x63, 0x79, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, + 0xc1, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x61, + 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, + 0x73, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0xd0, 0xde, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, + 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x6e, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3e, 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, 0xda, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, 0x2e, 0x34, 0x37, 0x52, 0x11, 0x6d, 0x69, - 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3c, 0x0a, 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, - 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, - 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, - 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, - 0x64, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x46, 0x0a, 0x0c, - 0x56, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x06, 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x12, - 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x22, 0x4a, 0x0a, 0x07, 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0x8b, 0x02, 0x0a, - 0x0a, 0x44, 0x56, 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x64, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x04, 0xe8, + 0xa0, 0x1f, 0x01, 0x22, 0xa8, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, + 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, + 0x69, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, + 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0x9d, + 0x07, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x10, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x55, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, - 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, 0x15, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x58, 0x0a, 0x0b, 0x44, 0x56, - 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x74, 0x72, 0x69, - 0x70, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x56, 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x42, - 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x74, 0x72, 0x69, 0x70, - 0x6c, 0x65, 0x74, 0x73, 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, - 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x65, 0x63, 0xd2, - 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x06, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, - 0x8d, 0x02, 0x0a, 0x13, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4e, - 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x55, - 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, - 0x9b, 0x03, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, - 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x59, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, + 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, + 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, + 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x43, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2b, 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, 0x52, 0x06, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x31, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, + 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, + 0x79, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, + 0x65, 0x63, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, + 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x50, 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x6e, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3e, + 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, 0xda, 0xb4, 0x2d, 0x0f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, 0x2e, 0x34, 0x37, 0x52, 0x11, + 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x3c, 0x0a, 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, + 0x6e, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x4f, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x23, 0x0a, 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x49, 0x64, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x46, + 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, + 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x06, 0x44, 0x56, 0x50, 0x61, 0x69, + 0x72, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, + 0x1f, 0x00, 0x22, 0x4a, 0x0a, 0x07, 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x3f, 0x0a, + 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0x8b, + 0x02, 0x0a, 0x0a, 0x44, 0x56, 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x45, 0x0a, + 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x53, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, 0x15, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x58, 0x0a, 0x0b, + 0x44, 0x56, 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x74, + 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x56, 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, + 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x74, 0x72, + 0x69, 0x70, 0x6c, 0x65, 0x74, 0x73, 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x11, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xc8, 0xde, + 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x65, + 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, + 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, + 0x00, 0x22, 0x8d, 0x02, 0x0a, 0x13, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, + 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x55, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x6f, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, + 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, + 0x00, 0x22, 0x9b, 0x03, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, + 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 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, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x45, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 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, 0x52, - 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, - 0x45, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x2b, 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, 0x52, 0x07, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x6e, - 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x75, 0x6e, 0x62, - 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x72, - 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, - 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x52, - 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0x9f, 0x03, - 0x0a, 0x11, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a, 0x0f, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x54, 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 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, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, - 0x5f, 0x64, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, - 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x65, 0x63, 0xd2, - 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x09, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x73, 0x44, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x62, 0x6f, + 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, - 0xdd, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, - 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x53, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x55, - 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, - 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x9f, 0x03, 0x0a, 0x11, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, + 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 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, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x73, 0x5f, 0x64, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xc8, 0xde, + 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x65, + 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, + 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x44, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x3c, 0x0a, + 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, + 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x6e, 0x48, + 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, + 0x01, 0x22, 0xdd, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, + 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, 0x15, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x55, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, + 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x73, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, + 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, + 0x00, 0x22, 0xe7, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4f, 0x0a, 0x0e, + 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, + 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x45, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, + 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x11, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x64, 0x44, 0x65, + 0x6e, 0x6f, 0x6d, 0x12, 0x84, 0x01, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x54, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, + 0x61, 0x63, 0x79, 0x44, 0x65, 0x63, 0xf2, 0xde, 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x22, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, + 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x10, 0x6b, 0x65, + 0x79, 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, + 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0e, 0x6b, 0x65, 0x79, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x3a, 0x24, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x12, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, - 0xe7, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x75, 0x6e, - 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, - 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x75, 0x6e, - 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6d, - 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x45, 0x6e, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, - 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x11, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x64, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x12, 0x84, 0x01, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x54, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, - 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, - 0x79, 0x44, 0x65, 0x63, 0xf2, 0xde, 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x69, - 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x22, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x10, 0x6b, 0x65, 0x79, 0x5f, - 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, 0xc8, - 0xde, 0x1f, 0x00, 0x52, 0x0e, 0x6b, 0x65, 0x79, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x46, 0x65, 0x65, 0x3a, 0x24, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x44, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, + 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xcd, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x11, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x07, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 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, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xc9, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, - 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, - 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xcd, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x11, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 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, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, - 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xc9, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, - 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, - 0x00, 0x22, 0xeb, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x71, 0x0a, 0x11, 0x6e, 0x6f, - 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x45, 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, 0xea, 0xde, 0x1f, 0x11, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, - 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6e, 0x6f, - 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x66, 0x0a, - 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 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, 0xea, 0xde, 0x1f, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, - 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x3a, 0x08, 0xe8, 0xa0, 0x1f, 0x01, 0xf0, 0xa0, 0x1f, 0x01, 0x22, - 0x5e, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, - 0x61, 0x62, 0x63, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x02, 0x18, 0x01, 0x22, - 0xd0, 0x02, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x0a, - 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x0f, 0x6f, 0x6c, 0x64, 0x5f, - 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, - 0x79, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, - 0x12, 0x56, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x75, 0x62, - 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, - 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x43, 0x6f, - 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x36, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x03, 0x66, 0x65, 0x65, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, - 0x1f, 0x00, 0x22, 0x53, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x73, 0x4f, 0x66, - 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0x36, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0c, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2a, 0xb6, 0x01, 0x0a, 0x0a, 0x42, 0x6f, 0x6e, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x17, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x14, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x01, 0x1a, 0x0c, - 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x15, - 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, - 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, 0x55, 0x6e, 0x62, - 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x12, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x03, 0x1a, 0x0a, - 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, - 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, - 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, - 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, - 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x02, 0x42, - 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, - 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, - 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x53, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x04, 0xe8, + 0xa0, 0x1f, 0x00, 0x22, 0xeb, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x71, 0x0a, 0x11, + 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x45, 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, 0xea, 0xde, 0x1f, 0x11, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, + 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, + 0x6e, 0x6f, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, + 0x66, 0x0a, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 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, 0xea, 0xde, 0x1f, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x62, 0x6f, 0x6e, 0x64, 0x65, + 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x3a, 0x08, 0xe8, 0xa0, 0x1f, 0x01, 0xf0, 0xa0, 0x1f, + 0x01, 0x22, 0x5e, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, + 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x02, 0x18, + 0x01, 0x22, 0xd0, 0x02, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, + 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, + 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x0f, 0x6f, 0x6c, + 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6b, + 0x65, 0x79, 0x12, 0x56, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, + 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x6e, 0x65, 0x77, + 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x03, 0x66, 0x65, 0x65, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, + 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x53, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x73, + 0x4f, 0x66, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x4b, 0x65, 0x79, + 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0c, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2a, 0xb6, 0x01, 0x0a, 0x0a, 0x42, 0x6f, + 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x17, 0x42, 0x4f, 0x4e, 0x44, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x55, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x14, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x01, + 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x28, + 0x0a, 0x15, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, + 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, 0x55, + 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x12, 0x42, 0x4f, 0x4e, 0x44, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x03, + 0x1a, 0x0a, 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x1a, 0x04, 0x88, 0xa3, + 0x1e, 0x00, 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, + 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x46, 0x52, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, + 0x02, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x42, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, + 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, + 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -16491,74 +15860,72 @@ func file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP() []byte { } var file_cosmos_staking_v1beta1_staking_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_cosmos_staking_v1beta1_staking_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_cosmos_staking_v1beta1_staking_proto_msgTypes = make([]protoimpl.MessageInfo, 23) var file_cosmos_staking_v1beta1_staking_proto_goTypes = []interface{}{ (BondStatus)(0), // 0: cosmos.staking.v1beta1.BondStatus (Infraction)(0), // 1: cosmos.staking.v1beta1.Infraction (*HistoricalInfo)(nil), // 2: cosmos.staking.v1beta1.HistoricalInfo - (*HistoricalRecord)(nil), // 3: cosmos.staking.v1beta1.HistoricalRecord - (*CommissionRates)(nil), // 4: cosmos.staking.v1beta1.CommissionRates - (*Commission)(nil), // 5: cosmos.staking.v1beta1.Commission - (*Description)(nil), // 6: cosmos.staking.v1beta1.Description - (*Validator)(nil), // 7: cosmos.staking.v1beta1.Validator - (*ValAddresses)(nil), // 8: cosmos.staking.v1beta1.ValAddresses - (*DVPair)(nil), // 9: cosmos.staking.v1beta1.DVPair - (*DVPairs)(nil), // 10: cosmos.staking.v1beta1.DVPairs - (*DVVTriplet)(nil), // 11: cosmos.staking.v1beta1.DVVTriplet - (*DVVTriplets)(nil), // 12: cosmos.staking.v1beta1.DVVTriplets - (*Delegation)(nil), // 13: cosmos.staking.v1beta1.Delegation - (*UnbondingDelegation)(nil), // 14: cosmos.staking.v1beta1.UnbondingDelegation - (*UnbondingDelegationEntry)(nil), // 15: cosmos.staking.v1beta1.UnbondingDelegationEntry - (*RedelegationEntry)(nil), // 16: cosmos.staking.v1beta1.RedelegationEntry - (*Redelegation)(nil), // 17: cosmos.staking.v1beta1.Redelegation - (*Params)(nil), // 18: cosmos.staking.v1beta1.Params - (*DelegationResponse)(nil), // 19: cosmos.staking.v1beta1.DelegationResponse - (*RedelegationEntryResponse)(nil), // 20: cosmos.staking.v1beta1.RedelegationEntryResponse - (*RedelegationResponse)(nil), // 21: cosmos.staking.v1beta1.RedelegationResponse - (*Pool)(nil), // 22: cosmos.staking.v1beta1.Pool - (*ValidatorUpdates)(nil), // 23: cosmos.staking.v1beta1.ValidatorUpdates - (*ConsPubKeyRotationHistory)(nil), // 24: cosmos.staking.v1beta1.ConsPubKeyRotationHistory - (*ValAddrsOfRotatedConsKeys)(nil), // 25: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys - (*v1.Header)(nil), // 26: cometbft.types.v1.Header - (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp - (*anypb.Any)(nil), // 28: google.protobuf.Any - (*durationpb.Duration)(nil), // 29: google.protobuf.Duration - (*v1beta1.Coin)(nil), // 30: cosmos.base.v1beta1.Coin - (*v11.ValidatorUpdate)(nil), // 31: cometbft.abci.v1.ValidatorUpdate + (*CommissionRates)(nil), // 3: cosmos.staking.v1beta1.CommissionRates + (*Commission)(nil), // 4: cosmos.staking.v1beta1.Commission + (*Description)(nil), // 5: cosmos.staking.v1beta1.Description + (*Validator)(nil), // 6: cosmos.staking.v1beta1.Validator + (*ValAddresses)(nil), // 7: cosmos.staking.v1beta1.ValAddresses + (*DVPair)(nil), // 8: cosmos.staking.v1beta1.DVPair + (*DVPairs)(nil), // 9: cosmos.staking.v1beta1.DVPairs + (*DVVTriplet)(nil), // 10: cosmos.staking.v1beta1.DVVTriplet + (*DVVTriplets)(nil), // 11: cosmos.staking.v1beta1.DVVTriplets + (*Delegation)(nil), // 12: cosmos.staking.v1beta1.Delegation + (*UnbondingDelegation)(nil), // 13: cosmos.staking.v1beta1.UnbondingDelegation + (*UnbondingDelegationEntry)(nil), // 14: cosmos.staking.v1beta1.UnbondingDelegationEntry + (*RedelegationEntry)(nil), // 15: cosmos.staking.v1beta1.RedelegationEntry + (*Redelegation)(nil), // 16: cosmos.staking.v1beta1.Redelegation + (*Params)(nil), // 17: cosmos.staking.v1beta1.Params + (*DelegationResponse)(nil), // 18: cosmos.staking.v1beta1.DelegationResponse + (*RedelegationEntryResponse)(nil), // 19: cosmos.staking.v1beta1.RedelegationEntryResponse + (*RedelegationResponse)(nil), // 20: cosmos.staking.v1beta1.RedelegationResponse + (*Pool)(nil), // 21: cosmos.staking.v1beta1.Pool + (*ValidatorUpdates)(nil), // 22: cosmos.staking.v1beta1.ValidatorUpdates + (*ConsPubKeyRotationHistory)(nil), // 23: cosmos.staking.v1beta1.ConsPubKeyRotationHistory + (*ValAddrsOfRotatedConsKeys)(nil), // 24: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys + (*v1.Header)(nil), // 25: cometbft.types.v1.Header + (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp + (*anypb.Any)(nil), // 27: google.protobuf.Any + (*durationpb.Duration)(nil), // 28: google.protobuf.Duration + (*v1beta1.Coin)(nil), // 29: cosmos.base.v1beta1.Coin + (*v11.ValidatorUpdate)(nil), // 30: cometbft.abci.v1.ValidatorUpdate } var file_cosmos_staking_v1beta1_staking_proto_depIdxs = []int32{ - 26, // 0: cosmos.staking.v1beta1.HistoricalInfo.header:type_name -> cometbft.types.v1.Header - 7, // 1: cosmos.staking.v1beta1.HistoricalInfo.valset:type_name -> cosmos.staking.v1beta1.Validator - 27, // 2: cosmos.staking.v1beta1.HistoricalRecord.time:type_name -> google.protobuf.Timestamp - 4, // 3: cosmos.staking.v1beta1.Commission.commission_rates:type_name -> cosmos.staking.v1beta1.CommissionRates - 27, // 4: cosmos.staking.v1beta1.Commission.update_time:type_name -> google.protobuf.Timestamp - 28, // 5: cosmos.staking.v1beta1.Validator.consensus_pubkey:type_name -> google.protobuf.Any - 0, // 6: cosmos.staking.v1beta1.Validator.status:type_name -> cosmos.staking.v1beta1.BondStatus - 6, // 7: cosmos.staking.v1beta1.Validator.description:type_name -> cosmos.staking.v1beta1.Description - 27, // 8: cosmos.staking.v1beta1.Validator.unbonding_time:type_name -> google.protobuf.Timestamp - 5, // 9: cosmos.staking.v1beta1.Validator.commission:type_name -> cosmos.staking.v1beta1.Commission - 9, // 10: cosmos.staking.v1beta1.DVPairs.pairs:type_name -> cosmos.staking.v1beta1.DVPair - 11, // 11: cosmos.staking.v1beta1.DVVTriplets.triplets:type_name -> cosmos.staking.v1beta1.DVVTriplet - 15, // 12: cosmos.staking.v1beta1.UnbondingDelegation.entries:type_name -> cosmos.staking.v1beta1.UnbondingDelegationEntry - 27, // 13: cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time:type_name -> google.protobuf.Timestamp - 27, // 14: cosmos.staking.v1beta1.RedelegationEntry.completion_time:type_name -> google.protobuf.Timestamp - 16, // 15: cosmos.staking.v1beta1.Redelegation.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntry - 29, // 16: cosmos.staking.v1beta1.Params.unbonding_time:type_name -> google.protobuf.Duration - 30, // 17: cosmos.staking.v1beta1.Params.key_rotation_fee:type_name -> cosmos.base.v1beta1.Coin - 13, // 18: cosmos.staking.v1beta1.DelegationResponse.delegation:type_name -> cosmos.staking.v1beta1.Delegation - 30, // 19: cosmos.staking.v1beta1.DelegationResponse.balance:type_name -> cosmos.base.v1beta1.Coin - 16, // 20: cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry:type_name -> cosmos.staking.v1beta1.RedelegationEntry - 17, // 21: cosmos.staking.v1beta1.RedelegationResponse.redelegation:type_name -> cosmos.staking.v1beta1.Redelegation - 20, // 22: cosmos.staking.v1beta1.RedelegationResponse.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntryResponse - 31, // 23: cosmos.staking.v1beta1.ValidatorUpdates.updates:type_name -> cometbft.abci.v1.ValidatorUpdate - 28, // 24: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey:type_name -> google.protobuf.Any - 28, // 25: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey:type_name -> google.protobuf.Any - 30, // 26: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee:type_name -> cosmos.base.v1beta1.Coin - 27, // [27:27] is the sub-list for method output_type - 27, // [27:27] is the sub-list for method input_type - 27, // [27:27] is the sub-list for extension type_name - 27, // [27:27] is the sub-list for extension extendee - 0, // [0:27] is the sub-list for field type_name + 25, // 0: cosmos.staking.v1beta1.HistoricalInfo.header:type_name -> cometbft.types.v1.Header + 6, // 1: cosmos.staking.v1beta1.HistoricalInfo.valset:type_name -> cosmos.staking.v1beta1.Validator + 3, // 2: cosmos.staking.v1beta1.Commission.commission_rates:type_name -> cosmos.staking.v1beta1.CommissionRates + 26, // 3: cosmos.staking.v1beta1.Commission.update_time:type_name -> google.protobuf.Timestamp + 27, // 4: cosmos.staking.v1beta1.Validator.consensus_pubkey:type_name -> google.protobuf.Any + 0, // 5: cosmos.staking.v1beta1.Validator.status:type_name -> cosmos.staking.v1beta1.BondStatus + 5, // 6: cosmos.staking.v1beta1.Validator.description:type_name -> cosmos.staking.v1beta1.Description + 26, // 7: cosmos.staking.v1beta1.Validator.unbonding_time:type_name -> google.protobuf.Timestamp + 4, // 8: cosmos.staking.v1beta1.Validator.commission:type_name -> cosmos.staking.v1beta1.Commission + 8, // 9: cosmos.staking.v1beta1.DVPairs.pairs:type_name -> cosmos.staking.v1beta1.DVPair + 10, // 10: cosmos.staking.v1beta1.DVVTriplets.triplets:type_name -> cosmos.staking.v1beta1.DVVTriplet + 14, // 11: cosmos.staking.v1beta1.UnbondingDelegation.entries:type_name -> cosmos.staking.v1beta1.UnbondingDelegationEntry + 26, // 12: cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time:type_name -> google.protobuf.Timestamp + 26, // 13: cosmos.staking.v1beta1.RedelegationEntry.completion_time:type_name -> google.protobuf.Timestamp + 15, // 14: cosmos.staking.v1beta1.Redelegation.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntry + 28, // 15: cosmos.staking.v1beta1.Params.unbonding_time:type_name -> google.protobuf.Duration + 29, // 16: cosmos.staking.v1beta1.Params.key_rotation_fee:type_name -> cosmos.base.v1beta1.Coin + 12, // 17: cosmos.staking.v1beta1.DelegationResponse.delegation:type_name -> cosmos.staking.v1beta1.Delegation + 29, // 18: cosmos.staking.v1beta1.DelegationResponse.balance:type_name -> cosmos.base.v1beta1.Coin + 15, // 19: cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry:type_name -> cosmos.staking.v1beta1.RedelegationEntry + 16, // 20: cosmos.staking.v1beta1.RedelegationResponse.redelegation:type_name -> cosmos.staking.v1beta1.Redelegation + 19, // 21: cosmos.staking.v1beta1.RedelegationResponse.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntryResponse + 30, // 22: cosmos.staking.v1beta1.ValidatorUpdates.updates:type_name -> cometbft.abci.v1.ValidatorUpdate + 27, // 23: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey:type_name -> google.protobuf.Any + 27, // 24: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey:type_name -> google.protobuf.Any + 29, // 25: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee:type_name -> cosmos.base.v1beta1.Coin + 26, // [26:26] is the sub-list for method output_type + 26, // [26:26] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name } func init() { file_cosmos_staking_v1beta1_staking_proto_init() } @@ -16580,18 +15947,6 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoricalRecord); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommissionRates); i { case 0: return &v.state @@ -16603,7 +15958,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Commission); i { case 0: return &v.state @@ -16615,7 +15970,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Description); i { case 0: return &v.state @@ -16627,7 +15982,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Validator); i { case 0: return &v.state @@ -16639,7 +15994,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValAddresses); i { case 0: return &v.state @@ -16651,7 +16006,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DVPair); i { case 0: return &v.state @@ -16663,7 +16018,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DVPairs); i { case 0: return &v.state @@ -16675,7 +16030,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DVVTriplet); i { case 0: return &v.state @@ -16687,7 +16042,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DVVTriplets); i { case 0: return &v.state @@ -16699,7 +16054,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Delegation); i { case 0: return &v.state @@ -16711,7 +16066,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnbondingDelegation); i { case 0: return &v.state @@ -16723,7 +16078,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnbondingDelegationEntry); i { case 0: return &v.state @@ -16735,7 +16090,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RedelegationEntry); i { case 0: return &v.state @@ -16747,7 +16102,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Redelegation); i { case 0: return &v.state @@ -16759,7 +16114,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Params); i { case 0: return &v.state @@ -16771,7 +16126,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegationResponse); i { case 0: return &v.state @@ -16783,7 +16138,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RedelegationEntryResponse); i { case 0: return &v.state @@ -16795,7 +16150,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RedelegationResponse); i { case 0: return &v.state @@ -16807,7 +16162,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Pool); i { case 0: return &v.state @@ -16819,7 +16174,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorUpdates); i { case 0: return &v.state @@ -16831,7 +16186,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConsPubKeyRotationHistory); i { case 0: return &v.state @@ -16843,7 +16198,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } - file_cosmos_staking_v1beta1_staking_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValAddrsOfRotatedConsKeys); i { case 0: return &v.state @@ -16862,7 +16217,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cosmos_staking_v1beta1_staking_proto_rawDesc, NumEnums: 2, - NumMessages: 24, + NumMessages: 23, NumExtensions: 0, NumServices: 0, }, diff --git a/x/staking/proto/cosmos/staking/v1beta1/query.proto b/x/staking/proto/cosmos/staking/v1beta1/query.proto index 6df51519492a..863b598179ab 100644 --- a/x/staking/proto/cosmos/staking/v1beta1/query.proto +++ b/x/staking/proto/cosmos/staking/v1beta1/query.proto @@ -140,6 +140,7 @@ message QueryValidatorsRequest { cosmos.base.query.v1beta1.PageRequest pagination = 2; } +// ValidatorInfo contains the validator's address and public key. message ValidatorInfo { option (cosmos_proto.message_added_in) = "x/staking v0.2.0"; // consensus_address is the consensus address of the validator. @@ -378,8 +379,7 @@ message QueryHistoricalInfoRequest { message QueryHistoricalInfoResponse { option deprecated = true; // hist defines the historical info at the given height. - HistoricalInfo hist = 1 [deprecated = true]; - HistoricalRecord historical_record = 2; + HistoricalInfo hist = 1 [deprecated = true]; } // QueryPoolRequest is request type for the Query/Pool RPC method. diff --git a/x/staking/proto/cosmos/staking/v1beta1/staking.proto b/x/staking/proto/cosmos/staking/v1beta1/staking.proto index 48203a8d8e3e..faf80f597dc8 100644 --- a/x/staking/proto/cosmos/staking/v1beta1/staking.proto +++ b/x/staking/proto/cosmos/staking/v1beta1/staking.proto @@ -25,16 +25,6 @@ message HistoricalInfo { repeated Validator valset = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } -// HistoricalRecord contains a set of minimum values needed for evaluating historical validator sets and blocks. -// It is stored as part of staking module's state, which persists the `n` most -// recent HistoricalInfo -// (`n` is set by the staking module's `historical_entries` parameter). -message HistoricalRecord { - bytes apphash = 1; - google.protobuf.Timestamp time = 2 [(gogoproto.stdtime) = true]; - bytes validators_hash = 3; -} - // CommissionRates defines the initial commission rates to be used for creating // a validator. message CommissionRates { diff --git a/x/staking/types/query.pb.go b/x/staking/types/query.pb.go index 7d39af987027..5a55b14f0a74 100644 --- a/x/staking/types/query.pb.go +++ b/x/staking/types/query.pb.go @@ -87,6 +87,7 @@ func (m *QueryValidatorsRequest) GetPagination() *query.PageRequest { return nil } +// ValidatorInfo contains the validator's address and public key. type ValidatorInfo struct { // consensus_address is the consensus address of the validator. ConsensusAddress string `protobuf:"bytes,1,opt,name=consensus_address,json=consensusAddress,proto3" json:"consensus_address,omitempty"` @@ -134,7 +135,11 @@ func (m *ValidatorInfo) GetConsensusAddress() string { // QueryValidatorsResponse is response type for the Query/Validators RPC method type QueryValidatorsResponse struct { - Validators []Validator `protobuf:"bytes,1,rep,name=validators,proto3" json:"validators"` + Validators []Validator `protobuf:"bytes,1,rep,name=validators,proto3" json:"validators"` + // validator_info contains additional information for each validator. + // The order of the elements in this list corresponds to the order of the elements in the validators list. + // For example, if you want the ValidatorInfo for the third validator in the validators list, + // you should look at the third element in the validator_info list. ValidatorInfo []ValidatorInfo `protobuf:"bytes,2,rep,name=validator_info,json=validatorInfo,proto3" json:"validator_info"` Pagination *query.PageResponse `protobuf:"bytes,3,opt,name=pagination,proto3" json:"pagination,omitempty"` } @@ -1184,6 +1189,8 @@ func (m *QueryDelegatorValidatorResponse) GetValidator() Validator { // QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC // method. +// +// Deprecated: Do not use. type QueryHistoricalInfoRequest struct { // height defines at which height to query the historical info. Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` @@ -1231,10 +1238,11 @@ func (m *QueryHistoricalInfoRequest) GetHeight() int64 { // QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC // method. +// +// Deprecated: Do not use. type QueryHistoricalInfoResponse struct { // hist defines the historical info at the given height. - Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` // Deprecated: Do not use. - HistoricalRecord *HistoricalRecord `protobuf:"bytes,2,opt,name=historical_record,json=historicalRecord,proto3" json:"historical_record,omitempty"` + Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` // Deprecated: Do not use. } func (m *QueryHistoricalInfoResponse) Reset() { *m = QueryHistoricalInfoResponse{} } @@ -1278,13 +1286,6 @@ func (m *QueryHistoricalInfoResponse) GetHist() *HistoricalInfo { return nil } -func (m *QueryHistoricalInfoResponse) GetHistoricalRecord() *HistoricalRecord { - if m != nil { - return m.HistoricalRecord - } - return nil -} - // QueryPoolRequest is request type for the Query/Pool RPC method. type QueryPoolRequest struct { } @@ -1488,100 +1489,99 @@ func init() { } var fileDescriptor_f270127f442bbcd8 = []byte{ - // 1487 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xdd, 0x6f, 0x14, 0x65, - 0x17, 0xef, 0xb3, 0xed, 0xdb, 0xbc, 0x3d, 0x04, 0xd2, 0x3e, 0xbb, 0xd4, 0x32, 0x94, 0xed, 0x32, - 0x41, 0x2c, 0xc5, 0xce, 0x40, 0x41, 0x40, 0x8c, 0xc0, 0x56, 0xa2, 0x20, 0x04, 0xcb, 0x1a, 0xaa, - 0xf1, 0x23, 0xcd, 0xb4, 0x3b, 0xcc, 0x4e, 0x68, 0x67, 0x96, 0x79, 0xa6, 0x0d, 0x84, 0x10, 0x13, - 0x2f, 0x0c, 0xde, 0x18, 0x13, 0xef, 0x0d, 0x97, 0xc6, 0x68, 0xc2, 0x45, 0x31, 0x7a, 0x21, 0x97, - 0x86, 0x0b, 0x63, 0x08, 0x06, 0xa3, 0x5e, 0xa0, 0x69, 0x4d, 0xf4, 0xc6, 0xff, 0xc0, 0x18, 0x33, - 0x33, 0x67, 0xbe, 0x3a, 0x9f, 0xbb, 0xdd, 0x26, 0xe5, 0xa6, 0xe9, 0x3e, 0x73, 0x3e, 0x7e, 0xbf, - 0xf3, 0xf1, 0xcc, 0x39, 0xbb, 0xc0, 0xcf, 0xe9, 0x6c, 0x41, 0x67, 0x22, 0x33, 0xa5, 0x2b, 0xaa, - 0xa6, 0x88, 0x4b, 0x07, 0x67, 0x65, 0x53, 0x3a, 0x28, 0x5e, 0x5d, 0x94, 0x8d, 0xeb, 0x42, 0xd3, - 0xd0, 0x4d, 0x9d, 0x0e, 0x3a, 0x32, 0x02, 0xca, 0x08, 0x28, 0xc3, 0x8d, 0xa1, 0xee, 0xac, 0xc4, - 0x64, 0x47, 0xc1, 0x53, 0x6f, 0x4a, 0x8a, 0xaa, 0x49, 0xa6, 0xaa, 0x6b, 0x8e, 0x0d, 0xae, 0xa4, - 0xe8, 0x8a, 0x6e, 0xff, 0x2b, 0x5a, 0xff, 0xe1, 0xe9, 0xb0, 0xa2, 0xeb, 0xca, 0xbc, 0x2c, 0x4a, - 0x4d, 0x55, 0x94, 0x34, 0x4d, 0x37, 0x6d, 0x15, 0x86, 0x4f, 0xf7, 0x24, 0x60, 0x73, 0x71, 0x38, - 0x52, 0x3b, 0x1c, 0xa9, 0x19, 0xc7, 0x38, 0x42, 0x75, 0x1e, 0xed, 0x44, 0x03, 0x2e, 0xb6, 0x20, - 0x2b, 0x6e, 0x40, 0x5a, 0x50, 0x35, 0x5d, 0xb4, 0xff, 0x3a, 0x47, 0xfc, 0x35, 0x18, 0xbc, 0x68, - 0x49, 0x4c, 0x4b, 0xf3, 0x6a, 0x5d, 0x32, 0x75, 0x83, 0xd5, 0xe4, 0xab, 0x8b, 0x32, 0x33, 0xe9, - 0x20, 0xf4, 0x32, 0x53, 0x32, 0x17, 0xd9, 0x10, 0xa9, 0x90, 0xd1, 0xbe, 0x1a, 0x7e, 0xa2, 0x2f, - 0x03, 0xf8, 0x54, 0x87, 0x0a, 0x15, 0x32, 0xba, 0x65, 0x62, 0xaf, 0x80, 0x20, 0xac, 0xb8, 0x08, - 0x8e, 0x4b, 0x84, 0x2e, 0x4c, 0x49, 0x8a, 0x8c, 0x36, 0x6b, 0x01, 0x4d, 0xbe, 0x01, 0x5b, 0x3d, - 0xa7, 0x67, 0xb5, 0xcb, 0x3a, 0xad, 0xc2, 0xc0, 0x9c, 0xae, 0x31, 0x59, 0x63, 0x8b, 0x6c, 0x46, - 0xaa, 0xd7, 0x0d, 0x99, 0xa1, 0xef, 0xc9, 0xd2, 0xaf, 0xcb, 0xe3, 0xfd, 0xd7, 0xdc, 0x28, 0x54, - 0x96, 0x0e, 0x08, 0x13, 0xc2, 0x81, 0x5a, 0xbf, 0x27, 0x5e, 0x75, 0xa4, 0x8f, 0x97, 0x1e, 0xc6, - 0xc8, 0xf1, 0x1f, 0x16, 0xe0, 0xa9, 0x08, 0x49, 0xd6, 0xb4, 0x94, 0xe9, 0x79, 0x80, 0x25, 0xef, - 0x74, 0x88, 0x54, 0xba, 0x47, 0xb7, 0x4c, 0xec, 0x16, 0xe2, 0xb3, 0x2f, 0x78, 0xfa, 0x93, 0x7d, - 0xf7, 0x1f, 0x8f, 0x74, 0x7d, 0xf6, 0xe7, 0x9d, 0x31, 0x52, 0x0b, 0xe8, 0xd3, 0x37, 0x60, 0x9b, - 0xf7, 0x69, 0x46, 0xd5, 0x2e, 0xeb, 0x43, 0x05, 0xdb, 0xe2, 0xd3, 0x99, 0x16, 0xad, 0x08, 0x04, - 0xad, 0x6e, 0x5d, 0x0a, 0xc5, 0xe6, 0x95, 0x50, 0xd0, 0xbb, 0xed, 0xa0, 0x3f, 0x93, 0x19, 0x74, - 0x87, 0x63, 0x28, 0xea, 0x12, 0x6c, 0x0f, 0x87, 0xc2, 0x4d, 0xf7, 0x99, 0x20, 0x74, 0x2b, 0xfa, - 0x18, 0xfa, 0xdd, 0x0f, 0x97, 0xc7, 0x77, 0xa1, 0x23, 0x4f, 0x09, 0xe3, 0xfd, 0xba, 0x69, 0xa8, - 0x9a, 0x12, 0xc0, 0x6a, 0x9d, 0xf3, 0xf5, 0xb5, 0x25, 0xe5, 0x05, 0xfb, 0x55, 0xe8, 0xf3, 0x44, - 0x6d, 0xf3, 0xad, 0xc6, 0xda, 0x57, 0xe7, 0x97, 0x09, 0x54, 0xc2, 0x6e, 0x4e, 0xcb, 0xf3, 0xb2, - 0xe2, 0x74, 0x53, 0xc7, 0x49, 0x75, 0xac, 0xea, 0xff, 0x26, 0xb0, 0x3b, 0x05, 0x36, 0x06, 0xea, - 0x3d, 0x28, 0xd5, 0xbd, 0xe3, 0x19, 0x03, 0x8f, 0xdd, 0xfa, 0x1c, 0x4b, 0x8a, 0x99, 0x6f, 0xca, - 0xb5, 0x34, 0x59, 0xb1, 0x82, 0xf7, 0xf9, 0x6f, 0x23, 0xc5, 0xe8, 0x33, 0xe6, 0xc4, 0xb4, 0x58, - 0x8f, 0x3e, 0x59, 0x53, 0x6f, 0x85, 0xf6, 0xeb, 0xed, 0x5b, 0x02, 0xfb, 0xc2, 0x7c, 0x2f, 0x69, - 0xb3, 0xba, 0x56, 0x57, 0x35, 0xe5, 0x89, 0xc8, 0xd7, 0x63, 0x02, 0x63, 0x79, 0xf0, 0x63, 0xe2, - 0x14, 0x28, 0x2e, 0xba, 0xcf, 0x23, 0x79, 0xdb, 0x9f, 0x94, 0xb7, 0x18, 0x93, 0xc1, 0xaa, 0xa7, - 0x9e, 0xc9, 0x0d, 0x48, 0xd0, 0x97, 0x04, 0xdb, 0x35, 0x58, 0x20, 0x4e, 0x36, 0x4e, 0xc2, 0x36, - 0xac, 0x8d, 0x70, 0x36, 0x86, 0x1e, 0x2e, 0x8f, 0x97, 0xd0, 0xd5, 0x9a, 0x24, 0x78, 0xf2, 0x76, - 0x12, 0xa2, 0xe9, 0x2c, 0xb4, 0x97, 0xce, 0xe3, 0xff, 0xbf, 0x75, 0x7b, 0xa4, 0xeb, 0xaf, 0xdb, - 0x23, 0x5d, 0xfc, 0x12, 0xde, 0xe5, 0xd1, 0x7a, 0xa6, 0x6f, 0x43, 0x31, 0xa6, 0x6b, 0xf0, 0xa2, - 0x69, 0xa1, 0x69, 0x6a, 0x34, 0xda, 0x12, 0xfc, 0x57, 0x04, 0x46, 0x6c, 0xc7, 0x31, 0xc9, 0xda, - 0xd4, 0x01, 0x33, 0xf0, 0x9e, 0x8c, 0xc5, 0x8d, 0x91, 0xbb, 0x00, 0xbd, 0x4e, 0x8d, 0x61, 0xb0, - 0xda, 0xad, 0x54, 0xb4, 0xc2, 0xdf, 0x75, 0x2f, 0xe7, 0xd3, 0x2e, 0xbd, 0x98, 0x66, 0x5f, 0x77, - 0xb4, 0x3a, 0xd4, 0xe3, 0x81, 0x58, 0xfd, 0xe4, 0xde, 0xce, 0xf1, 0xb8, 0x31, 0x5a, 0x8d, 0x8e, - 0xdd, 0xce, 0x81, 0xd0, 0x6d, 0xec, 0x35, 0x7c, 0xcf, 0xbd, 0x86, 0x3d, 0x62, 0x69, 0xd7, 0xf0, - 0x26, 0xcc, 0x8c, 0x77, 0x0f, 0x67, 0x10, 0x78, 0x62, 0xef, 0xe1, 0x7b, 0x05, 0xd8, 0x61, 0x13, - 0xac, 0xc9, 0xf5, 0x0d, 0xc9, 0x08, 0x65, 0xc6, 0xdc, 0x4c, 0xec, 0xed, 0x92, 0x6c, 0xa4, 0x9f, - 0x19, 0x73, 0xd3, 0x6b, 0xde, 0xab, 0xb4, 0xce, 0xcc, 0xb5, 0x76, 0xba, 0xb3, 0xec, 0xd4, 0x99, - 0x39, 0x9d, 0xf2, 0x7e, 0xee, 0xe9, 0x40, 0x85, 0x3c, 0x22, 0xc0, 0xc5, 0x05, 0x10, 0x2b, 0x42, - 0x83, 0x41, 0x43, 0x4e, 0x69, 0xdb, 0x67, 0x93, 0x8a, 0x22, 0x68, 0x2e, 0xae, 0x71, 0xb7, 0x1b, - 0xf2, 0x86, 0xb6, 0xee, 0xb2, 0xfb, 0xe2, 0xf1, 0x2a, 0x3f, 0xba, 0xab, 0x6d, 0xc2, 0x86, 0xfd, - 0x26, 0xf2, 0x0a, 0xd8, 0xf0, 0xed, 0xab, 0x63, 0x21, 0xbf, 0x4b, 0xa0, 0x9c, 0x80, 0x7d, 0x53, - 0xbf, 0xea, 0x17, 0x12, 0x2b, 0x65, 0x43, 0x56, 0xb0, 0xc3, 0xd8, 0x70, 0x67, 0x54, 0x66, 0xea, - 0x86, 0x3a, 0x27, 0xcd, 0x5b, 0xbb, 0x6a, 0xe0, 0xfb, 0x83, 0x86, 0xac, 0x2a, 0x0d, 0xd3, 0x76, - 0xd3, 0x5d, 0xc3, 0x4f, 0x56, 0x3d, 0xef, 0x8c, 0x55, 0x43, 0x84, 0x27, 0xa0, 0xa7, 0xa1, 0x32, - 0x13, 0xc1, 0xed, 0x4d, 0x02, 0x17, 0xd6, 0x9e, 0x2c, 0x0c, 0x91, 0x9a, 0xad, 0x47, 0x2f, 0xc1, - 0x40, 0xc3, 0x7b, 0x36, 0x63, 0xc8, 0x73, 0xba, 0x51, 0xc7, 0x62, 0x18, 0xcd, 0x36, 0x56, 0xb3, - 0xe5, 0x6b, 0xfd, 0x8d, 0x35, 0x27, 0x3c, 0x85, 0x7e, 0x1b, 0xf5, 0x94, 0xae, 0xcf, 0x23, 0x45, - 0x7e, 0x0a, 0x06, 0x02, 0x67, 0x88, 0xff, 0x05, 0xe8, 0x69, 0xea, 0xfa, 0x3c, 0xe2, 0x1f, 0x4e, - 0x72, 0x69, 0xe9, 0x04, 0xe3, 0x6a, 0x2b, 0xf1, 0x25, 0xa0, 0x8e, 0x45, 0xc9, 0x90, 0x16, 0xdc, - 0xf6, 0xe6, 0xdf, 0x84, 0x62, 0xe8, 0x14, 0x3d, 0x55, 0xa1, 0xb7, 0x69, 0x9f, 0xa0, 0xaf, 0x72, - 0xa2, 0x2f, 0x5b, 0x2a, 0x34, 0xa8, 0x39, 0x8a, 0x13, 0x77, 0x06, 0xe1, 0x7f, 0xb6, 0x69, 0xfa, - 0x29, 0x01, 0xf0, 0x3b, 0x94, 0x0a, 0x49, 0xb6, 0xe2, 0xbf, 0x2d, 0xe2, 0xc4, 0xdc, 0xf2, 0x38, - 0x4f, 0x8b, 0xb7, 0x2c, 0x20, 0xef, 0xff, 0xf8, 0xc7, 0x27, 0x85, 0x3d, 0x94, 0x17, 0x13, 0xbe, - 0xf7, 0x0a, 0x74, 0xf7, 0x17, 0x04, 0xfa, 0x3c, 0x3b, 0x74, 0x3c, 0x9f, 0x3f, 0x17, 0x9e, 0x90, - 0x57, 0x1c, 0xd1, 0x9d, 0xf2, 0xd1, 0x3d, 0x47, 0x0f, 0x65, 0xa3, 0x13, 0x6f, 0x84, 0x9b, 0xf9, - 0x26, 0xfd, 0x85, 0x40, 0x29, 0x6e, 0xc7, 0xa7, 0xc7, 0xf2, 0x41, 0x89, 0x8e, 0x65, 0xdc, 0xf3, - 0x6d, 0x68, 0x22, 0x9f, 0xf3, 0x3e, 0x9f, 0x2a, 0x3d, 0xd9, 0x06, 0x1f, 0x31, 0xf0, 0x4e, 0xa5, - 0xff, 0x12, 0xd8, 0x95, 0xba, 0x0f, 0xd3, 0x6a, 0x3e, 0xa8, 0x29, 0x43, 0x28, 0x37, 0xb9, 0x1e, - 0x13, 0x48, 0x7b, 0xda, 0xa7, 0x7d, 0x8e, 0x9e, 0x6d, 0x87, 0xb6, 0x3f, 0x45, 0x06, 0x03, 0xf0, - 0x3d, 0x01, 0xf0, 0xfd, 0x65, 0x34, 0x4b, 0x64, 0x4f, 0xcc, 0x68, 0x96, 0xe8, 0x9e, 0xc0, 0xbf, - 0xeb, 0xf3, 0xa8, 0xd1, 0xa9, 0x75, 0xa6, 0x4f, 0xbc, 0x11, 0x7e, 0x73, 0xdd, 0xa4, 0xff, 0x10, - 0x28, 0xc6, 0xc4, 0x91, 0x1e, 0x4d, 0xc5, 0x99, 0xbc, 0x08, 0x73, 0xc7, 0x5a, 0x57, 0x44, 0xa6, - 0x86, 0xcf, 0x54, 0xa1, 0x72, 0xa7, 0x99, 0xc6, 0xa6, 0x93, 0xfe, 0x40, 0xa0, 0x14, 0xb7, 0xf0, - 0x65, 0xb4, 0x6a, 0xca, 0x6e, 0x9b, 0xd1, 0xaa, 0x69, 0xdb, 0x25, 0x5f, 0xf5, 0x23, 0x70, 0x84, - 0x1e, 0x4e, 0x8a, 0x40, 0x6a, 0x3e, 0xad, 0xfe, 0x4c, 0xdd, 0x93, 0x32, 0xfa, 0x33, 0xcf, 0x92, - 0x98, 0xd1, 0x9f, 0xb9, 0xd6, 0xb4, 0x9c, 0xfd, 0xe9, 0xd1, 0xcb, 0x99, 0x50, 0x46, 0xbf, 0x23, - 0xb0, 0x35, 0xb4, 0x06, 0xd0, 0x83, 0xa9, 0x68, 0xe3, 0x76, 0x2e, 0x6e, 0xa2, 0x15, 0x15, 0x24, - 0x74, 0xc1, 0x27, 0xf4, 0x12, 0xad, 0xb6, 0x43, 0xc8, 0x08, 0xc1, 0x7e, 0x44, 0xa0, 0x18, 0x33, - 0x40, 0x67, 0x74, 0x66, 0xf2, 0xa6, 0xc0, 0x1d, 0x6b, 0x5d, 0x11, 0xa9, 0x9d, 0xf3, 0xa9, 0x9d, - 0xa2, 0x27, 0xda, 0xa1, 0x16, 0x78, 0x99, 0xaf, 0x12, 0xa0, 0x51, 0x67, 0xf4, 0x48, 0x8b, 0xe8, - 0x5c, 0x56, 0x47, 0x5b, 0xd6, 0x43, 0x52, 0xef, 0xf8, 0xa4, 0x2e, 0xd2, 0xd7, 0xd6, 0x47, 0x2a, - 0x3a, 0x03, 0x7c, 0x4d, 0x60, 0x5b, 0x78, 0x4e, 0xa5, 0xe9, 0x45, 0x15, 0x3b, 0x49, 0x73, 0x87, - 0x5a, 0xd2, 0x41, 0x66, 0x2f, 0xfa, 0xcc, 0x26, 0xe8, 0x81, 0x24, 0x66, 0x81, 0x49, 0x59, 0xd5, - 0x2e, 0xeb, 0xe2, 0x0d, 0x67, 0x48, 0xbf, 0x49, 0x3f, 0x20, 0xd0, 0x63, 0x8d, 0xa8, 0x74, 0x34, - 0xd5, 0x79, 0x60, 0x1a, 0xe6, 0xf6, 0xe5, 0x90, 0x44, 0x70, 0xfb, 0x7c, 0x70, 0x65, 0x3a, 0x9c, - 0x04, 0xce, 0x9a, 0x88, 0xe9, 0x47, 0x04, 0x7a, 0x9d, 0xf9, 0x95, 0x8e, 0xa5, 0x3b, 0x08, 0x8e, - 0xcc, 0xdc, 0xfe, 0x5c, 0xb2, 0x08, 0x67, 0xbf, 0x0f, 0xa7, 0x42, 0xcb, 0x89, 0x70, 0x9c, 0x29, - 0xfa, 0xc8, 0xfd, 0x95, 0x32, 0x79, 0xb0, 0x52, 0x26, 0xbf, 0xaf, 0x94, 0xc9, 0xc7, 0xab, 0xe5, - 0xae, 0x07, 0xab, 0xe5, 0xae, 0x9f, 0x57, 0xcb, 0x5d, 0x6f, 0x0d, 0x3b, 0x8a, 0xac, 0x7e, 0x45, - 0x50, 0x75, 0xd1, 0xfb, 0x19, 0x52, 0x34, 0xaf, 0x37, 0x65, 0x36, 0xdb, 0x6b, 0xff, 0xe0, 0x7a, - 0xe8, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x96, 0x14, 0xcd, 0x7f, 0x1e, 0x00, 0x00, + // 1467 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xdd, 0x6b, 0x1c, 0x55, + 0x14, 0xcf, 0xdd, 0xc4, 0x60, 0x4e, 0x69, 0x49, 0xef, 0x6e, 0xe3, 0x76, 0x9a, 0x6e, 0xb6, 0x43, + 0xad, 0x69, 0x6a, 0x66, 0xda, 0x54, 0xdb, 0x58, 0xa1, 0xed, 0xc6, 0xa2, 0xad, 0x2d, 0x35, 0x5d, + 0x31, 0x8a, 0x1f, 0x84, 0x49, 0x76, 0x3a, 0x19, 0x9a, 0xcc, 0x6c, 0xe7, 0x4e, 0x42, 0x4b, 0x29, + 0x82, 0x0f, 0x52, 0x5f, 0x44, 0xf0, 0x5d, 0xfa, 0x28, 0xa2, 0x20, 0x98, 0x0a, 0x22, 0xf6, 0x51, + 0xfa, 0x20, 0x52, 0x2a, 0x15, 0xf5, 0xa1, 0x4a, 0x23, 0xe8, 0x8b, 0xff, 0x81, 0x88, 0xcc, 0xcc, + 0x99, 0xaf, 0xcc, 0xe7, 0x6e, 0x76, 0x21, 0x7d, 0x09, 0xd9, 0x3b, 0xf7, 0x9c, 0xf3, 0xfb, 0xfd, + 0xce, 0x39, 0x77, 0xce, 0xdd, 0x05, 0x7e, 0x5e, 0x67, 0x4b, 0x3a, 0x13, 0x99, 0x29, 0x5d, 0x52, + 0x35, 0x45, 0x5c, 0x39, 0x34, 0x27, 0x9b, 0xd2, 0x21, 0xf1, 0xf2, 0xb2, 0x6c, 0x5c, 0x15, 0x9a, + 0x86, 0x6e, 0xea, 0x74, 0xc8, 0xd9, 0x23, 0xe0, 0x1e, 0x01, 0xf7, 0x70, 0x63, 0x68, 0x3b, 0x27, + 0x31, 0xd9, 0x31, 0xf0, 0xcc, 0x9b, 0x92, 0xa2, 0x6a, 0x92, 0xa9, 0xea, 0x9a, 0xe3, 0x83, 0x2b, + 0x29, 0xba, 0xa2, 0xdb, 0xff, 0x8a, 0xd6, 0x7f, 0xb8, 0x3a, 0xac, 0xe8, 0xba, 0xb2, 0x28, 0x8b, + 0x52, 0x53, 0x15, 0x25, 0x4d, 0xd3, 0x4d, 0xdb, 0x84, 0xe1, 0xd3, 0xbd, 0x09, 0xd8, 0x5c, 0x1c, + 0xce, 0xae, 0x9d, 0xce, 0xae, 0x59, 0xc7, 0x39, 0x42, 0x75, 0x1e, 0xed, 0x42, 0x07, 0x2e, 0xb6, + 0x20, 0x2b, 0x6e, 0xbb, 0xb4, 0xa4, 0x6a, 0xba, 0x68, 0xff, 0x75, 0x96, 0xf8, 0x2b, 0x30, 0x74, + 0xc1, 0xda, 0x31, 0x23, 0x2d, 0xaa, 0x0d, 0xc9, 0xd4, 0x0d, 0x56, 0x97, 0x2f, 0x2f, 0xcb, 0xcc, + 0xa4, 0x43, 0xd0, 0xcf, 0x4c, 0xc9, 0x5c, 0x66, 0x65, 0x52, 0x25, 0xa3, 0x03, 0x75, 0xfc, 0x44, + 0x5f, 0x04, 0xf0, 0xa9, 0x96, 0x0b, 0x55, 0x32, 0xba, 0x65, 0x62, 0x9f, 0x80, 0x20, 0x2c, 0x5d, + 0x04, 0x27, 0x24, 0x42, 0x17, 0xa6, 0x25, 0x45, 0x46, 0x9f, 0xf5, 0x80, 0x25, 0xbf, 0x00, 0x5b, + 0xbd, 0xa0, 0x67, 0xb4, 0x8b, 0x3a, 0xad, 0xc1, 0xf6, 0x79, 0x5d, 0x63, 0xb2, 0xc6, 0x96, 0xd9, + 0xac, 0xd4, 0x68, 0x18, 0x32, 0xc3, 0xd8, 0x53, 0xa5, 0xdf, 0x56, 0xc7, 0x07, 0xaf, 0xb8, 0x2a, + 0x54, 0x57, 0x0e, 0x0a, 0x13, 0xc2, 0xc1, 0xfa, 0xa0, 0xb7, 0xbd, 0xe6, 0xec, 0x3e, 0x56, 0xba, + 0x17, 0xb3, 0x8f, 0xff, 0xa0, 0x00, 0x4f, 0x44, 0x48, 0xb2, 0xa6, 0x65, 0x4c, 0xcf, 0x01, 0xac, + 0x78, 0xab, 0x65, 0x52, 0xed, 0x1d, 0xdd, 0x32, 0xb1, 0x47, 0x88, 0xcf, 0xbe, 0xe0, 0xd9, 0x4f, + 0x0d, 0xdc, 0x79, 0x30, 0xd2, 0xf3, 0xe9, 0x5f, 0x5f, 0x8e, 0x91, 0x7a, 0xc0, 0x9e, 0xbe, 0x0e, + 0xdb, 0xbc, 0x4f, 0xb3, 0xaa, 0x76, 0x51, 0x2f, 0x17, 0x6c, 0x8f, 0x4f, 0x66, 0x7a, 0xb4, 0x14, + 0x08, 0x7a, 0xdd, 0xba, 0x12, 0xd2, 0xe6, 0xa5, 0x90, 0xe8, 0xbd, 0xb6, 0xe8, 0x4f, 0x65, 0x8a, + 0xee, 0x70, 0x0c, 0xa9, 0x2e, 0xc1, 0x8e, 0xb0, 0x14, 0x6e, 0xba, 0x4f, 0x07, 0xa1, 0x5b, 0xea, + 0xa3, 0xf4, 0x7b, 0xee, 0xad, 0x8e, 0xef, 0xc6, 0x40, 0x9e, 0x11, 0xea, 0xfd, 0xaa, 0x69, 0xa8, + 0x9a, 0x12, 0xc0, 0x6a, 0xad, 0xf3, 0x8d, 0xf5, 0x25, 0xe5, 0x89, 0xfd, 0x32, 0x0c, 0x78, 0x5b, + 0x6d, 0xf7, 0xad, 0x6a, 0xed, 0x9b, 0xf3, 0xab, 0x04, 0xaa, 0xe1, 0x30, 0xa7, 0xe4, 0x45, 0x59, + 0x71, 0xba, 0xa9, 0xe3, 0xa4, 0x3a, 0x56, 0xf5, 0xff, 0x10, 0xd8, 0x93, 0x02, 0x1b, 0x85, 0x7a, + 0x17, 0x4a, 0x0d, 0x6f, 0x79, 0xd6, 0xc0, 0x65, 0xb7, 0x3e, 0xc7, 0x92, 0x34, 0xf3, 0x5d, 0xb9, + 0x9e, 0xa6, 0xaa, 0x96, 0x78, 0x9f, 0xfd, 0x3e, 0x52, 0x8c, 0x3e, 0x63, 0x8e, 0xa6, 0xc5, 0x46, + 0xf4, 0xc9, 0xba, 0x7a, 0x2b, 0xb4, 0x5f, 0x6f, 0xdf, 0x11, 0xd8, 0x1f, 0xe6, 0xfb, 0x9a, 0x36, + 0xa7, 0x6b, 0x0d, 0x55, 0x53, 0x1e, 0x89, 0x7c, 0x3d, 0x20, 0x30, 0x96, 0x07, 0x3f, 0x26, 0x4e, + 0x81, 0xe2, 0xb2, 0xfb, 0x3c, 0x92, 0xb7, 0x03, 0x49, 0x79, 0x8b, 0x71, 0x19, 0xac, 0x7a, 0xea, + 0xb9, 0xec, 0x42, 0x82, 0xbe, 0x20, 0xd8, 0xae, 0xc1, 0x02, 0x71, 0xb2, 0x71, 0x02, 0xb6, 0x61, + 0x6d, 0x84, 0xb3, 0x51, 0xbe, 0xb7, 0x3a, 0x5e, 0xc2, 0x50, 0xeb, 0x92, 0xe0, 0xed, 0xb7, 0x93, + 0x10, 0x4d, 0x67, 0xa1, 0xbd, 0x74, 0x1e, 0x7b, 0xfc, 0xc6, 0xcd, 0x91, 0x9e, 0xbf, 0x6f, 0x8e, + 0xf4, 0xf0, 0x2b, 0x78, 0x96, 0x47, 0xeb, 0x99, 0xbe, 0x05, 0xc5, 0x98, 0xae, 0xc1, 0x83, 0xa6, + 0x85, 0xa6, 0xa9, 0xd3, 0x68, 0x4b, 0xf0, 0x5f, 0x13, 0x18, 0xb1, 0x03, 0xc7, 0x24, 0x6b, 0x53, + 0x0b, 0x66, 0xe0, 0x39, 0x19, 0x8b, 0x1b, 0x95, 0x3b, 0x0f, 0xfd, 0x4e, 0x8d, 0xa1, 0x58, 0xed, + 0x56, 0x2a, 0x7a, 0xe1, 0x6f, 0xb9, 0x87, 0xf3, 0x29, 0x97, 0x5e, 0x4c, 0xb3, 0x6f, 0x58, 0xad, + 0x0e, 0xf5, 0x78, 0x40, 0xab, 0x9f, 0xdd, 0xd3, 0x39, 0x1e, 0x37, 0xaa, 0xb5, 0xd0, 0xb1, 0xd3, + 0x39, 0x20, 0x5d, 0x77, 0x8f, 0xe1, 0xdb, 0xee, 0x31, 0xec, 0x11, 0x4b, 0x3b, 0x86, 0x37, 0x61, + 0x66, 0xbc, 0x73, 0x38, 0x83, 0xc0, 0x23, 0x7b, 0x0e, 0xdf, 0x2e, 0xc0, 0x4e, 0x9b, 0x60, 0x5d, + 0x6e, 0x74, 0x25, 0x23, 0x94, 0x19, 0xf3, 0xb3, 0xb1, 0xa7, 0x4b, 0xb2, 0x93, 0x41, 0x66, 0xcc, + 0xcf, 0xac, 0x7b, 0xaf, 0xd2, 0x06, 0x33, 0xd7, 0xfb, 0xe9, 0xcd, 0xf2, 0xd3, 0x60, 0xe6, 0x4c, + 0xca, 0xfb, 0xb9, 0xaf, 0x03, 0x15, 0x72, 0x9f, 0x00, 0x17, 0x27, 0x20, 0x56, 0x84, 0x06, 0x43, + 0x86, 0x9c, 0xd2, 0xb6, 0x4f, 0x27, 0x15, 0x45, 0xd0, 0x5d, 0x5c, 0xe3, 0xee, 0x30, 0xe4, 0xae, + 0xb6, 0xee, 0xaa, 0xfb, 0xe2, 0xf1, 0x2a, 0x3f, 0x7a, 0x57, 0xdb, 0x84, 0x0d, 0xfb, 0x4d, 0xe4, + 0x15, 0xd0, 0xf5, 0xdb, 0x57, 0xc7, 0x24, 0xbf, 0x45, 0xa0, 0x92, 0x80, 0x7d, 0x53, 0xbf, 0xea, + 0x97, 0x12, 0x2b, 0xa5, 0x2b, 0x57, 0xb0, 0x49, 0x6c, 0xb8, 0xd3, 0x2a, 0x33, 0x75, 0x43, 0x9d, + 0x97, 0x16, 0xad, 0xbb, 0x6a, 0xe0, 0xfb, 0x83, 0x05, 0x59, 0x55, 0x16, 0x4c, 0x3b, 0x4c, 0x6f, + 0x1d, 0x3f, 0x1d, 0x2b, 0x94, 0x09, 0x2f, 0xc1, 0xae, 0x58, 0x4b, 0x04, 0x79, 0x1c, 0xfa, 0x16, + 0x54, 0x66, 0x22, 0xbe, 0x7d, 0x49, 0xf8, 0xc2, 0xd6, 0x53, 0x85, 0x32, 0xa9, 0xdb, 0x76, 0x76, + 0x08, 0x0a, 0x83, 0x76, 0x88, 0x69, 0x5d, 0x5f, 0x44, 0x48, 0xfc, 0x34, 0x6c, 0x0f, 0xac, 0x61, + 0xb0, 0xe7, 0xa1, 0xaf, 0xa9, 0xeb, 0x8b, 0x18, 0x6c, 0x38, 0x29, 0x98, 0x65, 0x13, 0xd4, 0xc1, + 0x36, 0xe2, 0x4b, 0x40, 0x1d, 0x8f, 0x92, 0x21, 0x2d, 0xb9, 0xed, 0xc8, 0xbf, 0x01, 0xc5, 0xd0, + 0x2a, 0x46, 0xaa, 0x41, 0x7f, 0xd3, 0x5e, 0xc1, 0x58, 0x95, 0xc4, 0x58, 0xf6, 0xae, 0xd0, 0x60, + 0xe5, 0x18, 0x4e, 0x7c, 0x35, 0x04, 0x8f, 0xd9, 0xae, 0xe9, 0x27, 0x04, 0xc0, 0xef, 0x28, 0x2a, + 0x24, 0xf9, 0x8a, 0xff, 0x76, 0x87, 0x13, 0x73, 0xef, 0xc7, 0xf9, 0x57, 0xbc, 0x61, 0x01, 0x79, + 0xef, 0xa7, 0x3f, 0x3f, 0x2e, 0xec, 0xa5, 0xbc, 0x98, 0xf0, 0x3d, 0x55, 0xa0, 0x1b, 0x3f, 0x27, + 0x30, 0xe0, 0xf9, 0xa1, 0xe3, 0xf9, 0xe2, 0xb9, 0xf0, 0x84, 0xbc, 0xdb, 0x11, 0xdd, 0x49, 0x1f, + 0xdd, 0xb3, 0xf4, 0x70, 0x36, 0x3a, 0xf1, 0x5a, 0xb8, 0xf9, 0xae, 0xd3, 0x5f, 0x09, 0x94, 0xe2, + 0xee, 0xe4, 0x74, 0x32, 0x1f, 0x94, 0xe8, 0x18, 0xc5, 0x3d, 0xd7, 0x86, 0x25, 0xf2, 0x39, 0xe7, + 0xf3, 0xa9, 0xd1, 0x13, 0x6d, 0xf0, 0x11, 0x03, 0xef, 0x40, 0xfa, 0x1f, 0x81, 0xdd, 0xa9, 0xf7, + 0x57, 0x5a, 0xcb, 0x07, 0x35, 0x65, 0x68, 0xe4, 0xa6, 0x36, 0xe2, 0x02, 0x69, 0xcf, 0xf8, 0xb4, + 0xcf, 0xd2, 0x33, 0xed, 0xd0, 0xf6, 0xa7, 0xbe, 0xa0, 0x00, 0x3f, 0x10, 0x00, 0x3f, 0x5e, 0x46, + 0xb3, 0x44, 0xee, 0x75, 0x19, 0xcd, 0x12, 0x9d, 0xeb, 0xf9, 0x77, 0x7c, 0x1e, 0x75, 0x3a, 0xbd, + 0xc1, 0xf4, 0x89, 0xd7, 0xc2, 0x6f, 0x9a, 0xeb, 0xf4, 0x5f, 0x02, 0xc5, 0x18, 0x1d, 0xe9, 0xd1, + 0x54, 0x9c, 0xc9, 0x17, 0x57, 0x6e, 0xb2, 0x75, 0x43, 0x64, 0x6a, 0xf8, 0x4c, 0x15, 0x2a, 0x77, + 0x9a, 0x69, 0x6c, 0x3a, 0xe9, 0x8f, 0x04, 0x4a, 0x71, 0x17, 0xb4, 0x8c, 0x56, 0x4d, 0xb9, 0x8b, + 0x66, 0xb4, 0x6a, 0xda, 0x6d, 0x90, 0xaf, 0xf9, 0x0a, 0x1c, 0xa1, 0xcf, 0x24, 0x29, 0x90, 0x9a, + 0x4f, 0xab, 0x3f, 0x53, 0xef, 0x35, 0x19, 0xfd, 0x99, 0xe7, 0x52, 0x97, 0xd1, 0x9f, 0xb9, 0xae, + 0x55, 0x39, 0xfb, 0xd3, 0xa3, 0x97, 0x33, 0xa1, 0x8c, 0x7e, 0x4f, 0x60, 0x6b, 0x68, 0x6c, 0xa7, + 0x87, 0x52, 0xd1, 0xc6, 0xdd, 0x91, 0xb8, 0x89, 0x56, 0x4c, 0x90, 0xd0, 0x79, 0x9f, 0xd0, 0x0b, + 0xb4, 0xd6, 0x0e, 0x21, 0x23, 0x04, 0xfb, 0x3e, 0x81, 0x62, 0xcc, 0xc0, 0x9b, 0xd1, 0x99, 0xc9, + 0x93, 0x3d, 0x37, 0xd9, 0xba, 0x21, 0x52, 0x3b, 0xeb, 0x53, 0x3b, 0x49, 0x8f, 0xb7, 0x43, 0x2d, + 0xf0, 0x32, 0x5f, 0x23, 0x40, 0xa3, 0xc1, 0xe8, 0x91, 0x16, 0xd1, 0xb9, 0xac, 0x8e, 0xb6, 0x6c, + 0x87, 0xa4, 0xde, 0xf6, 0x49, 0x5d, 0xa0, 0xaf, 0x6c, 0x8c, 0x54, 0x74, 0x06, 0xf8, 0x96, 0xc0, + 0xb6, 0xf0, 0x50, 0x49, 0xd3, 0x8b, 0x2a, 0x76, 0xf2, 0xe5, 0x0e, 0xb7, 0x64, 0x13, 0x9d, 0x60, + 0x26, 0xe8, 0xc1, 0x24, 0x66, 0x0b, 0x9e, 0xb1, 0xfd, 0xf3, 0x92, 0x78, 0xcd, 0x19, 0xaa, 0xaf, + 0xdf, 0x28, 0x10, 0xfa, 0x3e, 0x81, 0x3e, 0x6b, 0x4a, 0xa5, 0xa3, 0xa9, 0xf1, 0x03, 0x03, 0x31, + 0xb7, 0x3f, 0xc7, 0x4e, 0xc4, 0xb7, 0xdf, 0xc7, 0x57, 0xa1, 0xc3, 0x49, 0xf8, 0xac, 0xa1, 0x98, + 0x7e, 0x48, 0xa0, 0xdf, 0x19, 0x61, 0xe9, 0x58, 0x7a, 0x80, 0xe0, 0xd4, 0xcc, 0x1d, 0xc8, 0xb5, + 0x17, 0xe1, 0x1c, 0xf0, 0xe1, 0x54, 0x69, 0x25, 0x11, 0x8e, 0x33, 0x48, 0x1f, 0xb9, 0xf3, 0xb0, + 0x42, 0xee, 0x3e, 0xac, 0x90, 0x3f, 0x1e, 0x56, 0xc8, 0x47, 0x6b, 0x95, 0x9e, 0xbb, 0x6b, 0x95, + 0x9e, 0x5f, 0xd6, 0x2a, 0x3d, 0x6f, 0x0e, 0x3b, 0x86, 0xac, 0x71, 0x49, 0x50, 0x75, 0xd1, 0xfb, + 0xe5, 0x50, 0x34, 0xaf, 0x36, 0x65, 0x36, 0xd7, 0x6f, 0xff, 0x46, 0x7a, 0xf8, 0xff, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x02, 0x10, 0x70, 0xd8, 0x32, 0x1e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1758,6 +1758,7 @@ func (c *queryClient) DelegatorValidator(ctx context.Context, in *QueryDelegator return out, nil } +// Deprecated: Do not use. func (c *queryClient) HistoricalInfo(ctx context.Context, in *QueryHistoricalInfoRequest, opts ...grpc.CallOption) (*QueryHistoricalInfoResponse, error) { out := new(QueryHistoricalInfoResponse) err := c.cc.Invoke(ctx, "/cosmos.staking.v1beta1.Query/HistoricalInfo", in, out, opts...) @@ -3228,18 +3229,6 @@ func (m *QueryHistoricalInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, er _ = i var l int _ = l - if m.HistoricalRecord != nil { - { - size, err := m.HistoricalRecord.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } if m.Hist != nil { { size, err := m.Hist.MarshalToSizedBuffer(dAtA[:i]) @@ -3789,10 +3778,6 @@ func (m *QueryHistoricalInfoResponse) Size() (n int) { l = m.Hist.Size() n += 1 + l + sovQuery(uint64(l)) } - if m.HistoricalRecord != nil { - l = m.HistoricalRecord.Size() - n += 1 + l + sovQuery(uint64(l)) - } return n } @@ -6581,42 +6566,6 @@ func (m *QueryHistoricalInfoResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field HistoricalRecord", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.HistoricalRecord == nil { - m.HistoricalRecord = &HistoricalRecord{} - } - if err := m.HistoricalRecord.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 1f9adaed0b01..9db7ba75707d 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -166,70 +166,6 @@ func (m *HistoricalInfo) GetValset() []Validator { return nil } -// HistoricalRecord contains a set of minimum values needed for evaluating historical validator sets and blocks. -// It is stored as part of staking module's state, which persists the `n` most -// recent HistoricalInfo -// (`n` is set by the staking module's `historical_entries` parameter). -type HistoricalRecord struct { - Apphash []byte `protobuf:"bytes,1,opt,name=apphash,proto3" json:"apphash,omitempty"` - Time *time.Time `protobuf:"bytes,2,opt,name=time,proto3,stdtime" json:"time,omitempty"` - ValidatorsHash []byte `protobuf:"bytes,3,opt,name=validators_hash,json=validatorsHash,proto3" json:"validators_hash,omitempty"` -} - -func (m *HistoricalRecord) Reset() { *m = HistoricalRecord{} } -func (m *HistoricalRecord) String() string { return proto.CompactTextString(m) } -func (*HistoricalRecord) ProtoMessage() {} -func (*HistoricalRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{1} -} -func (m *HistoricalRecord) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *HistoricalRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_HistoricalRecord.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 *HistoricalRecord) XXX_Merge(src proto.Message) { - xxx_messageInfo_HistoricalRecord.Merge(m, src) -} -func (m *HistoricalRecord) XXX_Size() int { - return m.Size() -} -func (m *HistoricalRecord) XXX_DiscardUnknown() { - xxx_messageInfo_HistoricalRecord.DiscardUnknown(m) -} - -var xxx_messageInfo_HistoricalRecord proto.InternalMessageInfo - -func (m *HistoricalRecord) GetApphash() []byte { - if m != nil { - return m.Apphash - } - return nil -} - -func (m *HistoricalRecord) GetTime() *time.Time { - if m != nil { - return m.Time - } - return nil -} - -func (m *HistoricalRecord) GetValidatorsHash() []byte { - if m != nil { - return m.ValidatorsHash - } - return nil -} - // CommissionRates defines the initial commission rates to be used for creating // a validator. type CommissionRates struct { @@ -245,7 +181,7 @@ func (m *CommissionRates) Reset() { *m = CommissionRates{} } func (m *CommissionRates) String() string { return proto.CompactTextString(m) } func (*CommissionRates) ProtoMessage() {} func (*CommissionRates) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{2} + return fileDescriptor_64c30c6cf92913c9, []int{1} } func (m *CommissionRates) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -286,7 +222,7 @@ func (m *Commission) Reset() { *m = Commission{} } func (m *Commission) String() string { return proto.CompactTextString(m) } func (*Commission) ProtoMessage() {} func (*Commission) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{3} + return fileDescriptor_64c30c6cf92913c9, []int{2} } func (m *Commission) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -340,7 +276,7 @@ func (m *Description) Reset() { *m = Description{} } func (m *Description) String() string { return proto.CompactTextString(m) } func (*Description) ProtoMessage() {} func (*Description) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{4} + return fileDescriptor_64c30c6cf92913c9, []int{3} } func (m *Description) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -445,7 +381,7 @@ func (m *Validator) Reset() { *m = Validator{} } func (m *Validator) String() string { return proto.CompactTextString(m) } func (*Validator) ProtoMessage() {} func (*Validator) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{5} + return fileDescriptor_64c30c6cf92913c9, []int{4} } func (m *Validator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -483,7 +419,7 @@ func (m *ValAddresses) Reset() { *m = ValAddresses{} } func (m *ValAddresses) String() string { return proto.CompactTextString(m) } func (*ValAddresses) ProtoMessage() {} func (*ValAddresses) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{6} + return fileDescriptor_64c30c6cf92913c9, []int{5} } func (m *ValAddresses) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -531,7 +467,7 @@ func (m *DVPair) Reset() { *m = DVPair{} } func (m *DVPair) String() string { return proto.CompactTextString(m) } func (*DVPair) ProtoMessage() {} func (*DVPair) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{7} + return fileDescriptor_64c30c6cf92913c9, []int{6} } func (m *DVPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -569,7 +505,7 @@ func (m *DVPairs) Reset() { *m = DVPairs{} } func (m *DVPairs) String() string { return proto.CompactTextString(m) } func (*DVPairs) ProtoMessage() {} func (*DVPairs) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{8} + return fileDescriptor_64c30c6cf92913c9, []int{7} } func (m *DVPairs) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -619,7 +555,7 @@ func (m *DVVTriplet) Reset() { *m = DVVTriplet{} } func (m *DVVTriplet) String() string { return proto.CompactTextString(m) } func (*DVVTriplet) ProtoMessage() {} func (*DVVTriplet) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{9} + return fileDescriptor_64c30c6cf92913c9, []int{8} } func (m *DVVTriplet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -657,7 +593,7 @@ func (m *DVVTriplets) Reset() { *m = DVVTriplets{} } func (m *DVVTriplets) String() string { return proto.CompactTextString(m) } func (*DVVTriplets) ProtoMessage() {} func (*DVVTriplets) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{10} + return fileDescriptor_64c30c6cf92913c9, []int{9} } func (m *DVVTriplets) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -709,7 +645,7 @@ func (m *Delegation) Reset() { *m = Delegation{} } func (m *Delegation) String() string { return proto.CompactTextString(m) } func (*Delegation) ProtoMessage() {} func (*Delegation) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{11} + return fileDescriptor_64c30c6cf92913c9, []int{10} } func (m *Delegation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -753,7 +689,7 @@ func (m *UnbondingDelegation) Reset() { *m = UnbondingDelegation{} } func (m *UnbondingDelegation) String() string { return proto.CompactTextString(m) } func (*UnbondingDelegation) ProtoMessage() {} func (*UnbondingDelegation) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{12} + return fileDescriptor_64c30c6cf92913c9, []int{11} } func (m *UnbondingDelegation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -802,7 +738,7 @@ func (m *UnbondingDelegationEntry) Reset() { *m = UnbondingDelegationEnt func (m *UnbondingDelegationEntry) String() string { return proto.CompactTextString(m) } func (*UnbondingDelegationEntry) ProtoMessage() {} func (*UnbondingDelegationEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{13} + return fileDescriptor_64c30c6cf92913c9, []int{12} } func (m *UnbondingDelegationEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -879,7 +815,7 @@ func (m *RedelegationEntry) Reset() { *m = RedelegationEntry{} } func (m *RedelegationEntry) String() string { return proto.CompactTextString(m) } func (*RedelegationEntry) ProtoMessage() {} func (*RedelegationEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{14} + return fileDescriptor_64c30c6cf92913c9, []int{13} } func (m *RedelegationEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -953,7 +889,7 @@ func (m *Redelegation) Reset() { *m = Redelegation{} } func (m *Redelegation) String() string { return proto.CompactTextString(m) } func (*Redelegation) ProtoMessage() {} func (*Redelegation) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{15} + return fileDescriptor_64c30c6cf92913c9, []int{14} } func (m *Redelegation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1005,7 +941,7 @@ func (m *Params) Reset() { *m = Params{} } func (m *Params) String() string { return proto.CompactTextString(m) } func (*Params) ProtoMessage() {} func (*Params) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{16} + return fileDescriptor_64c30c6cf92913c9, []int{15} } func (m *Params) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1087,7 +1023,7 @@ func (m *DelegationResponse) Reset() { *m = DelegationResponse{} } func (m *DelegationResponse) String() string { return proto.CompactTextString(m) } func (*DelegationResponse) ProtoMessage() {} func (*DelegationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{17} + return fileDescriptor_64c30c6cf92913c9, []int{16} } func (m *DelegationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1142,7 +1078,7 @@ func (m *RedelegationEntryResponse) Reset() { *m = RedelegationEntryResp func (m *RedelegationEntryResponse) String() string { return proto.CompactTextString(m) } func (*RedelegationEntryResponse) ProtoMessage() {} func (*RedelegationEntryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{18} + return fileDescriptor_64c30c6cf92913c9, []int{17} } func (m *RedelegationEntryResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1190,7 +1126,7 @@ func (m *RedelegationResponse) Reset() { *m = RedelegationResponse{} } func (m *RedelegationResponse) String() string { return proto.CompactTextString(m) } func (*RedelegationResponse) ProtoMessage() {} func (*RedelegationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{19} + return fileDescriptor_64c30c6cf92913c9, []int{18} } func (m *RedelegationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1244,7 +1180,7 @@ func (m *Pool) Reset() { *m = Pool{} } func (m *Pool) String() string { return proto.CompactTextString(m) } func (*Pool) ProtoMessage() {} func (*Pool) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{20} + return fileDescriptor_64c30c6cf92913c9, []int{19} } func (m *Pool) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1285,7 +1221,7 @@ func (m *ValidatorUpdates) Reset() { *m = ValidatorUpdates{} } func (m *ValidatorUpdates) String() string { return proto.CompactTextString(m) } func (*ValidatorUpdates) ProtoMessage() {} func (*ValidatorUpdates) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{21} + return fileDescriptor_64c30c6cf92913c9, []int{20} } func (m *ValidatorUpdates) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1339,7 +1275,7 @@ func (m *ConsPubKeyRotationHistory) Reset() { *m = ConsPubKeyRotationHis func (m *ConsPubKeyRotationHistory) String() string { return proto.CompactTextString(m) } func (*ConsPubKeyRotationHistory) ProtoMessage() {} func (*ConsPubKeyRotationHistory) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{22} + return fileDescriptor_64c30c6cf92913c9, []int{21} } func (m *ConsPubKeyRotationHistory) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1378,7 +1314,7 @@ func (m *ValAddrsOfRotatedConsKeys) Reset() { *m = ValAddrsOfRotatedCons func (m *ValAddrsOfRotatedConsKeys) String() string { return proto.CompactTextString(m) } func (*ValAddrsOfRotatedConsKeys) ProtoMessage() {} func (*ValAddrsOfRotatedConsKeys) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{23} + return fileDescriptor_64c30c6cf92913c9, []int{22} } func (m *ValAddrsOfRotatedConsKeys) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1418,7 +1354,6 @@ func init() { proto.RegisterEnum("cosmos.staking.v1beta1.BondStatus", BondStatus_name, BondStatus_value) proto.RegisterEnum("cosmos.staking.v1beta1.Infraction", Infraction_name, Infraction_value) proto.RegisterType((*HistoricalInfo)(nil), "cosmos.staking.v1beta1.HistoricalInfo") - proto.RegisterType((*HistoricalRecord)(nil), "cosmos.staking.v1beta1.HistoricalRecord") proto.RegisterType((*CommissionRates)(nil), "cosmos.staking.v1beta1.CommissionRates") proto.RegisterType((*Commission)(nil), "cosmos.staking.v1beta1.Commission") proto.RegisterType((*Description)(nil), "cosmos.staking.v1beta1.Description") @@ -1448,140 +1383,136 @@ func init() { } var fileDescriptor_64c30c6cf92913c9 = []byte{ - // 2113 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4b, 0x6c, 0x1b, 0xc7, - 0xf9, 0xd7, 0x92, 0x34, 0x25, 0x7d, 0xa4, 0x44, 0x6a, 0xfc, 0xa2, 0xe8, 0x58, 0x94, 0x19, 0xff, - 0xff, 0xb1, 0xdd, 0x8a, 0x8a, 0xdc, 0xc0, 0x05, 0x84, 0x20, 0x85, 0x29, 0xd2, 0x31, 0xf3, 0x90, - 0xd4, 0xa5, 0xa4, 0x3e, 0xd0, 0x66, 0x31, 0xdc, 0x1d, 0x92, 0x5b, 0x91, 0xb3, 0xec, 0xce, 0x50, - 0x36, 0xef, 0x3d, 0x04, 0x0e, 0x0a, 0xe4, 0x54, 0x04, 0x28, 0x8c, 0x1a, 0xe8, 0x25, 0xbd, 0xe5, - 0x60, 0xf4, 0xde, 0x5b, 0x5a, 0xa0, 0x80, 0xe1, 0x53, 0x11, 0xa0, 0x6e, 0x61, 0x1f, 0x1c, 0xb4, - 0x97, 0xa2, 0xa7, 0x1e, 0x8b, 0x99, 0x9d, 0x7d, 0x50, 0x14, 0xad, 0x87, 0x83, 0x22, 0x68, 0x2f, - 0x02, 0x67, 0xe6, 0xfb, 0x7e, 0xfb, 0xbd, 0x67, 0xbe, 0x4f, 0x70, 0xd9, 0x74, 0x58, 0xd7, 0x61, - 0xcb, 0x8c, 0xe3, 0x5d, 0x9b, 0xb6, 0x96, 0xf7, 0x56, 0x1a, 0x84, 0xe3, 0x15, 0x7f, 0x5d, 0xea, - 0xb9, 0x0e, 0x77, 0xd0, 0x39, 0x8f, 0xaa, 0xe4, 0xef, 0x2a, 0xaa, 0xfc, 0x99, 0x96, 0xd3, 0x72, - 0x24, 0xc9, 0xb2, 0xf8, 0xe5, 0x51, 0xe7, 0xe7, 0x5b, 0x8e, 0xd3, 0xea, 0x90, 0x65, 0xb9, 0x6a, - 0xf4, 0x9b, 0xcb, 0x98, 0x0e, 0xd4, 0xd1, 0xc2, 0xfe, 0x23, 0xab, 0xef, 0x62, 0x6e, 0x3b, 0x54, - 0x9d, 0x17, 0xf6, 0x9f, 0x73, 0xbb, 0x4b, 0x18, 0xc7, 0xdd, 0x9e, 0x8f, 0xed, 0x49, 0x62, 0x78, - 0x1f, 0x55, 0x62, 0x29, 0x6c, 0xa5, 0x4a, 0x03, 0x33, 0x12, 0xe8, 0x61, 0x3a, 0xb6, 0x8f, 0x3d, - 0x87, 0xbb, 0x36, 0x75, 0x96, 0xe5, 0x5f, 0xb5, 0x75, 0xd1, 0x74, 0xba, 0x84, 0x37, 0x9a, 0x7c, - 0x99, 0x0f, 0x7a, 0x84, 0x2d, 0xef, 0xad, 0x78, 0x3f, 0xd4, 0xf1, 0x2b, 0xc1, 0x31, 0x6e, 0x98, - 0xf6, 0xbe, 0xd3, 0xe2, 0x27, 0x1a, 0xcc, 0xde, 0xb6, 0x19, 0x77, 0x5c, 0xdb, 0xc4, 0x9d, 0x1a, - 0x6d, 0x3a, 0xe8, 0x4d, 0x48, 0xb6, 0x09, 0xb6, 0x88, 0x9b, 0xd3, 0x16, 0xb5, 0x2b, 0xa9, 0xeb, - 0xf3, 0x25, 0x1f, 0xa1, 0xe4, 0x71, 0xee, 0xad, 0x94, 0x6e, 0x4b, 0x82, 0xf2, 0xf4, 0xe7, 0x4f, - 0x0a, 0x13, 0x9f, 0x3e, 0xff, 0xec, 0x9a, 0xa6, 0x2b, 0x1e, 0x54, 0x81, 0xe4, 0x1e, 0xee, 0x30, - 0xc2, 0x73, 0xb1, 0xc5, 0xf8, 0x95, 0xd4, 0xf5, 0x4b, 0xa5, 0x83, 0xcd, 0x5e, 0xda, 0xc1, 0x1d, - 0xdb, 0xc2, 0xdc, 0x19, 0x46, 0xf1, 0x78, 0x57, 0x63, 0x39, 0xad, 0xf8, 0x91, 0x06, 0xd9, 0x50, - 0x34, 0x9d, 0x98, 0x8e, 0x6b, 0xa1, 0x1c, 0x4c, 0xe2, 0x5e, 0xaf, 0x8d, 0x59, 0x5b, 0x4a, 0x97, - 0xd6, 0xfd, 0x25, 0x7a, 0x03, 0x12, 0xc2, 0xce, 0xb9, 0x98, 0x14, 0x3a, 0x5f, 0xf2, 0x9c, 0x50, - 0xf2, 0x9d, 0x50, 0xda, 0xf2, 0x9d, 0x50, 0x4e, 0x7c, 0xfc, 0x97, 0x82, 0xa6, 0x4b, 0x6a, 0xf4, - 0x1a, 0x64, 0xf6, 0x7c, 0x41, 0x98, 0x21, 0x71, 0xe3, 0x12, 0x77, 0x36, 0xdc, 0xbe, 0x8d, 0x59, - 0xbb, 0xf8, 0x8b, 0x18, 0x64, 0xd6, 0x9c, 0x6e, 0xd7, 0x66, 0xcc, 0x76, 0xa8, 0x8e, 0x39, 0x61, - 0xe8, 0x1d, 0x48, 0xb8, 0x98, 0x13, 0x29, 0xc9, 0x74, 0xf9, 0x86, 0x50, 0xe3, 0x8b, 0x27, 0x85, - 0x0b, 0x9e, 0xc2, 0xcc, 0xda, 0x2d, 0xd9, 0xce, 0x72, 0x17, 0xf3, 0x76, 0xe9, 0x3d, 0xd2, 0xc2, - 0xe6, 0xa0, 0x42, 0xcc, 0xc7, 0x0f, 0x97, 0x40, 0xd9, 0xa3, 0x42, 0x4c, 0x4f, 0x67, 0x89, 0x81, - 0xbe, 0x0b, 0x53, 0x5d, 0x7c, 0xd7, 0x90, 0x78, 0xb1, 0x97, 0xc2, 0x9b, 0xec, 0xe2, 0xbb, 0x42, - 0x3e, 0xf4, 0x01, 0x64, 0x04, 0xa4, 0xd9, 0xc6, 0xb4, 0x45, 0x3c, 0xe4, 0xf8, 0x4b, 0x21, 0xcf, - 0x74, 0xf1, 0xdd, 0x35, 0x89, 0x26, 0xf0, 0x57, 0x13, 0x5f, 0x3e, 0x28, 0x68, 0xc5, 0xdf, 0x69, - 0x00, 0xa1, 0x61, 0x10, 0x86, 0xac, 0x19, 0xac, 0xe4, 0x47, 0x99, 0x8a, 0xa3, 0xd7, 0xc6, 0x45, - 0xc2, 0x3e, 0xb3, 0x96, 0x67, 0x84, 0x78, 0x8f, 0x9e, 0x14, 0x34, 0xef, 0xab, 0x19, 0x73, 0xc4, - 0xec, 0xa9, 0x7e, 0xcf, 0xc2, 0x9c, 0x18, 0x47, 0x74, 0xb8, 0x04, 0x14, 0x4e, 0xf7, 0x00, 0xc1, - 0xe3, 0x16, 0xe7, 0x4a, 0x87, 0x4f, 0x35, 0x48, 0x55, 0x08, 0x33, 0x5d, 0xbb, 0x27, 0xf2, 0x58, - 0x44, 0x59, 0xd7, 0xa1, 0xf6, 0xae, 0xca, 0x81, 0x69, 0xdd, 0x5f, 0xa2, 0x3c, 0x4c, 0xd9, 0x16, - 0xa1, 0xdc, 0xe6, 0x03, 0xcf, 0x4d, 0x7a, 0xb0, 0x16, 0x5c, 0x77, 0x48, 0x83, 0xd9, 0xbe, 0x9d, - 0x75, 0x7f, 0x89, 0xae, 0x42, 0x96, 0x11, 0xb3, 0xef, 0xda, 0x7c, 0x60, 0x98, 0x0e, 0xe5, 0xd8, - 0xe4, 0xb9, 0x84, 0x24, 0xc9, 0xf8, 0xfb, 0x6b, 0xde, 0xb6, 0x00, 0xb1, 0x08, 0xc7, 0x76, 0x87, - 0xe5, 0x4e, 0x79, 0x20, 0x6a, 0xa9, 0x44, 0xbd, 0x3f, 0x09, 0xd3, 0x41, 0xea, 0xa0, 0x35, 0xc8, - 0x3a, 0x3d, 0xe2, 0x8a, 0xdf, 0x06, 0xb6, 0x2c, 0x97, 0x30, 0xa6, 0xa2, 0x31, 0xf7, 0xf8, 0xe1, - 0xd2, 0x19, 0x65, 0xf0, 0x9b, 0xde, 0x49, 0x9d, 0xbb, 0x36, 0x6d, 0xe9, 0x19, 0x9f, 0x43, 0x6d, - 0xa3, 0x1f, 0x08, 0x97, 0x51, 0x46, 0x28, 0xeb, 0x33, 0xa3, 0xd7, 0x6f, 0xec, 0x92, 0x81, 0x32, - 0xea, 0x99, 0x11, 0xa3, 0xde, 0xa4, 0x83, 0x72, 0xee, 0x0f, 0x21, 0xb4, 0xe9, 0x0e, 0x7a, 0xdc, - 0x29, 0x6d, 0xf6, 0x1b, 0xef, 0x92, 0x81, 0x70, 0x95, 0xc2, 0xd9, 0x94, 0x30, 0xe8, 0x1c, 0x24, - 0x7f, 0x82, 0xed, 0x0e, 0xb1, 0xa4, 0x45, 0xa6, 0x74, 0xb5, 0x42, 0xab, 0x90, 0x64, 0x1c, 0xf3, - 0x3e, 0x93, 0x66, 0x98, 0xbd, 0x5e, 0x1c, 0x17, 0x1b, 0x65, 0x87, 0x5a, 0x75, 0x49, 0xa9, 0x2b, - 0x0e, 0xb4, 0x06, 0x49, 0xee, 0xec, 0x12, 0xaa, 0x0c, 0x54, 0xfe, 0x86, 0x8a, 0xe6, 0xb3, 0xa3, - 0xd1, 0x5c, 0xa3, 0x3c, 0x12, 0xc7, 0x35, 0xca, 0x75, 0xc5, 0x8a, 0x7e, 0x04, 0x59, 0x8b, 0x74, - 0x48, 0x4b, 0x5a, 0x8e, 0xb5, 0xb1, 0x4b, 0x58, 0x2e, 0x29, 0xe1, 0x56, 0x8e, 0x9d, 0x1c, 0x7a, - 0x26, 0x80, 0xaa, 0x4b, 0x24, 0xb4, 0x09, 0x29, 0x2b, 0x0c, 0xa7, 0xdc, 0xa4, 0x34, 0xe6, 0xab, - 0xe3, 0x74, 0x8c, 0x44, 0x5e, 0xb4, 0x16, 0x46, 0x21, 0x44, 0x04, 0xf5, 0x69, 0xc3, 0xa1, 0x96, - 0x4d, 0x5b, 0x46, 0x9b, 0xd8, 0xad, 0x36, 0xcf, 0x4d, 0x2d, 0x6a, 0x57, 0xe2, 0x7a, 0x26, 0xd8, - 0xbf, 0x2d, 0xb7, 0xd1, 0x26, 0xcc, 0x86, 0xa4, 0x32, 0x43, 0xa6, 0x8f, 0x9b, 0x21, 0x33, 0x01, - 0x80, 0x20, 0x41, 0xef, 0x03, 0x84, 0x39, 0x98, 0x03, 0x89, 0x56, 0x3c, 0x3c, 0x9b, 0xa3, 0xca, - 0x44, 0x00, 0x10, 0x85, 0xd3, 0x5d, 0x9b, 0x1a, 0x8c, 0x74, 0x9a, 0x86, 0xb2, 0x9c, 0xc0, 0x4d, - 0x49, 0xf3, 0xbf, 0x75, 0x0c, 0x6f, 0x7e, 0xf1, 0x70, 0x29, 0xe3, 0xad, 0x96, 0x98, 0xb5, 0xbb, - 0xf8, 0x7a, 0xe9, 0x8d, 0x6f, 0xeb, 0x73, 0x5d, 0x9b, 0xd6, 0x49, 0xa7, 0x59, 0x09, 0x80, 0xd1, - 0x9b, 0x70, 0x21, 0x34, 0x88, 0x43, 0x8d, 0xb6, 0xd3, 0xb1, 0x0c, 0x97, 0x34, 0x0d, 0xd3, 0xe9, - 0x53, 0x9e, 0x4b, 0x4b, 0x33, 0x9e, 0x0f, 0x48, 0x36, 0xe8, 0x6d, 0xa7, 0x63, 0xe9, 0xa4, 0xb9, - 0x26, 0x8e, 0xd1, 0xab, 0x10, 0x5a, 0xc3, 0xb0, 0x2d, 0x96, 0x9b, 0x59, 0x8c, 0x5f, 0x49, 0xe8, - 0xe9, 0x60, 0xb3, 0x66, 0xb1, 0xd5, 0xa9, 0x0f, 0x1f, 0x14, 0x26, 0xbe, 0x7c, 0x50, 0x98, 0x28, - 0xde, 0x82, 0xf4, 0x0e, 0xee, 0xa8, 0xd4, 0x22, 0x0c, 0xdd, 0x80, 0x69, 0xec, 0x2f, 0x72, 0xda, - 0x62, 0xfc, 0x85, 0xa9, 0x19, 0x92, 0x16, 0x7f, 0xa3, 0x41, 0xb2, 0xb2, 0xb3, 0x89, 0x6d, 0x17, - 0x55, 0x61, 0x2e, 0x8c, 0xd5, 0xa3, 0x66, 0x79, 0x18, 0xde, 0x7e, 0x9a, 0xaf, 0xc3, 0x5c, 0x70, - 0xa7, 0x05, 0x30, 0xde, 0x55, 0x73, 0xe9, 0xf1, 0xc3, 0xa5, 0x8b, 0x0a, 0x26, 0x28, 0x2e, 0xfb, - 0xf0, 0xf6, 0xf6, 0xed, 0x47, 0x74, 0x7e, 0x07, 0x26, 0x3d, 0x51, 0x19, 0xfa, 0x0e, 0x9c, 0xea, - 0x89, 0x1f, 0x52, 0xd5, 0xd4, 0xf5, 0x85, 0xb1, 0x31, 0x2f, 0xe9, 0xa3, 0x11, 0xe2, 0xf1, 0x15, - 0x3f, 0x8a, 0x01, 0x54, 0x76, 0x76, 0xb6, 0x5c, 0xbb, 0xd7, 0x21, 0xfc, 0xab, 0xd2, 0x7d, 0x1b, - 0xce, 0x86, 0xba, 0x33, 0xd7, 0x3c, 0xbe, 0xfe, 0xa7, 0x03, 0xfe, 0xba, 0x6b, 0x1e, 0x08, 0x6b, - 0x31, 0x1e, 0xc0, 0xc6, 0x8f, 0x0f, 0x5b, 0x61, 0x7c, 0xd4, 0xb2, 0xdf, 0x87, 0x54, 0x68, 0x0c, - 0x86, 0x6a, 0x30, 0xc5, 0xd5, 0x6f, 0x65, 0xe0, 0xe2, 0x78, 0x03, 0xfb, 0x6c, 0x51, 0x23, 0x07, - 0xec, 0xc5, 0x7f, 0x69, 0x00, 0x91, 0x1c, 0xf9, 0x7a, 0xc6, 0x18, 0xaa, 0x41, 0x52, 0x15, 0xe7, - 0xf8, 0x49, 0x8b, 0xb3, 0x02, 0x88, 0x18, 0xf5, 0xe7, 0x31, 0x38, 0xbd, 0xed, 0x67, 0xef, 0xd7, - 0xdf, 0x06, 0xdb, 0x30, 0x49, 0x28, 0x77, 0x6d, 0x69, 0x04, 0xe1, 0xf3, 0xd7, 0xc7, 0xf9, 0xfc, - 0x00, 0xa5, 0xaa, 0x94, 0xbb, 0x83, 0x68, 0x04, 0xf8, 0x58, 0x11, 0x7b, 0xfc, 0x32, 0x0e, 0xb9, - 0x71, 0xac, 0xe2, 0x81, 0x6c, 0xba, 0x44, 0x6e, 0xf8, 0xf7, 0x8e, 0x26, 0x0b, 0xe6, 0xac, 0xbf, - 0xad, 0xae, 0x1d, 0x1d, 0xc4, 0x43, 0x4d, 0x04, 0x97, 0x20, 0x3d, 0xd9, 0xcb, 0x6c, 0x36, 0x44, - 0x90, 0x17, 0xcf, 0x16, 0x64, 0x6c, 0x6a, 0x73, 0x1b, 0x77, 0x8c, 0x06, 0xee, 0x60, 0x6a, 0xfa, - 0x2f, 0xd8, 0x63, 0xdd, 0xf9, 0xb3, 0x0a, 0xa3, 0xec, 0x41, 0xa0, 0x2a, 0x4c, 0xfa, 0x68, 0x89, - 0xe3, 0xa3, 0xf9, 0xbc, 0xe8, 0x12, 0xa4, 0xa3, 0x17, 0x83, 0x7c, 0x8d, 0x24, 0xf4, 0x54, 0xe4, - 0x5e, 0x38, 0xec, 0xe6, 0x49, 0xbe, 0xf0, 0xe6, 0x51, 0x0f, 0xbe, 0x5f, 0xc5, 0x61, 0x4e, 0x27, - 0xd6, 0x7f, 0xbf, 0x5b, 0x36, 0x01, 0xbc, 0x54, 0x15, 0x95, 0x54, 0x79, 0xe6, 0x04, 0xf9, 0x3e, - 0xed, 0x81, 0x54, 0x18, 0xff, 0x4f, 0x79, 0xe8, 0xcf, 0x31, 0x48, 0x47, 0x3d, 0xf4, 0x3f, 0x79, - 0x69, 0xa1, 0xf5, 0xb0, 0x4c, 0x25, 0x64, 0x99, 0xba, 0x3a, 0xae, 0x4c, 0x8d, 0x44, 0xf3, 0x21, - 0xf5, 0xe9, 0x79, 0x1c, 0x92, 0x9b, 0xd8, 0xc5, 0x5d, 0x86, 0x36, 0x46, 0xde, 0xb6, 0xfe, 0x8c, - 0x62, 0x7f, 0x30, 0x57, 0xd4, 0x4c, 0xc6, 0x8b, 0xe5, 0x4f, 0xc6, 0x3d, 0x6d, 0xff, 0x0f, 0x66, - 0x45, 0x8f, 0x1c, 0x36, 0xfb, 0xd2, 0xb8, 0x33, 0xb2, 0xd5, 0x0d, 0xb4, 0x67, 0xa8, 0x00, 0x29, - 0x41, 0x16, 0xd6, 0x61, 0x41, 0x03, 0x5d, 0x7c, 0xb7, 0xea, 0xed, 0xa0, 0x25, 0x40, 0xed, 0x60, - 0x56, 0x61, 0x84, 0x86, 0x10, 0x74, 0x73, 0xe1, 0x89, 0x4f, 0x7e, 0x11, 0x40, 0x48, 0x61, 0x58, - 0x84, 0x3a, 0x5d, 0xd5, 0xe8, 0x4d, 0x8b, 0x9d, 0x8a, 0xd8, 0x40, 0x3f, 0xd3, 0xbc, 0x27, 0xf2, - 0xbe, 0x4e, 0x5a, 0x75, 0x28, 0x5b, 0x47, 0x48, 0x8a, 0x7f, 0x3e, 0x29, 0xe4, 0x07, 0xb8, 0xdb, - 0x59, 0x2d, 0x1e, 0x80, 0x53, 0x3c, 0xa8, 0xb9, 0x17, 0x0f, 0xe7, 0xe1, 0x4e, 0x1c, 0xd5, 0x20, - 0xbb, 0x4b, 0x06, 0x86, 0xeb, 0x70, 0xaf, 0xd0, 0x34, 0x09, 0x51, 0xbd, 0xcc, 0xbc, 0xef, 0xdb, - 0x06, 0x66, 0x24, 0xf2, 0xf4, 0xb7, 0x69, 0x39, 0x21, 0xa4, 0xd3, 0x67, 0x77, 0xc9, 0x40, 0x57, - 0x7c, 0xb7, 0x08, 0x59, 0xbd, 0x2c, 0x32, 0xe5, 0xde, 0xf3, 0xcf, 0xae, 0x5d, 0x08, 0x1f, 0xec, - 0xcb, 0x77, 0x83, 0x89, 0x9d, 0xe7, 0x5e, 0xf1, 0xe8, 0x45, 0xe1, 0x05, 0xa4, 0x13, 0xd6, 0x13, - 0xfd, 0xa4, 0xe8, 0x3f, 0x22, 0x7d, 0x82, 0xf6, 0xe2, 0xfe, 0x23, 0xe4, 0x1f, 0xea, 0x3f, 0x22, - 0xe9, 0xf9, 0x56, 0x58, 0xff, 0x63, 0x87, 0x69, 0x13, 0x8d, 0x4c, 0xc5, 0x24, 0xb3, 0x7e, 0xa2, - 0xf8, 0x47, 0x0d, 0xe6, 0x47, 0x22, 0x39, 0x10, 0xd9, 0x04, 0xe4, 0x46, 0x0e, 0x65, 0x44, 0x0c, - 0x94, 0xe8, 0x27, 0x4b, 0x8c, 0x39, 0x77, 0xe4, 0x12, 0xf8, 0x6a, 0x2e, 0x32, 0x55, 0xc5, 0x7e, - 0xaf, 0xc1, 0x99, 0xa8, 0x00, 0x81, 0x2a, 0x75, 0x48, 0x47, 0x3f, 0xad, 0x94, 0xb8, 0x7c, 0x14, - 0x25, 0xa2, 0xf2, 0x0f, 0x81, 0xa0, 0x9d, 0xb0, 0x5a, 0x78, 0x73, 0xc2, 0x95, 0x23, 0x1b, 0xc5, - 0x17, 0xec, 0xc0, 0xaa, 0xe1, 0xf9, 0xe6, 0xef, 0x1a, 0x24, 0x36, 0x1d, 0xa7, 0x83, 0x7e, 0x0a, - 0x73, 0xd4, 0xe1, 0x86, 0xc8, 0x2c, 0x62, 0x19, 0x6a, 0x6c, 0xe0, 0x55, 0xe2, 0xea, 0x0b, 0x6d, - 0xf5, 0xb7, 0x27, 0x85, 0x51, 0xce, 0x61, 0x03, 0xaa, 0xe9, 0x14, 0x75, 0x78, 0x59, 0x12, 0x6d, - 0x79, 0x93, 0x85, 0x26, 0xcc, 0x0c, 0x7f, 0xce, 0xab, 0xd6, 0x37, 0x0f, 0xfb, 0xdc, 0xcc, 0xa1, - 0x9f, 0x4a, 0x37, 0x22, 0xdf, 0x59, 0x9d, 0x12, 0x5e, 0xfb, 0x87, 0xf0, 0xdc, 0x07, 0x90, 0x0d, - 0x4a, 0xd5, 0xb6, 0x1c, 0x6d, 0x31, 0x74, 0x0b, 0x26, 0xbd, 0x29, 0x97, 0xdf, 0x28, 0x5c, 0x0a, - 0xa7, 0xb8, 0xb8, 0x61, 0xda, 0xa5, 0xbd, 0xc8, 0x04, 0xd6, 0x63, 0x1a, 0xb2, 0xa7, 0x62, 0x96, - 0x83, 0xd8, 0x47, 0x31, 0x98, 0x5f, 0x73, 0x28, 0x53, 0x43, 0x1e, 0x95, 0xd5, 0xde, 0x68, 0x76, - 0x80, 0xae, 0x8e, 0x19, 0x41, 0xa5, 0x47, 0x07, 0x4d, 0x3b, 0x90, 0x11, 0xd7, 0xab, 0xe9, 0xd0, - 0x97, 0x9c, 0x33, 0xcd, 0x38, 0x1d, 0x4b, 0x49, 0xb4, 0x4b, 0x06, 0x02, 0x97, 0x92, 0x3b, 0x43, - 0xb8, 0xf1, 0x93, 0xe1, 0x52, 0x72, 0x27, 0x82, 0x7b, 0x0e, 0x92, 0xea, 0x6d, 0x95, 0x90, 0x2f, - 0x07, 0xb5, 0x42, 0x37, 0x20, 0x2e, 0x4a, 0xe1, 0xa9, 0x63, 0x14, 0x0f, 0xc1, 0x10, 0xb9, 0xd2, - 0xea, 0x30, 0xaf, 0xa6, 0x04, 0x6c, 0xa3, 0x29, 0x2d, 0x4a, 0xa4, 0x42, 0xef, 0x92, 0xc1, 0x01, - 0x23, 0x83, 0xf4, 0x91, 0x46, 0x06, 0xd7, 0x7e, 0xab, 0x01, 0x84, 0xf3, 0x32, 0xf4, 0x4d, 0x38, - 0x5f, 0xde, 0x58, 0xaf, 0x18, 0xf5, 0xad, 0x9b, 0x5b, 0xdb, 0x75, 0x63, 0x7b, 0xbd, 0xbe, 0x59, - 0x5d, 0xab, 0xdd, 0xaa, 0x55, 0x2b, 0xd9, 0x89, 0x7c, 0xe6, 0xde, 0xfd, 0xc5, 0xd4, 0x36, 0x65, - 0x3d, 0x62, 0xda, 0x4d, 0x9b, 0x58, 0xe8, 0xff, 0xe1, 0xcc, 0x30, 0xb5, 0x58, 0x55, 0x2b, 0x59, - 0x2d, 0x9f, 0xbe, 0x77, 0x7f, 0x71, 0xca, 0xeb, 0x0f, 0x88, 0x85, 0xae, 0xc0, 0xd9, 0x51, 0xba, - 0xda, 0xfa, 0xdb, 0xd9, 0x58, 0x7e, 0xe6, 0xde, 0xfd, 0xc5, 0xe9, 0xa0, 0x91, 0x40, 0x45, 0x40, - 0x51, 0x4a, 0x85, 0x17, 0xcf, 0xc3, 0xbd, 0xfb, 0x8b, 0x49, 0x2f, 0x65, 0xf2, 0x89, 0x0f, 0x7f, - 0xbd, 0x30, 0x71, 0xed, 0xc7, 0x00, 0x35, 0xda, 0x74, 0xb1, 0x29, 0x4b, 0x43, 0x1e, 0xce, 0xd5, - 0xd6, 0x6f, 0xe9, 0x37, 0xd7, 0xb6, 0x6a, 0x1b, 0xeb, 0xc3, 0x62, 0xef, 0x3b, 0xab, 0x6c, 0x6c, - 0x97, 0xdf, 0xab, 0x1a, 0xf5, 0xda, 0xdb, 0xeb, 0x59, 0x0d, 0x9d, 0x87, 0xd3, 0x43, 0x67, 0xdf, - 0x5b, 0xdf, 0xaa, 0xbd, 0x5f, 0xcd, 0xc6, 0xca, 0x37, 0x3e, 0x7f, 0xba, 0xa0, 0x3d, 0x7a, 0xba, - 0xa0, 0xfd, 0xf5, 0xe9, 0x82, 0xf6, 0xf1, 0xb3, 0x85, 0x89, 0x47, 0xcf, 0x16, 0x26, 0xfe, 0xf4, - 0x6c, 0x61, 0xe2, 0x87, 0xaf, 0x0c, 0x25, 0x63, 0x78, 0x1d, 0xc9, 0xff, 0x73, 0x34, 0x92, 0x32, - 0x6a, 0xbe, 0xf5, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x32, 0xa6, 0xd0, 0x99, 0x5f, 0x1a, 0x00, - 0x00, + // 2060 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4d, 0x6c, 0x1b, 0xc7, + 0x15, 0xd6, 0x92, 0x34, 0x25, 0x3d, 0x4a, 0x22, 0x35, 0xfe, 0xa3, 0xe8, 0x58, 0x92, 0x19, 0xb7, + 0xb1, 0xdd, 0x8a, 0x8a, 0xdc, 0xc2, 0x05, 0x84, 0x20, 0x85, 0x29, 0xd2, 0x31, 0xf3, 0x23, 0xa9, + 0x4b, 0x49, 0xfd, 0x41, 0x9b, 0xc5, 0x70, 0x77, 0x48, 0x6d, 0x45, 0xce, 0xb2, 0x3b, 0x43, 0xd9, + 0xbc, 0xf7, 0x10, 0xb8, 0x28, 0x90, 0x53, 0x11, 0xa0, 0x30, 0x6a, 0xa0, 0x97, 0xf4, 0x96, 0x83, + 0xd1, 0x7b, 0x6f, 0x69, 0x81, 0x02, 0x86, 0x4f, 0x45, 0x80, 0xba, 0x85, 0x7d, 0x70, 0xd0, 0x5e, + 0x8a, 0x9e, 0x7a, 0x2c, 0xe6, 0x67, 0x7f, 0x28, 0x8a, 0x96, 0x65, 0x07, 0x45, 0xd0, 0x5c, 0x04, + 0xce, 0xcc, 0x7b, 0xdf, 0xbe, 0xf7, 0xcd, 0x7b, 0x6f, 0x66, 0x9e, 0xe0, 0xa2, 0xed, 0xb1, 0x8e, + 0xc7, 0x96, 0x19, 0xc7, 0x7b, 0x2e, 0x6d, 0x2d, 0xef, 0xaf, 0x34, 0x08, 0xc7, 0x2b, 0xc1, 0xb8, + 0xd4, 0xf5, 0x3d, 0xee, 0xa1, 0x33, 0x4a, 0xaa, 0x14, 0xcc, 0x6a, 0xa9, 0xc2, 0xa9, 0x96, 0xd7, + 0xf2, 0xa4, 0xc8, 0xb2, 0xf8, 0xa5, 0xa4, 0x0b, 0x73, 0x2d, 0xcf, 0x6b, 0xb5, 0xc9, 0xb2, 0x1c, + 0x35, 0x7a, 0xcd, 0x65, 0x4c, 0xfb, 0x7a, 0x69, 0xfe, 0xe0, 0x92, 0xd3, 0xf3, 0x31, 0x77, 0x3d, + 0xaa, 0xd7, 0x17, 0x0e, 0xae, 0x73, 0xb7, 0x43, 0x18, 0xc7, 0x9d, 0x6e, 0x80, 0xad, 0x2c, 0xb1, + 0xd4, 0x47, 0xb5, 0x59, 0x1a, 0x5b, 0xbb, 0xd2, 0xc0, 0x8c, 0x84, 0x7e, 0xd8, 0x9e, 0x1b, 0x60, + 0xcf, 0xe2, 0x8e, 0x4b, 0xbd, 0x65, 0xf9, 0x57, 0x4f, 0x9d, 0xb7, 0xbd, 0x0e, 0xe1, 0x8d, 0x26, + 0x5f, 0xe6, 0xfd, 0x2e, 0x61, 0xcb, 0xfb, 0x2b, 0xea, 0x87, 0x5e, 0x7e, 0x25, 0x5c, 0xc6, 0x0d, + 0xdb, 0x3d, 0xb0, 0x5a, 0xfc, 0xc8, 0x80, 0x99, 0x9b, 0x2e, 0xe3, 0x9e, 0xef, 0xda, 0xb8, 0x5d, + 0xa3, 0x4d, 0x0f, 0xbd, 0x01, 0xe9, 0x5d, 0x82, 0x1d, 0xe2, 0xe7, 0x8d, 0x45, 0xe3, 0x52, 0xe6, + 0xea, 0x5c, 0x29, 0x40, 0x28, 0x29, 0xcd, 0xfd, 0x95, 0xd2, 0x4d, 0x29, 0x50, 0x9e, 0xfc, 0xf4, + 0xd1, 0xc2, 0xd8, 0xc7, 0x4f, 0x3f, 0xb9, 0x62, 0x98, 0x5a, 0x07, 0x55, 0x20, 0xbd, 0x8f, 0xdb, + 0x8c, 0xf0, 0x7c, 0x62, 0x31, 0x79, 0x29, 0x73, 0xf5, 0x42, 0xe9, 0x70, 0xda, 0x4b, 0x3b, 0xb8, + 0xed, 0x3a, 0x98, 0x7b, 0x83, 0x28, 0x4a, 0x77, 0x35, 0x91, 0x37, 0x8a, 0xbf, 0x4a, 0x40, 0x76, + 0xcd, 0xeb, 0x74, 0x5c, 0xc6, 0x5c, 0x8f, 0x9a, 0x98, 0x13, 0x86, 0xde, 0x86, 0x94, 0x8f, 0x39, + 0x91, 0x96, 0x4d, 0x96, 0xaf, 0x09, 0xc5, 0xcf, 0x1e, 0x2d, 0x9c, 0x53, 0x9f, 0x60, 0xce, 0x5e, + 0xc9, 0xf5, 0x96, 0x3b, 0x98, 0xef, 0x96, 0xde, 0x25, 0x2d, 0x6c, 0xf7, 0x2b, 0xc4, 0x7e, 0x78, + 0x7f, 0x09, 0xb4, 0x05, 0x15, 0x62, 0xab, 0xaf, 0x48, 0x0c, 0xf4, 0x3d, 0x98, 0xe8, 0xe0, 0xdb, + 0x96, 0xc4, 0x4b, 0xbc, 0x14, 0xde, 0x78, 0x07, 0xdf, 0x16, 0xf6, 0xa1, 0xf7, 0x21, 0x2b, 0x20, + 0xed, 0x5d, 0x4c, 0x5b, 0x44, 0x21, 0x27, 0x5f, 0x0a, 0x79, 0xba, 0x83, 0x6f, 0xaf, 0x49, 0x34, + 0x81, 0xbf, 0x9a, 0xfa, 0xfc, 0xde, 0x82, 0x51, 0xfc, 0x83, 0x01, 0x10, 0x11, 0x83, 0x30, 0xe4, + 0xec, 0x70, 0x24, 0x3f, 0xca, 0xf4, 0xce, 0xbd, 0x36, 0x8a, 0xfb, 0x03, 0xb4, 0x96, 0xa7, 0x85, + 0x79, 0x0f, 0x1e, 0x2d, 0x18, 0xea, 0xab, 0x59, 0x7b, 0x88, 0xf6, 0x4c, 0xaf, 0xeb, 0x60, 0x4e, + 0x2c, 0x11, 0xca, 0x92, 0xad, 0xcc, 0xd5, 0x42, 0x49, 0xc5, 0x79, 0x29, 0x88, 0xf3, 0xd2, 0x56, + 0x10, 0xe7, 0x0a, 0xf0, 0xc3, 0xbf, 0x05, 0x80, 0xa0, 0xb4, 0xc5, 0xba, 0xf6, 0xe1, 0x63, 0x03, + 0x32, 0x15, 0xc2, 0x6c, 0xdf, 0xed, 0x8a, 0xcc, 0x41, 0x79, 0x18, 0xef, 0x78, 0xd4, 0xdd, 0xd3, + 0x51, 0x37, 0x69, 0x06, 0x43, 0x54, 0x80, 0x09, 0xd7, 0x21, 0x94, 0xbb, 0xbc, 0xaf, 0xb6, 0xc9, + 0x0c, 0xc7, 0x42, 0xeb, 0x16, 0x69, 0x30, 0x37, 0xe0, 0xd9, 0x0c, 0x86, 0xe8, 0x32, 0xe4, 0x18, + 0xb1, 0x7b, 0xbe, 0xcb, 0xfb, 0x96, 0xed, 0x51, 0x8e, 0x6d, 0x9e, 0x4f, 0x49, 0x91, 0x6c, 0x30, + 0xbf, 0xa6, 0xa6, 0x05, 0x88, 0x43, 0x38, 0x76, 0xdb, 0x2c, 0x7f, 0x42, 0x81, 0xe8, 0xa1, 0x36, + 0xf5, 0xee, 0x38, 0x4c, 0x86, 0xc1, 0x8a, 0xd6, 0x20, 0xe7, 0x75, 0x89, 0x2f, 0x7e, 0x5b, 0xd8, + 0x71, 0x7c, 0xc2, 0x98, 0x8e, 0xc6, 0xfc, 0xc3, 0xfb, 0x4b, 0xa7, 0x34, 0xe1, 0xd7, 0xd5, 0x4a, + 0x9d, 0xfb, 0x2e, 0x6d, 0x99, 0xd9, 0x40, 0x43, 0x4f, 0xa3, 0x1f, 0x8a, 0x2d, 0xa3, 0x8c, 0x50, + 0xd6, 0x63, 0x56, 0xb7, 0xd7, 0xd8, 0x23, 0x7d, 0x4d, 0xea, 0xa9, 0x21, 0x52, 0xaf, 0xd3, 0x7e, + 0x39, 0xff, 0xa7, 0x08, 0xda, 0xf6, 0xfb, 0x5d, 0xee, 0x95, 0x36, 0x7b, 0x8d, 0x77, 0x48, 0x5f, + 0x6c, 0x95, 0xc6, 0xd9, 0x94, 0x30, 0xe8, 0x0c, 0xa4, 0x7f, 0x8a, 0xdd, 0x36, 0x71, 0x24, 0x23, + 0x13, 0xa6, 0x1e, 0xa1, 0x55, 0x48, 0x33, 0x8e, 0x79, 0x8f, 0x49, 0x1a, 0x66, 0xae, 0x16, 0x47, + 0xc5, 0x46, 0xd9, 0xa3, 0x4e, 0x5d, 0x4a, 0x9a, 0x5a, 0x03, 0xad, 0x41, 0x9a, 0x7b, 0x7b, 0x84, + 0x6a, 0x82, 0xca, 0xdf, 0xd0, 0xd1, 0x7c, 0x7a, 0x38, 0x9a, 0x6b, 0x94, 0xc7, 0xe2, 0xb8, 0x46, + 0xb9, 0xa9, 0x55, 0xd1, 0x8f, 0x21, 0xe7, 0x90, 0x36, 0x69, 0x49, 0xe6, 0xd8, 0x2e, 0xf6, 0x09, + 0xcb, 0xa7, 0x25, 0xdc, 0xca, 0xb1, 0x93, 0xc3, 0xcc, 0x86, 0x50, 0x75, 0x89, 0x84, 0x36, 0x21, + 0xe3, 0x44, 0xe1, 0x94, 0x1f, 0x97, 0x64, 0xbe, 0x3a, 0xca, 0xc7, 0x58, 0xe4, 0xc5, 0xab, 0x4f, + 0x1c, 0x42, 0x44, 0x50, 0x8f, 0x36, 0x3c, 0xea, 0xb8, 0xb4, 0x65, 0xed, 0x12, 0xb7, 0xb5, 0xcb, + 0xf3, 0x13, 0x8b, 0xc6, 0xa5, 0xa4, 0x99, 0x0d, 0xe7, 0x6f, 0xca, 0x69, 0xb4, 0x09, 0x33, 0x91, + 0xa8, 0xcc, 0x90, 0xc9, 0xe3, 0x66, 0xc8, 0x74, 0x08, 0x20, 0x44, 0xd0, 0x7b, 0x00, 0x51, 0x0e, + 0xe6, 0x41, 0xa2, 0x15, 0x8f, 0xce, 0xe6, 0xb8, 0x33, 0x31, 0x00, 0x44, 0xe1, 0x64, 0xc7, 0xa5, + 0x16, 0x23, 0xed, 0xa6, 0xa5, 0x99, 0x13, 0xb8, 0x19, 0x49, 0xff, 0x9b, 0xc7, 0xd8, 0xcd, 0xcf, + 0xee, 0x2f, 0x65, 0xd5, 0x68, 0x89, 0x39, 0x7b, 0x8b, 0xaf, 0x97, 0xbe, 0xfd, 0x1d, 0x73, 0xb6, + 0xe3, 0xd2, 0x3a, 0x69, 0x37, 0x2b, 0x21, 0x30, 0x7a, 0x03, 0xce, 0x45, 0x84, 0x78, 0xd4, 0xda, + 0xf5, 0xda, 0x8e, 0xe5, 0x93, 0xa6, 0x65, 0x7b, 0x3d, 0xca, 0xf3, 0x53, 0x92, 0xc6, 0xb3, 0xa1, + 0xc8, 0x06, 0xbd, 0xe9, 0xb5, 0x1d, 0x93, 0x34, 0xd7, 0xc4, 0x32, 0x7a, 0x15, 0x22, 0x36, 0x2c, + 0xd7, 0x61, 0xf9, 0xe9, 0xc5, 0xe4, 0xa5, 0x94, 0x39, 0x15, 0x4e, 0xd6, 0x1c, 0xb6, 0x3a, 0xf1, + 0xc1, 0xbd, 0x85, 0xb1, 0xcf, 0xef, 0x2d, 0x8c, 0x15, 0x6f, 0xc0, 0xd4, 0x0e, 0x6e, 0xeb, 0xd4, + 0x22, 0x0c, 0x5d, 0x83, 0x49, 0x1c, 0x0c, 0xf2, 0xc6, 0x62, 0xf2, 0x99, 0xa9, 0x19, 0x89, 0x16, + 0x7f, 0x67, 0x40, 0xba, 0xb2, 0xb3, 0x89, 0x5d, 0x1f, 0x55, 0x61, 0x36, 0x8a, 0xd5, 0xe7, 0xcd, + 0xf2, 0x28, 0xbc, 0x83, 0x34, 0x5f, 0x87, 0xd9, 0xfd, 0xa0, 0x70, 0x84, 0x30, 0xea, 0xa8, 0xb9, + 0xf0, 0xf0, 0xfe, 0xd2, 0x79, 0x0d, 0x13, 0x16, 0x97, 0x03, 0x78, 0xfb, 0x07, 0xe6, 0x63, 0x3e, + 0xbf, 0x0d, 0xe3, 0xca, 0x54, 0x86, 0xbe, 0x0b, 0x27, 0xba, 0xe2, 0x87, 0x74, 0x35, 0x73, 0x75, + 0x7e, 0x64, 0xcc, 0x4b, 0xf9, 0x78, 0x84, 0x28, 0xbd, 0xe2, 0x2f, 0x12, 0x00, 0x95, 0x9d, 0x9d, + 0x2d, 0xdf, 0xed, 0xb6, 0x09, 0xff, 0xa2, 0x7c, 0xdf, 0x86, 0xd3, 0x91, 0xef, 0xcc, 0xb7, 0x8f, + 0xef, 0xff, 0xc9, 0x50, 0xbf, 0xee, 0xdb, 0x87, 0xc2, 0x3a, 0x8c, 0x87, 0xb0, 0xc9, 0xe3, 0xc3, + 0x56, 0x18, 0x1f, 0x66, 0xf6, 0x07, 0x90, 0x89, 0xc8, 0x60, 0xa8, 0x06, 0x13, 0x5c, 0xff, 0xd6, + 0x04, 0x17, 0x47, 0x13, 0x1c, 0xa8, 0xc5, 0x49, 0x0e, 0xd5, 0x8b, 0xff, 0x31, 0x00, 0x62, 0x39, + 0xf2, 0xe5, 0x8c, 0x31, 0x54, 0x83, 0xb4, 0x2e, 0xce, 0xc9, 0x17, 0x2d, 0xce, 0x1a, 0x20, 0x46, + 0xea, 0x2f, 0x13, 0x70, 0x72, 0x3b, 0xc8, 0xde, 0x2f, 0x3f, 0x07, 0xdb, 0x30, 0x4e, 0x28, 0xf7, + 0x5d, 0x49, 0x82, 0xd8, 0xf3, 0xd7, 0x47, 0xed, 0xf9, 0x21, 0x4e, 0x55, 0x29, 0xf7, 0xfb, 0xf1, + 0x08, 0x08, 0xb0, 0x62, 0x7c, 0xfc, 0x3a, 0x09, 0xf9, 0x51, 0xaa, 0xe8, 0x35, 0xc8, 0xda, 0x3e, + 0x91, 0x13, 0xc1, 0xb9, 0x63, 0xc8, 0x82, 0x39, 0x13, 0x4c, 0xeb, 0x63, 0xc7, 0x04, 0x71, 0x51, + 0x13, 0xc1, 0x25, 0x44, 0x5f, 0xec, 0x66, 0x36, 0x13, 0x21, 0xc8, 0x83, 0x67, 0x0b, 0xb2, 0x2e, + 0x75, 0xb9, 0x8b, 0xdb, 0x56, 0x03, 0xb7, 0x31, 0xb5, 0x83, 0x1b, 0xec, 0xb1, 0xce, 0xfc, 0x19, + 0x8d, 0x51, 0x56, 0x10, 0xa8, 0x0a, 0xe3, 0x01, 0x5a, 0xea, 0xf8, 0x68, 0x81, 0x2e, 0xba, 0x00, + 0x53, 0xf1, 0x83, 0x41, 0xde, 0x46, 0x52, 0x66, 0x26, 0x76, 0x2e, 0x1c, 0x75, 0xf2, 0xa4, 0x9f, + 0x79, 0xf2, 0xe8, 0x0b, 0xdf, 0x6f, 0x92, 0x30, 0x6b, 0x12, 0xe7, 0xff, 0x7f, 0x5b, 0x36, 0x01, + 0x54, 0xaa, 0x8a, 0x4a, 0xaa, 0x77, 0xe6, 0x05, 0xf2, 0x7d, 0x52, 0x81, 0x54, 0x18, 0xff, 0x5f, + 0xed, 0xd0, 0x5f, 0x13, 0x30, 0x15, 0xdf, 0xa1, 0xaf, 0xe4, 0xa1, 0x85, 0xd6, 0xa3, 0x32, 0x95, + 0x92, 0x65, 0xea, 0xf2, 0xa8, 0x32, 0x35, 0x14, 0xcd, 0x47, 0xd4, 0xa7, 0xa7, 0x49, 0x48, 0x6f, + 0x62, 0x1f, 0x77, 0x18, 0xda, 0x18, 0xba, 0xdb, 0x06, 0x5d, 0x81, 0x83, 0xc1, 0x5c, 0xd1, 0x5d, + 0x10, 0x15, 0xcb, 0x1f, 0x8d, 0xba, 0xda, 0x7e, 0x0d, 0x66, 0xc4, 0x1b, 0x39, 0x74, 0x48, 0x91, + 0x3b, 0x2d, 0x9f, 0xba, 0xa1, 0xf7, 0x0c, 0x2d, 0x40, 0x46, 0x88, 0x45, 0x75, 0x58, 0xc8, 0x40, + 0x07, 0xdf, 0xae, 0xaa, 0x19, 0xb4, 0x04, 0x68, 0x37, 0x6c, 0x5c, 0x58, 0x11, 0x11, 0x42, 0x6e, + 0x36, 0x5a, 0x09, 0xc4, 0xcf, 0x03, 0x08, 0x2b, 0x2c, 0x87, 0x50, 0xaf, 0xa3, 0x1f, 0x7a, 0x93, + 0x62, 0xa6, 0x22, 0x26, 0xd0, 0xcf, 0x0d, 0x75, 0x45, 0x3e, 0xf0, 0x92, 0xd6, 0x2f, 0x94, 0xad, + 0xe7, 0x48, 0x8a, 0x7f, 0x3f, 0x5a, 0x28, 0xf4, 0x71, 0xa7, 0xbd, 0x5a, 0x3c, 0x04, 0xa7, 0x78, + 0xd8, 0xe3, 0x5e, 0x5c, 0x9c, 0x07, 0x5f, 0xe2, 0xa8, 0x06, 0xb9, 0x3d, 0xd2, 0xb7, 0x7c, 0x8f, + 0xab, 0x42, 0xd3, 0x24, 0x44, 0xbf, 0x65, 0xe6, 0x82, 0xbd, 0x6d, 0x60, 0x46, 0x62, 0x57, 0x7f, + 0x97, 0x96, 0x53, 0xc2, 0x3a, 0x73, 0x66, 0x8f, 0xf4, 0x4d, 0xad, 0x77, 0x83, 0x90, 0xd5, 0x8b, + 0x22, 0x53, 0xee, 0x3c, 0xfd, 0xe4, 0xca, 0xb9, 0xe8, 0xc2, 0xbe, 0x7c, 0x3b, 0xec, 0x91, 0xa9, + 0xed, 0x15, 0x97, 0x5e, 0x14, 0x1d, 0x40, 0x26, 0x61, 0x5d, 0xf1, 0x9e, 0x14, 0xef, 0x8f, 0xd8, + 0x3b, 0xc1, 0x78, 0xf6, 0xfb, 0x23, 0xd2, 0x1f, 0x78, 0x7f, 0xc4, 0xd2, 0xf3, 0xcd, 0xa8, 0xfe, + 0x27, 0x8e, 0xf2, 0x26, 0x1e, 0x99, 0x5a, 0x49, 0x66, 0xfd, 0x58, 0xf1, 0xcf, 0x06, 0xcc, 0x0d, + 0x45, 0x72, 0x68, 0xb2, 0x0d, 0xc8, 0x8f, 0x2d, 0xca, 0x88, 0xe8, 0x6b, 0xd3, 0x5f, 0x2c, 0x31, + 0x66, 0xfd, 0xa1, 0x43, 0xe0, 0x8b, 0x39, 0xc8, 0x74, 0x15, 0xfb, 0xa3, 0x01, 0xa7, 0xe2, 0x06, + 0x84, 0xae, 0xd4, 0x61, 0x2a, 0xfe, 0x69, 0xed, 0xc4, 0xc5, 0xe7, 0x71, 0x22, 0x6e, 0xff, 0x00, + 0x08, 0xda, 0x89, 0xaa, 0x85, 0xea, 0xcc, 0xad, 0x3c, 0x37, 0x29, 0x81, 0x61, 0x87, 0x56, 0x0d, + 0xb5, 0x37, 0xff, 0x34, 0x20, 0xb5, 0xe9, 0x79, 0x6d, 0xf4, 0x33, 0x98, 0xa5, 0x1e, 0xb7, 0x44, + 0x66, 0x11, 0xc7, 0xd2, 0x6d, 0x03, 0x55, 0x89, 0xab, 0xcf, 0xe4, 0xea, 0x1f, 0x8f, 0x16, 0x86, + 0x35, 0x07, 0x09, 0xd4, 0xdd, 0x29, 0xea, 0xf1, 0xb2, 0x14, 0xda, 0x52, 0x9d, 0x85, 0x26, 0x4c, + 0x0f, 0x7e, 0x4e, 0x55, 0xeb, 0xeb, 0x47, 0x7d, 0x6e, 0xfa, 0xc8, 0x4f, 0x4d, 0x35, 0x62, 0xdf, + 0x59, 0x9d, 0x10, 0xbb, 0xf6, 0x2f, 0xb1, 0x73, 0xef, 0x43, 0x2e, 0x2c, 0x55, 0xdb, 0xb2, 0xb5, + 0xc5, 0xd0, 0x0d, 0x18, 0x57, 0x5d, 0xae, 0xe0, 0xa1, 0x70, 0x21, 0xea, 0x9b, 0xe2, 0x86, 0xed, + 0x96, 0xf6, 0x63, 0x3d, 0x4f, 0xa5, 0x34, 0xc0, 0xa7, 0x56, 0x96, 0xad, 0xcf, 0x07, 0x09, 0x98, + 0x5b, 0xf3, 0x28, 0xd3, 0x4d, 0x1e, 0x9d, 0xd5, 0xaa, 0x4f, 0xdb, 0x47, 0x97, 0x47, 0xb4, 0xa0, + 0xa6, 0x86, 0x1b, 0x4d, 0x3b, 0x90, 0x15, 0xc7, 0xab, 0xed, 0xd1, 0x97, 0xec, 0x33, 0x4d, 0x7b, + 0x6d, 0x47, 0x5b, 0xb4, 0x47, 0xfa, 0x02, 0x97, 0x92, 0x5b, 0x03, 0xb8, 0xc9, 0x17, 0xc3, 0xa5, + 0xe4, 0x56, 0x0c, 0xf7, 0x0c, 0xa4, 0xf5, 0xdd, 0x2a, 0x25, 0x6f, 0x0e, 0x7a, 0x84, 0xae, 0x41, + 0x52, 0x94, 0xc2, 0x13, 0xc7, 0x28, 0x1e, 0x42, 0x21, 0x76, 0xa4, 0xd5, 0x61, 0x4e, 0x77, 0x09, + 0xd8, 0x46, 0x53, 0x32, 0x4a, 0xa4, 0x43, 0xef, 0x90, 0xfe, 0x21, 0x2d, 0x83, 0xa9, 0xe7, 0x6a, + 0x19, 0x5c, 0xf9, 0xbd, 0x01, 0x10, 0xf5, 0xcb, 0xd0, 0x37, 0xe1, 0x6c, 0x79, 0x63, 0xbd, 0x62, + 0xd5, 0xb7, 0xae, 0x6f, 0x6d, 0xd7, 0xad, 0xed, 0xf5, 0xfa, 0x66, 0x75, 0xad, 0x76, 0xa3, 0x56, + 0xad, 0xe4, 0xc6, 0x0a, 0xd9, 0x3b, 0x77, 0x17, 0x33, 0xdb, 0x94, 0x75, 0x89, 0xed, 0x36, 0x5d, + 0xe2, 0xa0, 0xaf, 0xc3, 0xa9, 0x41, 0x69, 0x31, 0xaa, 0x56, 0x72, 0x46, 0x61, 0xea, 0xce, 0xdd, + 0xc5, 0x09, 0xf5, 0x3e, 0x20, 0x0e, 0xba, 0x04, 0xa7, 0x87, 0xe5, 0x6a, 0xeb, 0x6f, 0xe5, 0x12, + 0x85, 0xe9, 0x3b, 0x77, 0x17, 0x27, 0xc3, 0x87, 0x04, 0x2a, 0x02, 0x8a, 0x4b, 0x6a, 0xbc, 0x64, + 0x01, 0xee, 0xdc, 0x5d, 0x4c, 0xab, 0x94, 0x29, 0xa4, 0x3e, 0xf8, 0xed, 0xfc, 0xd8, 0x95, 0x9f, + 0x00, 0xd4, 0x68, 0xd3, 0xc7, 0xb6, 0x2c, 0x0d, 0x05, 0x38, 0x53, 0x5b, 0xbf, 0x61, 0x5e, 0x5f, + 0xdb, 0xaa, 0x6d, 0xac, 0x0f, 0x9a, 0x7d, 0x60, 0xad, 0xb2, 0xb1, 0x5d, 0x7e, 0xb7, 0x6a, 0xd5, + 0x6b, 0x6f, 0xad, 0xe7, 0x0c, 0x74, 0x16, 0x4e, 0x0e, 0xac, 0x7d, 0x7f, 0x7d, 0xab, 0xf6, 0x5e, + 0x35, 0x97, 0x28, 0x5f, 0xfb, 0xf4, 0xf1, 0xbc, 0xf1, 0xe0, 0xf1, 0xbc, 0xf1, 0xf7, 0xc7, 0xf3, + 0xc6, 0x87, 0x4f, 0xe6, 0xc7, 0x1e, 0x3c, 0x99, 0x1f, 0xfb, 0xcb, 0x93, 0xf9, 0xb1, 0x1f, 0xbd, + 0x32, 0x90, 0x8c, 0xd1, 0x71, 0x24, 0xff, 0xb3, 0xd0, 0x48, 0xcb, 0xa8, 0xf9, 0xd6, 0x7f, 0x03, + 0x00, 0x00, 0xff, 0xff, 0x3a, 0x28, 0x52, 0x25, 0xd1, 0x19, 0x00, 0x00, } func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { @@ -1590,735 +1521,732 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 11635 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x90, 0x23, 0x59, - 0x56, 0x18, 0xdc, 0x29, 0xa9, 0x54, 0xd2, 0x91, 0x54, 0xca, 0xba, 0x55, 0xdd, 0x5d, 0x5d, 0x3d, - 0xd3, 0x55, 0xad, 0x79, 0x74, 0x4f, 0xcf, 0x4c, 0xf5, 0x74, 0x4f, 0x4f, 0xcf, 0x8c, 0xe6, 0x85, - 0x54, 0xa5, 0xaa, 0x56, 0x4f, 0xbd, 0x36, 0xa5, 0xaa, 0x9d, 0x19, 0x1e, 0x49, 0x56, 0xea, 0x56, - 0x55, 0x4e, 0x4b, 0x99, 0xb9, 0x99, 0xa9, 0xee, 0xaa, 0xf9, 0xbe, 0xf8, 0x62, 0xf9, 0x78, 0x7c, - 0x30, 0x3c, 0xbe, 0xc5, 0x60, 0x58, 0x76, 0xb7, 0x97, 0x05, 0x0c, 0xbb, 0x0b, 0x36, 0x06, 0xef, - 0xf2, 0x32, 0xe1, 0x07, 0x0e, 0x1b, 0x03, 0x0e, 0xe3, 0x35, 0x3f, 0x6c, 0x82, 0x08, 0x06, 0xd8, - 0x25, 0x62, 0xd7, 0xb0, 0x60, 0xc0, 0xbb, 0x04, 0xe1, 0x0d, 0x3b, 0x1c, 0xf7, 0x95, 0x0f, 0x29, - 0x55, 0x52, 0xf5, 0xcc, 0x2c, 0x18, 0xfc, 0xa7, 0xbb, 0xf2, 0xde, 0x73, 0xce, 0x3d, 0xf7, 0xdc, - 0x73, 0xcf, 0x39, 0xf7, 0xdc, 0x87, 0xe0, 0x0f, 0xaa, 0x30, 0xbf, 0x67, 0x59, 0x7b, 0x6d, 0x7c, - 0xd9, 0x76, 0x2c, 0xcf, 0xda, 0xe9, 0xee, 0x5e, 0x6e, 0x61, 0x57, 0x77, 0x0c, 0xdb, 0xb3, 0x9c, - 0x05, 0x5a, 0x86, 0x8a, 0x0c, 0x62, 0x41, 0x40, 0x94, 0xd6, 0x60, 0x72, 0xd9, 0x68, 0xe3, 0x25, - 0x1f, 0xb0, 0x81, 0x3d, 0xf4, 0x0c, 0xa4, 0x76, 0x8d, 0x36, 0x9e, 0x91, 0xe6, 0x93, 0x17, 0x73, - 0x57, 0x1f, 0x5c, 0xe8, 0x41, 0x5a, 0x88, 0x62, 0x6c, 0x92, 0x62, 0x85, 0x62, 0x94, 0xfe, 0x67, - 0x0a, 0xa6, 0x62, 0x6a, 0x11, 0x82, 0x94, 0xa9, 0x75, 0x08, 0x45, 0xe9, 0x62, 0x56, 0xa1, 0x7f, - 0xa3, 0x19, 0x18, 0xb7, 0x35, 0xfd, 0x96, 0xb6, 0x87, 0x67, 0x12, 0xb4, 0x58, 0x7c, 0xa2, 0x73, - 0x00, 0x2d, 0x6c, 0x63, 0xb3, 0x85, 0x4d, 0xfd, 0x70, 0x26, 0x39, 0x9f, 0xbc, 0x98, 0x55, 0x42, - 0x25, 0xe8, 0x51, 0x98, 0xb4, 0xbb, 0x3b, 0x6d, 0x43, 0x57, 0x43, 0x60, 0x30, 0x9f, 0xbc, 0x38, - 0xa6, 0xc8, 0xac, 0x62, 0x29, 0x00, 0xbe, 0x00, 0xc5, 0x3b, 0x58, 0xbb, 0x15, 0x06, 0xcd, 0x51, - 0xd0, 0x09, 0x52, 0x1c, 0x02, 0x5c, 0x84, 0x7c, 0x07, 0xbb, 0xae, 0xb6, 0x87, 0x55, 0xef, 0xd0, - 0xc6, 0x33, 0x29, 0xda, 0xfb, 0xf9, 0xbe, 0xde, 0xf7, 0xf6, 0x3c, 0xc7, 0xb1, 0x9a, 0x87, 0x36, - 0x46, 0x15, 0xc8, 0x62, 0xb3, 0xdb, 0x61, 0x14, 0xc6, 0x06, 0xc8, 0xaf, 0x66, 0x76, 0x3b, 0xbd, - 0x54, 0x32, 0x04, 0x8d, 0x93, 0x18, 0x77, 0xb1, 0x73, 0xdb, 0xd0, 0xf1, 0x4c, 0x9a, 0x12, 0xb8, - 0xd0, 0x47, 0xa0, 0xc1, 0xea, 0x7b, 0x69, 0x08, 0x3c, 0xb4, 0x08, 0x59, 0x7c, 0xe0, 0x61, 0xd3, - 0x35, 0x2c, 0x73, 0x66, 0x9c, 0x12, 0x79, 0x28, 0x66, 0x14, 0x71, 0xbb, 0xd5, 0x4b, 0x22, 0xc0, - 0x43, 0xd7, 0x61, 0xdc, 0xb2, 0x3d, 0xc3, 0x32, 0xdd, 0x99, 0xcc, 0xbc, 0x74, 0x31, 0x77, 0xf5, - 0xbe, 0x58, 0x45, 0xd8, 0x60, 0x30, 0x8a, 0x00, 0x46, 0x75, 0x90, 0x5d, 0xab, 0xeb, 0xe8, 0x58, - 0xd5, 0xad, 0x16, 0x56, 0x0d, 0x73, 0xd7, 0x9a, 0xc9, 0x52, 0x02, 0x73, 0xfd, 0x1d, 0xa1, 0x80, - 0x8b, 0x56, 0x0b, 0xd7, 0xcd, 0x5d, 0x4b, 0x99, 0x70, 0x23, 0xdf, 0xe8, 0x14, 0xa4, 0xdd, 0x43, - 0xd3, 0xd3, 0x0e, 0x66, 0xf2, 0x54, 0x43, 0xf8, 0x17, 0x51, 0x1d, 0xdc, 0x32, 0x48, 0x73, 0x33, - 0x05, 0xa6, 0x3a, 0xfc, 0xb3, 0xf4, 0x4b, 0x69, 0x28, 0x8e, 0xa2, 0x7c, 0xcf, 0xc1, 0xd8, 0x2e, - 0xe9, 0xff, 0x4c, 0xe2, 0x38, 0xd2, 0x61, 0x38, 0x51, 0xf1, 0xa6, 0xef, 0x51, 0xbc, 0x15, 0xc8, - 0x99, 0xd8, 0xf5, 0x70, 0x8b, 0xe9, 0x4a, 0x72, 0x44, 0x6d, 0x03, 0x86, 0xd4, 0xaf, 0x6c, 0xa9, - 0x7b, 0x52, 0xb6, 0x57, 0xa0, 0xe8, 0xb3, 0xa4, 0x3a, 0x9a, 0xb9, 0x27, 0xb4, 0xf6, 0xf2, 0x30, - 0x4e, 0x16, 0x6a, 0x02, 0x4f, 0x21, 0x68, 0xca, 0x04, 0x8e, 0x7c, 0xa3, 0x25, 0x00, 0xcb, 0xc4, - 0xd6, 0xae, 0xda, 0xc2, 0x7a, 0x7b, 0x26, 0x33, 0x40, 0x4a, 0x1b, 0x04, 0xa4, 0x4f, 0x4a, 0x16, - 0x2b, 0xd5, 0xdb, 0xe8, 0xd9, 0x40, 0x09, 0xc7, 0x07, 0xe8, 0xd0, 0x1a, 0x9b, 0x7e, 0x7d, 0x7a, - 0xb8, 0x05, 0x13, 0x0e, 0x26, 0x33, 0x02, 0xb7, 0x78, 0xcf, 0xb2, 0x94, 0x89, 0x85, 0xa1, 0x3d, - 0x53, 0x38, 0x1a, 0xeb, 0x58, 0xc1, 0x09, 0x7f, 0xa2, 0x07, 0xc0, 0x2f, 0x50, 0xa9, 0x5a, 0x01, - 0xb5, 0x4f, 0x79, 0x51, 0xb8, 0xae, 0x75, 0xf0, 0xec, 0x1b, 0x30, 0x11, 0x15, 0x0f, 0x9a, 0x86, - 0x31, 0xd7, 0xd3, 0x1c, 0x8f, 0x6a, 0xe1, 0x98, 0xc2, 0x3e, 0x90, 0x0c, 0x49, 0x6c, 0xb6, 0xa8, - 0xfd, 0x1b, 0x53, 0xc8, 0x9f, 0xe8, 0x6b, 0x82, 0x0e, 0x27, 0x69, 0x87, 0x1f, 0xee, 0x1f, 0xd1, - 0x08, 0xe5, 0xde, 0x7e, 0xcf, 0x3e, 0x0d, 0x85, 0x48, 0x07, 0x46, 0x6d, 0xba, 0xf4, 0x7f, 0xc3, - 0xc9, 0x58, 0xd2, 0xe8, 0x15, 0x98, 0xee, 0x9a, 0x86, 0xe9, 0x61, 0xc7, 0x76, 0x30, 0xd1, 0x58, - 0xd6, 0xd4, 0xcc, 0xe7, 0xc7, 0x07, 0xe8, 0xdc, 0x56, 0x18, 0x9a, 0x51, 0x51, 0xa6, 0xba, 0xfd, - 0x85, 0x97, 0xb2, 0x99, 0x2f, 0x8c, 0xcb, 0xef, 0x7f, 0xff, 0xfb, 0xdf, 0x9f, 0x28, 0xfd, 0x4a, - 0x1a, 0xa6, 0xe3, 0xe6, 0x4c, 0xec, 0xf4, 0x3d, 0x05, 0x69, 0xb3, 0xdb, 0xd9, 0xc1, 0x0e, 0x15, - 0xd2, 0x98, 0xc2, 0xbf, 0x50, 0x05, 0xc6, 0xda, 0xda, 0x0e, 0x6e, 0xcf, 0xa4, 0xe6, 0xa5, 0x8b, - 0x13, 0x57, 0x1f, 0x1d, 0x69, 0x56, 0x2e, 0xac, 0x12, 0x14, 0x85, 0x61, 0xa2, 0x17, 0x21, 0xc5, - 0x8d, 0x37, 0xa1, 0x70, 0x69, 0x34, 0x0a, 0x64, 0x2e, 0x29, 0x14, 0x0f, 0x9d, 0x85, 0x2c, 0xf9, - 0x9f, 0xe9, 0x46, 0x9a, 0xf2, 0x9c, 0x21, 0x05, 0x44, 0x2f, 0xd0, 0x2c, 0x64, 0xe8, 0x34, 0x69, - 0x61, 0xe1, 0xf4, 0xfc, 0x6f, 0xa2, 0x58, 0x2d, 0xbc, 0xab, 0x75, 0xdb, 0x9e, 0x7a, 0x5b, 0x6b, - 0x77, 0x31, 0x55, 0xf8, 0xac, 0x92, 0xe7, 0x85, 0xdb, 0xa4, 0x0c, 0xcd, 0x41, 0x8e, 0xcd, 0x2a, - 0xc3, 0x6c, 0xe1, 0x03, 0x6a, 0x57, 0xc7, 0x14, 0x36, 0xd1, 0xea, 0xa4, 0x84, 0x34, 0xff, 0xba, - 0x6b, 0x99, 0x42, 0x35, 0x69, 0x13, 0xa4, 0x80, 0x36, 0xff, 0x74, 0xaf, 0x49, 0xbf, 0x3f, 0xbe, - 0x7b, 0x7d, 0x73, 0xe9, 0x02, 0x14, 0x29, 0xc4, 0x93, 0x7c, 0xe8, 0xb5, 0xf6, 0xcc, 0xe4, 0xbc, - 0x74, 0x31, 0xa3, 0x4c, 0xb0, 0xe2, 0x0d, 0x5e, 0x5a, 0xfa, 0xf9, 0x04, 0xa4, 0xa8, 0x61, 0x29, - 0x42, 0xae, 0xf9, 0xea, 0x66, 0x4d, 0x5d, 0xda, 0xd8, 0xaa, 0xae, 0xd6, 0x64, 0x09, 0x4d, 0x00, - 0xd0, 0x82, 0xe5, 0xd5, 0x8d, 0x4a, 0x53, 0x4e, 0xf8, 0xdf, 0xf5, 0xf5, 0xe6, 0xf5, 0x6b, 0x72, - 0xd2, 0x47, 0xd8, 0x62, 0x05, 0xa9, 0x30, 0xc0, 0x93, 0x57, 0xe5, 0x31, 0x24, 0x43, 0x9e, 0x11, - 0xa8, 0xbf, 0x52, 0x5b, 0xba, 0x7e, 0x4d, 0x4e, 0x47, 0x4b, 0x9e, 0xbc, 0x2a, 0x8f, 0xa3, 0x02, - 0x64, 0x69, 0x49, 0x75, 0x63, 0x63, 0x55, 0xce, 0xf8, 0x34, 0x1b, 0x4d, 0xa5, 0xbe, 0xbe, 0x22, - 0x67, 0x7d, 0x9a, 0x2b, 0xca, 0xc6, 0xd6, 0xa6, 0x0c, 0x3e, 0x85, 0xb5, 0x5a, 0xa3, 0x51, 0x59, - 0xa9, 0xc9, 0x39, 0x1f, 0xa2, 0xfa, 0x6a, 0xb3, 0xd6, 0x90, 0xf3, 0x11, 0xb6, 0x9e, 0xbc, 0x2a, - 0x17, 0xfc, 0x26, 0x6a, 0xeb, 0x5b, 0x6b, 0xf2, 0x04, 0x9a, 0x84, 0x02, 0x6b, 0x42, 0x30, 0x51, - 0xec, 0x29, 0xba, 0x7e, 0x4d, 0x96, 0x03, 0x46, 0x18, 0x95, 0xc9, 0x48, 0xc1, 0xf5, 0x6b, 0x32, - 0x2a, 0x2d, 0xc2, 0x18, 0x55, 0x43, 0x84, 0x60, 0x62, 0xb5, 0x52, 0xad, 0xad, 0xaa, 0x1b, 0x9b, - 0xcd, 0xfa, 0xc6, 0x7a, 0x65, 0x55, 0x96, 0x82, 0x32, 0xa5, 0xf6, 0x9e, 0xad, 0xba, 0x52, 0x5b, - 0x92, 0x13, 0xe1, 0xb2, 0xcd, 0x5a, 0xa5, 0x59, 0x5b, 0x92, 0x93, 0x25, 0x1d, 0xa6, 0xe3, 0x0c, - 0x6a, 0xec, 0x14, 0x0a, 0xe9, 0x42, 0x62, 0x80, 0x2e, 0x50, 0x5a, 0xbd, 0xba, 0x50, 0xfa, 0x5c, - 0x02, 0xa6, 0x62, 0x9c, 0x4a, 0x6c, 0x23, 0x2f, 0xc1, 0x18, 0xd3, 0x65, 0xe6, 0x66, 0x1f, 0x89, - 0xf5, 0x4e, 0x54, 0xb3, 0xfb, 0x5c, 0x2d, 0xc5, 0x0b, 0x07, 0x21, 0xc9, 0x01, 0x41, 0x08, 0x21, - 0xd1, 0xa7, 0xb0, 0x5f, 0xdf, 0x67, 0xfc, 0x99, 0x7f, 0xbc, 0x3e, 0x8a, 0x7f, 0xa4, 0x65, 0xc7, - 0x73, 0x02, 0x63, 0x31, 0x4e, 0xe0, 0x39, 0x98, 0xec, 0x23, 0x34, 0xb2, 0x31, 0xfe, 0x66, 0x09, - 0x66, 0x06, 0x09, 0x67, 0x88, 0x49, 0x4c, 0x44, 0x4c, 0xe2, 0x73, 0xbd, 0x12, 0x3c, 0x3f, 0x78, - 0x10, 0xfa, 0xc6, 0xfa, 0xe3, 0x12, 0x9c, 0x8a, 0x0f, 0x36, 0x63, 0x79, 0x78, 0x11, 0xd2, 0x1d, - 0xec, 0xed, 0x5b, 0x22, 0xac, 0x7a, 0x38, 0xc6, 0x59, 0x93, 0xea, 0xde, 0xc1, 0xe6, 0x58, 0x61, - 0x6f, 0x9f, 0x1c, 0x14, 0x31, 0x32, 0x6e, 0xfa, 0x38, 0xfd, 0x8e, 0x04, 0x9c, 0x8c, 0x25, 0x1e, - 0xcb, 0xe8, 0xfd, 0x00, 0x86, 0x69, 0x77, 0x3d, 0x16, 0x3a, 0x31, 0x4b, 0x9c, 0xa5, 0x25, 0xd4, - 0x78, 0x11, 0x2b, 0xdb, 0xf5, 0xfc, 0xfa, 0x24, 0xad, 0x07, 0x56, 0x44, 0x01, 0x9e, 0x09, 0x18, - 0x4d, 0x51, 0x46, 0xcf, 0x0d, 0xe8, 0x69, 0x9f, 0x62, 0x3e, 0x01, 0xb2, 0xde, 0x36, 0xb0, 0xe9, - 0xa9, 0xae, 0xe7, 0x60, 0xad, 0x63, 0x98, 0x7b, 0xd4, 0xd5, 0x64, 0xca, 0x63, 0xbb, 0x5a, 0xdb, - 0xc5, 0x4a, 0x91, 0x55, 0x37, 0x44, 0x2d, 0xc1, 0xa0, 0x0a, 0xe4, 0x84, 0x30, 0xd2, 0x11, 0x0c, - 0x56, 0xed, 0x63, 0x94, 0xbe, 0x37, 0x0b, 0xb9, 0x50, 0x68, 0x8e, 0xce, 0x43, 0xfe, 0x75, 0xed, - 0xb6, 0xa6, 0x8a, 0xe5, 0x16, 0x93, 0x44, 0x8e, 0x94, 0x6d, 0xf2, 0x25, 0xd7, 0x13, 0x30, 0x4d, - 0x41, 0xac, 0xae, 0x87, 0x1d, 0x55, 0x6f, 0x6b, 0xae, 0x4b, 0x85, 0x96, 0xa1, 0xa0, 0x88, 0xd4, - 0x6d, 0x90, 0xaa, 0x45, 0x51, 0x83, 0x9e, 0x82, 0x29, 0x8a, 0xd1, 0xe9, 0xb6, 0x3d, 0xc3, 0x6e, - 0x63, 0x95, 0x2c, 0x00, 0x5d, 0xea, 0x72, 0x7c, 0xce, 0x26, 0x09, 0xc4, 0x1a, 0x07, 0x20, 0x1c, - 0xb9, 0x68, 0x09, 0xee, 0xa7, 0x68, 0x7b, 0xd8, 0xc4, 0x8e, 0xe6, 0x61, 0x15, 0xbf, 0xaf, 0xab, - 0xb5, 0x5d, 0x55, 0x33, 0x5b, 0xea, 0xbe, 0xe6, 0xee, 0xcf, 0x4c, 0x13, 0x02, 0xd5, 0xc4, 0x8c, - 0xa4, 0x9c, 0x21, 0x80, 0x2b, 0x1c, 0xae, 0x46, 0xc1, 0x2a, 0x66, 0xeb, 0x86, 0xe6, 0xee, 0xa3, - 0x32, 0x9c, 0xa2, 0x54, 0x5c, 0xcf, 0x31, 0xcc, 0x3d, 0x55, 0xdf, 0xc7, 0xfa, 0x2d, 0xb5, 0xeb, - 0xed, 0x3e, 0x33, 0x73, 0x36, 0xdc, 0x3e, 0xe5, 0xb0, 0x41, 0x61, 0x16, 0x09, 0xc8, 0x96, 0xb7, - 0xfb, 0x0c, 0x6a, 0x40, 0x9e, 0x0c, 0x46, 0xc7, 0x78, 0x03, 0xab, 0xbb, 0x96, 0x43, 0x7d, 0xe8, - 0x44, 0x8c, 0x69, 0x0a, 0x49, 0x70, 0x61, 0x83, 0x23, 0xac, 0x59, 0x2d, 0x5c, 0x1e, 0x6b, 0x6c, - 0xd6, 0x6a, 0x4b, 0x4a, 0x4e, 0x50, 0x59, 0xb6, 0x1c, 0xa2, 0x50, 0x7b, 0x96, 0x2f, 0xe0, 0x1c, - 0x53, 0xa8, 0x3d, 0x4b, 0x88, 0xf7, 0x29, 0x98, 0xd2, 0x75, 0xd6, 0x67, 0x43, 0x57, 0xf9, 0x32, - 0xcd, 0x9d, 0x91, 0x23, 0xc2, 0xd2, 0xf5, 0x15, 0x06, 0xc0, 0x75, 0xdc, 0x45, 0xcf, 0xc2, 0xc9, - 0x40, 0x58, 0x61, 0xc4, 0xc9, 0xbe, 0x5e, 0xf6, 0xa2, 0x3e, 0x05, 0x53, 0xf6, 0x61, 0x3f, 0x22, - 0x8a, 0xb4, 0x68, 0x1f, 0xf6, 0xa2, 0x3d, 0x0d, 0xd3, 0xf6, 0xbe, 0xdd, 0x8f, 0x77, 0x29, 0x8c, - 0x87, 0xec, 0x7d, 0xbb, 0x17, 0xf1, 0x21, 0xba, 0x66, 0x77, 0xb0, 0xae, 0x79, 0xb8, 0x35, 0x73, - 0x3a, 0x0c, 0x1e, 0xaa, 0x40, 0x0b, 0x20, 0xeb, 0xba, 0x8a, 0x4d, 0x6d, 0xa7, 0x8d, 0x55, 0xcd, - 0xc1, 0xa6, 0xe6, 0xce, 0xcc, 0x51, 0xe0, 0x94, 0xe7, 0x74, 0xb1, 0x32, 0xa1, 0xeb, 0x35, 0x5a, - 0x59, 0xa1, 0x75, 0xe8, 0x12, 0x4c, 0x5a, 0x3b, 0xaf, 0xeb, 0x4c, 0x23, 0x55, 0xdb, 0xc1, 0xbb, - 0xc6, 0xc1, 0xcc, 0x83, 0x54, 0xbc, 0x45, 0x52, 0x41, 0xf5, 0x71, 0x93, 0x16, 0xa3, 0x47, 0x40, - 0xd6, 0xdd, 0x7d, 0xcd, 0xb1, 0xa9, 0x49, 0x76, 0x6d, 0x4d, 0xc7, 0x33, 0x0f, 0x31, 0x50, 0x56, - 0xbe, 0x2e, 0x8a, 0xc9, 0x8c, 0x70, 0xef, 0x18, 0xbb, 0x9e, 0xa0, 0x78, 0x81, 0xcd, 0x08, 0x5a, - 0xc6, 0xa9, 0x5d, 0x04, 0x99, 0x48, 0x22, 0xd2, 0xf0, 0x45, 0x0a, 0x36, 0x61, 0xef, 0xdb, 0xe1, - 0x76, 0x1f, 0x80, 0x02, 0x81, 0x0c, 0x1a, 0x7d, 0x84, 0x05, 0x6e, 0xf6, 0x7e, 0xa8, 0xc5, 0x6b, - 0x70, 0x8a, 0x00, 0x75, 0xb0, 0xa7, 0xb5, 0x34, 0x4f, 0x0b, 0x41, 0x3f, 0x46, 0xa1, 0x89, 0xd8, - 0xd7, 0x78, 0x65, 0x84, 0x4f, 0xa7, 0xbb, 0x73, 0xe8, 0x2b, 0xd6, 0xe3, 0x8c, 0x4f, 0x52, 0x26, - 0x54, 0xeb, 0x5d, 0x0b, 0xce, 0x4b, 0x65, 0xc8, 0x87, 0xf5, 0x1e, 0x65, 0x81, 0x69, 0xbe, 0x2c, - 0x91, 0x20, 0x68, 0x71, 0x63, 0x89, 0x84, 0x2f, 0xaf, 0xd5, 0xe4, 0x04, 0x09, 0xa3, 0x56, 0xeb, - 0xcd, 0x9a, 0xaa, 0x6c, 0xad, 0x37, 0xeb, 0x6b, 0x35, 0x39, 0x19, 0x0a, 0xec, 0x6f, 0xa6, 0x32, - 0x0f, 0xcb, 0x17, 0x4a, 0xbf, 0x9c, 0x84, 0x89, 0xe8, 0x4a, 0x0d, 0x3d, 0x0f, 0xa7, 0x45, 0xc2, - 0xc5, 0xc5, 0x9e, 0x7a, 0xc7, 0x70, 0xe8, 0x84, 0xec, 0x68, 0xcc, 0x39, 0xfa, 0xfa, 0x33, 0xcd, - 0xa1, 0x1a, 0xd8, 0x7b, 0xaf, 0xe1, 0x90, 0xe9, 0xd6, 0xd1, 0x3c, 0xb4, 0x0a, 0x73, 0xa6, 0xa5, - 0xba, 0x9e, 0x66, 0xb6, 0x34, 0xa7, 0xa5, 0x06, 0xa9, 0x2e, 0x55, 0xd3, 0x75, 0xec, 0xba, 0x16, - 0x73, 0x84, 0x3e, 0x95, 0xfb, 0x4c, 0xab, 0xc1, 0x81, 0x03, 0x0f, 0x51, 0xe1, 0xa0, 0x3d, 0xea, - 0x9b, 0x1c, 0xa4, 0xbe, 0x67, 0x21, 0xdb, 0xd1, 0x6c, 0x15, 0x9b, 0x9e, 0x73, 0x48, 0xe3, 0xf3, - 0x8c, 0x92, 0xe9, 0x68, 0x76, 0x8d, 0x7c, 0xa3, 0x6d, 0x78, 0x38, 0x00, 0x55, 0xdb, 0x78, 0x4f, - 0xd3, 0x0f, 0x55, 0x1a, 0x8c, 0xd3, 0xb4, 0x81, 0xaa, 0x5b, 0xe6, 0x6e, 0xdb, 0xd0, 0x3d, 0x97, - 0xda, 0x07, 0x66, 0xe3, 0x4a, 0x01, 0xc6, 0x2a, 0x45, 0xb8, 0xe9, 0x5a, 0x26, 0x8d, 0xc1, 0x17, - 0x05, 0xf4, 0x57, 0x65, 0xf9, 0x75, 0x33, 0x95, 0x49, 0xc9, 0x63, 0x37, 0x53, 0x99, 0x31, 0x39, - 0x7d, 0x33, 0x95, 0x49, 0xcb, 0xe3, 0x37, 0x53, 0x99, 0x8c, 0x9c, 0xbd, 0x99, 0xca, 0x64, 0x65, - 0x28, 0xfd, 0x42, 0x06, 0xf2, 0xe1, 0x95, 0x01, 0x59, 0x68, 0xe9, 0xd4, 0x37, 0x4a, 0xd4, 0x7a, - 0x3e, 0x70, 0xe4, 0x3a, 0x62, 0x61, 0x91, 0x38, 0xcd, 0x72, 0x9a, 0x85, 0xe1, 0x0a, 0xc3, 0x24, - 0x01, 0x0b, 0x51, 0x6b, 0xcc, 0xc2, 0x9e, 0x8c, 0xc2, 0xbf, 0xd0, 0x0a, 0xa4, 0x5f, 0x77, 0x29, - 0xed, 0x34, 0xa5, 0xfd, 0xe0, 0xd1, 0xb4, 0x6f, 0x36, 0x28, 0xf1, 0xec, 0xcd, 0x86, 0xba, 0xbe, - 0xa1, 0xac, 0x55, 0x56, 0x15, 0x8e, 0x8e, 0xce, 0x40, 0xaa, 0xad, 0xbd, 0x71, 0x18, 0x75, 0xaf, - 0xb4, 0x08, 0x2d, 0x40, 0xb1, 0x6b, 0xde, 0xc6, 0x8e, 0xb1, 0x6b, 0x90, 0xa1, 0x22, 0x50, 0xc5, - 0x30, 0xd4, 0x44, 0x50, 0xbb, 0x4a, 0xe0, 0x47, 0x54, 0x8f, 0x33, 0x90, 0xba, 0x83, 0xb5, 0x5b, - 0x51, 0x27, 0x48, 0x8b, 0xd0, 0x45, 0xc8, 0xb7, 0xf0, 0x4e, 0x77, 0x4f, 0x75, 0x70, 0x4b, 0xd3, - 0xbd, 0xa8, 0xe9, 0xcf, 0xd1, 0x2a, 0x85, 0xd6, 0xa0, 0x97, 0x21, 0x4b, 0xc6, 0xc8, 0xa4, 0x63, - 0x3c, 0x49, 0x45, 0xf0, 0xf8, 0xd1, 0x22, 0xe0, 0x43, 0x2c, 0x90, 0x94, 0x00, 0x1f, 0x2d, 0x43, - 0xda, 0xd3, 0x9c, 0x3d, 0xec, 0x51, 0xcb, 0x3f, 0x11, 0x93, 0xfc, 0x88, 0xa1, 0xd4, 0xa4, 0x18, - 0x74, 0x4d, 0xcb, 0xb1, 0xdf, 0x45, 0x2b, 0x73, 0x19, 0xc6, 0xa8, 0x7a, 0x20, 0x00, 0xae, 0x20, - 0xf2, 0x09, 0x94, 0x81, 0xd4, 0xe2, 0x86, 0x42, 0x2c, 0x8d, 0x0c, 0x79, 0x56, 0xaa, 0x6e, 0xd6, - 0x6b, 0x8b, 0x35, 0x39, 0x51, 0x7a, 0x0a, 0xd2, 0x6c, 0xcc, 0x89, 0x15, 0xf2, 0x47, 0x5d, 0x3e, - 0xc1, 0x3f, 0x39, 0x0d, 0x49, 0xd4, 0x6e, 0xad, 0x55, 0x6b, 0x8a, 0x9c, 0x28, 0x6d, 0x41, 0xb1, - 0x47, 0x4e, 0xe8, 0x24, 0x4c, 0x2a, 0xb5, 0x66, 0x6d, 0x9d, 0xac, 0xb3, 0xd4, 0xad, 0xf5, 0x97, - 0xd7, 0x37, 0xde, 0xbb, 0x2e, 0x9f, 0x88, 0x16, 0x0b, 0x93, 0x26, 0xa1, 0x69, 0x90, 0x83, 0xe2, - 0xc6, 0xc6, 0x96, 0x42, 0xb9, 0xf9, 0xae, 0x04, 0xc8, 0xbd, 0x52, 0x43, 0xa7, 0x61, 0xaa, 0x59, - 0x51, 0x56, 0x6a, 0x4d, 0x95, 0xad, 0x1d, 0x7d, 0xd2, 0xd3, 0x20, 0x87, 0x2b, 0x96, 0xeb, 0x74, - 0x69, 0x3c, 0x07, 0x67, 0xc3, 0xa5, 0xb5, 0x57, 0x9a, 0xb5, 0xf5, 0x06, 0x6d, 0xbc, 0xb2, 0xbe, - 0x42, 0xec, 0x6b, 0x0f, 0x3d, 0xb1, 0x5a, 0x4d, 0x12, 0x56, 0xa3, 0xf4, 0x6a, 0xab, 0x4b, 0x72, - 0xaa, 0xb7, 0x78, 0x63, 0xbd, 0xb6, 0xb1, 0x2c, 0x8f, 0xf5, 0xb6, 0x4e, 0x57, 0xb0, 0x69, 0x34, - 0x0b, 0xa7, 0x7a, 0x4b, 0xd5, 0xda, 0x7a, 0x53, 0x79, 0x55, 0x1e, 0xef, 0x6d, 0xb8, 0x51, 0x53, - 0xb6, 0xeb, 0x8b, 0x35, 0x39, 0x83, 0x4e, 0x01, 0x8a, 0x72, 0xd4, 0xbc, 0xb1, 0xb1, 0x24, 0x67, - 0xfb, 0x2c, 0x4a, 0xc9, 0x85, 0x7c, 0x78, 0x19, 0xf9, 0xd5, 0xc9, 0x25, 0x7d, 0x30, 0x01, 0xb9, - 0xd0, 0xb2, 0x90, 0xc4, 0xf3, 0x5a, 0xbb, 0x6d, 0xdd, 0x51, 0xb5, 0xb6, 0xa1, 0xb9, 0xdc, 0xde, - 0x00, 0x2d, 0xaa, 0x90, 0x92, 0x51, 0xe7, 0xf7, 0xe8, 0x16, 0x3e, 0xfd, 0x37, 0xd1, 0xc2, 0x8f, - 0xc9, 0xe9, 0xd2, 0x47, 0x25, 0x90, 0x7b, 0xd7, 0x7b, 0x3d, 0xdd, 0x97, 0x06, 0x75, 0xff, 0xab, - 0x32, 0x76, 0x1f, 0x91, 0x60, 0x22, 0xba, 0xc8, 0xeb, 0x61, 0xef, 0xfc, 0x5f, 0x2b, 0x7b, 0xbf, - 0x9f, 0x80, 0x42, 0x64, 0x69, 0x37, 0x2a, 0x77, 0xef, 0x83, 0x49, 0xa3, 0x85, 0x3b, 0xb6, 0xe5, - 0x61, 0x53, 0x3f, 0x54, 0xdb, 0xf8, 0x36, 0x6e, 0xcf, 0x94, 0xa8, 0x51, 0xbe, 0x7c, 0xf4, 0xe2, - 0x71, 0xa1, 0x1e, 0xe0, 0xad, 0x12, 0xb4, 0xf2, 0x54, 0x7d, 0xa9, 0xb6, 0xb6, 0xb9, 0xd1, 0xac, - 0xad, 0x2f, 0xbe, 0x2a, 0xac, 0x8b, 0x22, 0x1b, 0x3d, 0x60, 0xef, 0xa2, 0xd1, 0xde, 0x04, 0xb9, - 0x97, 0x29, 0x62, 0x2b, 0x62, 0xd8, 0x92, 0x4f, 0xa0, 0x29, 0x28, 0xae, 0x6f, 0xa8, 0x8d, 0xfa, - 0x52, 0x4d, 0xad, 0x2d, 0x2f, 0xd7, 0x16, 0x9b, 0x0d, 0x96, 0x0e, 0xf4, 0xa1, 0x9b, 0x72, 0x22, - 0x2c, 0xe2, 0x0f, 0x25, 0x61, 0x2a, 0x86, 0x13, 0x54, 0xe1, 0x0b, 0x79, 0x96, 0x5b, 0x78, 0x7c, - 0x14, 0xee, 0x17, 0x48, 0x28, 0xbd, 0xa9, 0x39, 0x1e, 0x5f, 0xf7, 0x3f, 0x02, 0x44, 0x4a, 0xa6, - 0x47, 0x3c, 0xbb, 0xc3, 0xd3, 0xac, 0x6c, 0x75, 0x5f, 0x0c, 0xca, 0x59, 0xa6, 0xf5, 0x31, 0x40, - 0xb6, 0xe5, 0x1a, 0x9e, 0x71, 0x1b, 0xab, 0x86, 0x29, 0x72, 0xb2, 0x64, 0xb5, 0x9f, 0x52, 0x64, - 0x51, 0x53, 0x37, 0x3d, 0x1f, 0xda, 0xc4, 0x7b, 0x5a, 0x0f, 0x34, 0x89, 0x3c, 0x92, 0x8a, 0x2c, - 0x6a, 0x7c, 0xe8, 0xf3, 0x90, 0x6f, 0x59, 0x5d, 0xb2, 0x04, 0x62, 0x70, 0xc4, 0x5a, 0x48, 0x4a, - 0x8e, 0x95, 0xf9, 0x20, 0x7c, 0x71, 0x1b, 0x24, 0x83, 0xf3, 0x4a, 0x8e, 0x95, 0x31, 0x90, 0x0b, - 0x50, 0xd4, 0xf6, 0xf6, 0x1c, 0x42, 0x5c, 0x10, 0x62, 0xcb, 0xf5, 0x09, 0xbf, 0x98, 0x02, 0xce, - 0xde, 0x84, 0x8c, 0x90, 0x03, 0x89, 0x60, 0x89, 0x24, 0x54, 0x9b, 0xe5, 0xa0, 0x12, 0x17, 0xb3, - 0x4a, 0xc6, 0x14, 0x95, 0xe7, 0x21, 0x6f, 0xb8, 0x6a, 0xb0, 0xb7, 0x95, 0x98, 0x4f, 0x5c, 0xcc, - 0x28, 0x39, 0xc3, 0xf5, 0xf7, 0x05, 0x4a, 0x1f, 0x4f, 0xc0, 0x44, 0x74, 0xd7, 0x0e, 0x2d, 0x41, - 0xa6, 0x6d, 0xe9, 0x1a, 0x55, 0x2d, 0xb6, 0x65, 0x7c, 0x71, 0xc8, 0x46, 0xdf, 0xc2, 0x2a, 0x87, - 0x57, 0x7c, 0xcc, 0xd9, 0xdf, 0x94, 0x20, 0x23, 0x8a, 0xd1, 0x29, 0x48, 0xd9, 0x9a, 0xb7, 0x4f, - 0xc9, 0x8d, 0x55, 0x13, 0xb2, 0xa4, 0xd0, 0x6f, 0x52, 0xee, 0xda, 0x9a, 0x49, 0x55, 0x80, 0x97, - 0x93, 0x6f, 0x32, 0xae, 0x6d, 0xac, 0xb5, 0x68, 0x2e, 0xc0, 0xea, 0x74, 0xb0, 0xe9, 0xb9, 0x62, - 0x5c, 0x79, 0xf9, 0x22, 0x2f, 0x46, 0x8f, 0xc2, 0xa4, 0xe7, 0x68, 0x46, 0x3b, 0x02, 0x9b, 0xa2, - 0xb0, 0xb2, 0xa8, 0xf0, 0x81, 0xcb, 0x70, 0x46, 0xd0, 0x6d, 0x61, 0x4f, 0xd3, 0xf7, 0x71, 0x2b, - 0x40, 0x4a, 0xd3, 0x9c, 0xdf, 0x69, 0x0e, 0xb0, 0xc4, 0xeb, 0x05, 0x6e, 0xe9, 0x33, 0x09, 0x98, - 0x14, 0xd9, 0x8b, 0x96, 0x2f, 0xac, 0x35, 0x00, 0xcd, 0x34, 0x2d, 0x2f, 0x2c, 0xae, 0x7e, 0x55, - 0xee, 0xc3, 0x5b, 0xa8, 0xf8, 0x48, 0x4a, 0x88, 0xc0, 0xec, 0x1f, 0x4b, 0x00, 0x41, 0xd5, 0x40, - 0xb9, 0xcd, 0x41, 0x8e, 0xef, 0xc9, 0xd2, 0x8d, 0x7d, 0x96, 0xf0, 0x02, 0x56, 0xb4, 0x6c, 0xb4, - 0x69, 0x5a, 0x72, 0x07, 0xef, 0x19, 0x26, 0xdf, 0x4f, 0x61, 0x1f, 0x22, 0x2d, 0x99, 0x0a, 0xb6, - 0xa7, 0x14, 0xc8, 0xb8, 0xb8, 0xa3, 0x99, 0x9e, 0xa1, 0xf3, 0x1d, 0x92, 0xeb, 0xc7, 0x62, 0x7e, - 0xa1, 0xc1, 0xb1, 0x15, 0x9f, 0x4e, 0xe9, 0x22, 0x64, 0x44, 0x29, 0x09, 0xfc, 0xd6, 0x37, 0xd6, - 0x6b, 0xf2, 0x09, 0x34, 0x0e, 0xc9, 0x46, 0xad, 0x29, 0x4b, 0x64, 0xd9, 0x59, 0x59, 0xad, 0x57, - 0x1a, 0x72, 0xa2, 0xfa, 0xff, 0xc0, 0x94, 0x6e, 0x75, 0x7a, 0x1b, 0xac, 0xca, 0x3d, 0x29, 0x3f, - 0xf7, 0x86, 0xf4, 0xda, 0xe3, 0x1c, 0x68, 0xcf, 0x6a, 0x6b, 0xe6, 0xde, 0x82, 0xe5, 0xec, 0x05, - 0xc7, 0x22, 0xc8, 0xea, 0xc0, 0x0d, 0x1d, 0x8e, 0xb0, 0x77, 0xfe, 0x4a, 0x92, 0x7e, 0x34, 0x91, - 0x5c, 0xd9, 0xac, 0xfe, 0x64, 0x62, 0x76, 0x85, 0x21, 0x6e, 0x8a, 0xee, 0x28, 0x78, 0xb7, 0x8d, - 0x75, 0xc2, 0x3c, 0xfc, 0xc9, 0xa3, 0x30, 0xbd, 0x67, 0xed, 0x59, 0x94, 0xd2, 0x65, 0xf2, 0x17, - 0x3f, 0x57, 0x91, 0xf5, 0x4b, 0x67, 0x87, 0x1e, 0xc2, 0x28, 0xaf, 0xc3, 0x14, 0x07, 0x56, 0xe9, - 0xf6, 0x2d, 0x4b, 0x2e, 0xa0, 0x23, 0x33, 0xdb, 0x33, 0x3f, 0xfb, 0x87, 0x34, 0x2a, 0x51, 0x26, - 0x39, 0x2a, 0xa9, 0x63, 0xf9, 0x87, 0xb2, 0x02, 0x27, 0x23, 0xf4, 0x98, 0x8d, 0xc0, 0xce, 0x10, - 0x8a, 0xff, 0x86, 0x53, 0x9c, 0x0a, 0x51, 0x6c, 0x70, 0xd4, 0xf2, 0x22, 0x14, 0x8e, 0x43, 0xeb, - 0x57, 0x39, 0xad, 0x3c, 0x0e, 0x13, 0x59, 0x81, 0x22, 0x25, 0xa2, 0x77, 0x5d, 0xcf, 0xea, 0x50, - 0x03, 0x7c, 0x34, 0x99, 0x7f, 0xfb, 0x87, 0x6c, 0xd2, 0x4e, 0x10, 0xb4, 0x45, 0x1f, 0xab, 0x5c, - 0x06, 0xba, 0x63, 0xdd, 0xc2, 0x7a, 0x7b, 0x08, 0x85, 0x5f, 0xe3, 0x8c, 0xf8, 0xf0, 0xe5, 0x6d, - 0x98, 0x26, 0x7f, 0x53, 0xfb, 0x18, 0xe6, 0x64, 0x78, 0x1a, 0x7c, 0xe6, 0x3f, 0x7e, 0x33, 0xb3, - 0x0b, 0x53, 0x3e, 0x81, 0x10, 0x4f, 0xa1, 0x51, 0xdc, 0xc3, 0x9e, 0x87, 0x1d, 0x57, 0xd5, 0xda, - 0x71, 0xec, 0x85, 0xf2, 0x88, 0x33, 0x3f, 0xf4, 0xc5, 0xe8, 0x28, 0xae, 0x30, 0xcc, 0x4a, 0xbb, - 0x5d, 0xde, 0x82, 0xd3, 0x31, 0x5a, 0x31, 0x02, 0xcd, 0x0f, 0x71, 0x9a, 0xd3, 0x7d, 0x9a, 0x41, - 0xc8, 0x6e, 0x82, 0x28, 0xf7, 0xc7, 0x72, 0x04, 0x9a, 0x1f, 0xe6, 0x34, 0x11, 0xc7, 0x15, 0x43, - 0x4a, 0x28, 0xde, 0x84, 0xc9, 0xdb, 0xd8, 0xd9, 0xb1, 0x5c, 0x9e, 0xbb, 0x1d, 0x81, 0xdc, 0x47, - 0x38, 0xb9, 0x22, 0x47, 0xa4, 0xc9, 0x5c, 0x42, 0xeb, 0x59, 0xc8, 0xec, 0x6a, 0x3a, 0x1e, 0x81, - 0xc4, 0x5d, 0x4e, 0x62, 0x9c, 0xc0, 0x13, 0xd4, 0x0a, 0xe4, 0xf7, 0x2c, 0xee, 0x22, 0x87, 0xa3, - 0x7f, 0x94, 0xa3, 0xe7, 0x04, 0x0e, 0x27, 0x61, 0x5b, 0x76, 0xb7, 0x4d, 0xfc, 0xe7, 0x70, 0x12, - 0x3f, 0x2c, 0x48, 0x08, 0x1c, 0x4e, 0xe2, 0x18, 0x62, 0xfd, 0x98, 0x20, 0xe1, 0x86, 0xe4, 0xf9, - 0x12, 0xe4, 0x2c, 0xb3, 0x7d, 0x68, 0x99, 0xa3, 0x30, 0xf1, 0x23, 0x9c, 0x02, 0x70, 0x14, 0x42, - 0xe0, 0x39, 0xc8, 0x8e, 0x3a, 0x10, 0x3f, 0xfe, 0x45, 0x31, 0x3d, 0xc4, 0x08, 0xac, 0x40, 0x51, - 0x18, 0x28, 0xc3, 0x32, 0x47, 0x20, 0xf1, 0x13, 0x9c, 0xc4, 0x44, 0x08, 0x8d, 0x77, 0xc3, 0xc3, - 0xae, 0xb7, 0x87, 0x47, 0x21, 0xf2, 0x71, 0xd1, 0x0d, 0x8e, 0xc2, 0x45, 0xb9, 0x83, 0x4d, 0x7d, - 0x7f, 0x34, 0x0a, 0x9f, 0x10, 0xa2, 0x14, 0x38, 0x84, 0xc4, 0x22, 0x14, 0x3a, 0x9a, 0xe3, 0xee, - 0x6b, 0xed, 0x91, 0x86, 0xe3, 0x93, 0x9c, 0x46, 0xde, 0x47, 0xe2, 0x12, 0xe9, 0x9a, 0xc7, 0x21, - 0xf3, 0x93, 0x42, 0x22, 0x21, 0x34, 0x3e, 0xf5, 0x5c, 0x8f, 0x26, 0xba, 0x8f, 0x43, 0xed, 0xa7, - 0xc4, 0xd4, 0x63, 0xb8, 0x6b, 0x61, 0x8a, 0xcf, 0x41, 0xd6, 0x35, 0xde, 0x18, 0x89, 0xcc, 0x3f, - 0x14, 0x23, 0x4d, 0x11, 0x08, 0xf2, 0xab, 0x70, 0x26, 0xd6, 0x4d, 0x8c, 0x40, 0xec, 0x1f, 0x71, - 0x62, 0xa7, 0x62, 0x5c, 0x05, 0x37, 0x09, 0xc7, 0x25, 0xf9, 0xd3, 0xc2, 0x24, 0xe0, 0x1e, 0x5a, - 0x9b, 0x64, 0xd1, 0xe2, 0x6a, 0xbb, 0xc7, 0x93, 0xda, 0x3f, 0x16, 0x52, 0x63, 0xb8, 0x11, 0xa9, - 0x35, 0xe1, 0x14, 0xa7, 0x78, 0xbc, 0x71, 0xfd, 0x19, 0x61, 0x58, 0x19, 0xf6, 0x56, 0x74, 0x74, - 0xbf, 0x16, 0x66, 0x7d, 0x71, 0x8a, 0xe8, 0xd8, 0x55, 0x3b, 0x9a, 0x3d, 0x02, 0xe5, 0x9f, 0xe5, - 0x94, 0x85, 0xc5, 0xf7, 0xc3, 0x6b, 0x77, 0x4d, 0xb3, 0x09, 0xf1, 0x57, 0x60, 0x46, 0x10, 0xef, - 0x9a, 0x0e, 0xd6, 0xad, 0x3d, 0xd3, 0x78, 0x03, 0xb7, 0x46, 0x20, 0xfd, 0x4f, 0x7a, 0x86, 0x6a, - 0x2b, 0x84, 0x4e, 0x28, 0xd7, 0x41, 0xf6, 0x63, 0x15, 0xd5, 0xe8, 0xd8, 0x96, 0xe3, 0x0d, 0xa1, - 0xf8, 0x29, 0x31, 0x52, 0x3e, 0x5e, 0x9d, 0xa2, 0x95, 0x6b, 0xc0, 0x4e, 0x7f, 0x8c, 0xaa, 0x92, - 0x9f, 0xe6, 0x84, 0x0a, 0x01, 0x16, 0x37, 0x1c, 0xba, 0xd5, 0xb1, 0x35, 0x67, 0x14, 0xfb, 0xf7, - 0x73, 0xc2, 0x70, 0x70, 0x14, 0x6e, 0x38, 0x48, 0x44, 0x47, 0xbc, 0xfd, 0x08, 0x14, 0x7e, 0x5e, - 0x18, 0x0e, 0x81, 0xc3, 0x49, 0x88, 0x80, 0x61, 0x04, 0x12, 0xbf, 0x20, 0x48, 0x08, 0x1c, 0x42, - 0xe2, 0x3d, 0x81, 0xa3, 0x75, 0xf0, 0x9e, 0xe1, 0x7a, 0x0e, 0x0b, 0xc9, 0x8f, 0x26, 0xf5, 0x8b, - 0x5f, 0x8c, 0x06, 0x61, 0x4a, 0x08, 0x95, 0x58, 0x22, 0xbe, 0xf5, 0x41, 0x97, 0x6c, 0xc3, 0x19, - 0xfb, 0x25, 0x61, 0x89, 0x42, 0x68, 0x84, 0xb7, 0x50, 0x84, 0x48, 0xc4, 0xae, 0x93, 0x85, 0xca, - 0x08, 0xe4, 0xfe, 0x69, 0x0f, 0x73, 0x0d, 0x81, 0x4b, 0x68, 0x86, 0xe2, 0x9f, 0xae, 0x79, 0x0b, - 0x1f, 0x8e, 0xa4, 0x9d, 0xbf, 0xdc, 0x13, 0xff, 0x6c, 0x31, 0x4c, 0x66, 0x43, 0x8a, 0x3d, 0xf1, - 0x14, 0x1a, 0x76, 0xd6, 0x6f, 0xe6, 0x9b, 0xbe, 0xc4, 0xfb, 0x1b, 0x0d, 0xa7, 0xca, 0xab, 0x44, - 0xc9, 0xa3, 0x41, 0xcf, 0x70, 0x62, 0xdf, 0xfc, 0x25, 0x5f, 0xcf, 0x23, 0x31, 0x4f, 0x79, 0x19, - 0x0a, 0x91, 0x80, 0x67, 0x38, 0xa9, 0x6f, 0xe1, 0xa4, 0xf2, 0xe1, 0x78, 0xa7, 0xfc, 0x14, 0xa4, - 0x48, 0xf0, 0x32, 0x1c, 0xfd, 0x5b, 0x39, 0x3a, 0x05, 0x2f, 0xbf, 0x00, 0x19, 0x11, 0xb4, 0x0c, - 0x47, 0xfd, 0x36, 0x8e, 0xea, 0xa3, 0x10, 0x74, 0x11, 0xb0, 0x0c, 0x47, 0xff, 0xff, 0x04, 0xba, - 0x40, 0x21, 0xe8, 0xa3, 0x8b, 0xf0, 0x5f, 0x7e, 0x67, 0x8a, 0x3b, 0x1d, 0x21, 0xbb, 0xe7, 0x60, - 0x9c, 0x47, 0x2a, 0xc3, 0xb1, 0xbf, 0x83, 0x37, 0x2e, 0x30, 0xca, 0x4f, 0xc3, 0xd8, 0x88, 0x02, - 0xff, 0x6e, 0x8e, 0xca, 0xe0, 0xcb, 0x8b, 0x90, 0x0b, 0x45, 0x27, 0xc3, 0xd1, 0xbf, 0x87, 0xa3, - 0x87, 0xb1, 0x08, 0xeb, 0x3c, 0x3a, 0x19, 0x4e, 0xe0, 0xff, 0x17, 0xac, 0x73, 0x0c, 0x22, 0x36, - 0x11, 0x98, 0x0c, 0xc7, 0xfe, 0x80, 0x90, 0xba, 0x40, 0x29, 0xbf, 0x04, 0x59, 0xdf, 0xd9, 0x0c, - 0xc7, 0xff, 0x5e, 0x8e, 0x1f, 0xe0, 0x10, 0x09, 0x84, 0x9c, 0xdd, 0x70, 0x12, 0x7f, 0x4f, 0x48, - 0x20, 0x84, 0x45, 0xa6, 0x51, 0x6f, 0x00, 0x33, 0x9c, 0xd2, 0xf7, 0x89, 0x69, 0xd4, 0x13, 0xbf, - 0x90, 0xd1, 0xa4, 0x36, 0x7f, 0x38, 0x89, 0xef, 0x17, 0xa3, 0x49, 0xe1, 0x09, 0x1b, 0xbd, 0x11, - 0xc1, 0x70, 0x1a, 0x3f, 0x28, 0xd8, 0xe8, 0x09, 0x08, 0xca, 0x9b, 0x80, 0xfa, 0xa3, 0x81, 0xe1, - 0xf4, 0x3e, 0xc8, 0xe9, 0x4d, 0xf6, 0x05, 0x03, 0xe5, 0xf7, 0xc2, 0xa9, 0xf8, 0x48, 0x60, 0x38, - 0xd5, 0x1f, 0xfa, 0x52, 0xcf, 0xda, 0x2d, 0x1c, 0x08, 0x94, 0x9b, 0x81, 0x4b, 0x09, 0x47, 0x01, - 0xc3, 0xc9, 0x7e, 0xe8, 0x4b, 0x51, 0xc3, 0x1d, 0x0e, 0x02, 0xca, 0x15, 0x80, 0xc0, 0x01, 0x0f, - 0xa7, 0xf5, 0x11, 0x4e, 0x2b, 0x84, 0x44, 0xa6, 0x06, 0xf7, 0xbf, 0xc3, 0xf1, 0xef, 0x8a, 0xa9, - 0xc1, 0x31, 0xc8, 0xd4, 0x10, 0xae, 0x77, 0x38, 0xf6, 0x47, 0xc5, 0xd4, 0x10, 0x28, 0x44, 0xb3, - 0x43, 0xde, 0x6d, 0x38, 0x85, 0x1f, 0x11, 0x9a, 0x1d, 0xc2, 0x2a, 0xaf, 0xc3, 0x64, 0x9f, 0x43, - 0x1c, 0x4e, 0xea, 0x47, 0x39, 0x29, 0xb9, 0xd7, 0x1f, 0x86, 0x9d, 0x17, 0x77, 0x86, 0xc3, 0xa9, - 0xfd, 0x58, 0x8f, 0xf3, 0xe2, 0xbe, 0xb0, 0xfc, 0x1c, 0x64, 0xcc, 0x6e, 0xbb, 0x4d, 0x26, 0x0f, - 0x3a, 0xfa, 0x7c, 0xee, 0xcc, 0x7f, 0xf9, 0x0a, 0x97, 0x8e, 0x40, 0x28, 0x3f, 0x05, 0x63, 0xb8, - 0xb3, 0x83, 0x5b, 0xc3, 0x30, 0xff, 0xe8, 0x2b, 0xc2, 0x60, 0x12, 0xe8, 0xf2, 0x4b, 0x00, 0x2c, - 0x35, 0x42, 0x37, 0xce, 0x87, 0xe0, 0xfe, 0xf1, 0x57, 0xf8, 0x81, 0xb8, 0x00, 0x25, 0x20, 0xc0, - 0x8e, 0xd7, 0x1d, 0x4d, 0xe0, 0x8b, 0x51, 0x02, 0x74, 0x44, 0x9e, 0x85, 0xf1, 0xd7, 0x5d, 0xcb, - 0xf4, 0xb4, 0xbd, 0x61, 0xd8, 0x7f, 0xc2, 0xb1, 0x05, 0x3c, 0x11, 0x58, 0xc7, 0x72, 0xb0, 0xa7, - 0xed, 0xb9, 0xc3, 0x70, 0xff, 0x94, 0xe3, 0xfa, 0x08, 0x04, 0x59, 0xd7, 0x5c, 0x6f, 0x94, 0x7e, - 0xff, 0x57, 0x81, 0x2c, 0x10, 0x08, 0xd3, 0xe4, 0xef, 0x5b, 0xf8, 0x70, 0x18, 0xee, 0x9f, 0x09, - 0xa6, 0x39, 0x7c, 0xf9, 0x05, 0xc8, 0x92, 0x3f, 0xd9, 0x29, 0xd7, 0x21, 0xc8, 0x7f, 0xce, 0x91, - 0x03, 0x0c, 0xd2, 0xb2, 0xeb, 0xb5, 0x3c, 0x63, 0xb8, 0xb0, 0xff, 0x82, 0x8f, 0xb4, 0x80, 0x2f, - 0x57, 0x20, 0xe7, 0x7a, 0xad, 0x56, 0x97, 0xc7, 0xa7, 0x43, 0xd0, 0xff, 0xdb, 0x57, 0xfc, 0x94, - 0x85, 0x8f, 0x43, 0x46, 0xfb, 0xce, 0x2d, 0xcf, 0xb6, 0xe8, 0x7e, 0xcb, 0x30, 0x0a, 0x5f, 0xe2, - 0x14, 0x42, 0x28, 0xe5, 0x45, 0xc8, 0x93, 0xbe, 0x38, 0xd8, 0xc6, 0x74, 0x73, 0x6c, 0x08, 0x89, - 0x2f, 0x73, 0x01, 0x44, 0x90, 0xaa, 0xdf, 0xf8, 0x6b, 0x9f, 0x3d, 0x27, 0x7d, 0xe6, 0xb3, 0xe7, - 0xa4, 0xdf, 0xff, 0xec, 0x39, 0xe9, 0x03, 0x9f, 0x3b, 0x77, 0xe2, 0x33, 0x9f, 0x3b, 0x77, 0xe2, - 0xb7, 0x3f, 0x77, 0xee, 0x44, 0x7c, 0x96, 0x18, 0x56, 0xac, 0x15, 0x8b, 0xe5, 0x87, 0x5f, 0x7b, - 0x68, 0xcf, 0xf0, 0xf6, 0xbb, 0x3b, 0x0b, 0xba, 0xd5, 0xb9, 0xac, 0x5b, 0x6e, 0xc7, 0x72, 0x2f, - 0x47, 0xf3, 0xba, 0xf4, 0x2f, 0xf8, 0x1f, 0x12, 0x59, 0x33, 0x47, 0xd3, 0xb9, 0x9a, 0x79, 0x38, - 0xe8, 0x32, 0xdd, 0x75, 0x48, 0x56, 0xcc, 0x43, 0x74, 0x86, 0x19, 0x38, 0xb5, 0xeb, 0xb4, 0xf9, - 0x51, 0xcb, 0x71, 0xf2, 0xbd, 0xe5, 0xb4, 0xd1, 0x74, 0x70, 0x1e, 0x5a, 0xba, 0x98, 0xe7, 0x87, - 0x9c, 0xab, 0xdf, 0x23, 0x1d, 0xaf, 0x27, 0x99, 0x8a, 0x79, 0x48, 0x3b, 0xb2, 0x29, 0xbd, 0xf6, - 0xd8, 0xd0, 0x3c, 0xf7, 0x2d, 0xd3, 0xba, 0x63, 0x12, 0xb6, 0xed, 0x1d, 0x91, 0xe3, 0x3e, 0xd7, - 0x9b, 0xe3, 0x7e, 0x2f, 0x6e, 0xb7, 0x5f, 0x26, 0x70, 0x4d, 0x82, 0xb2, 0x93, 0x66, 0xa7, 0xfa, - 0xe1, 0xfb, 0x12, 0x70, 0xae, 0x2f, 0x9d, 0xcd, 0x95, 0x60, 0x90, 0x10, 0xca, 0x90, 0x59, 0x12, - 0xba, 0x35, 0x03, 0xe3, 0x2e, 0xd6, 0x2d, 0xb3, 0xe5, 0x52, 0x41, 0x24, 0x15, 0xf1, 0x49, 0x04, - 0x61, 0x6a, 0xa6, 0xe5, 0xf2, 0xc3, 0xca, 0xec, 0xa3, 0xfa, 0xe1, 0x63, 0x0a, 0xa2, 0x20, 0x5a, - 0x12, 0xd2, 0xb8, 0x32, 0xa2, 0x34, 0x44, 0x27, 0x22, 0x99, 0xff, 0x51, 0xa5, 0xf2, 0x83, 0x09, - 0x98, 0xeb, 0x95, 0x0a, 0x99, 0x59, 0xae, 0xa7, 0x75, 0xec, 0x41, 0x62, 0x79, 0x0e, 0xb2, 0x4d, - 0x01, 0x73, 0x6c, 0xb9, 0xdc, 0x3d, 0xa6, 0x5c, 0x26, 0xfc, 0xa6, 0x84, 0x60, 0xae, 0x8e, 0x28, - 0x18, 0xbf, 0x1f, 0xf7, 0x24, 0x99, 0x0f, 0x67, 0xe1, 0x0c, 0x9b, 0x4e, 0x2a, 0x9b, 0x4a, 0xec, - 0x83, 0xcb, 0x24, 0x1f, 0xae, 0x1a, 0xbe, 0x4f, 0x52, 0x7a, 0x19, 0xa6, 0xea, 0xc4, 0x5a, 0x90, - 0x55, 0x50, 0xb0, 0xc3, 0x13, 0x7b, 0x9e, 0x7b, 0x3e, 0x12, 0xf0, 0xf3, 0xfd, 0xad, 0x70, 0x51, - 0xe9, 0x9b, 0x24, 0x90, 0x1b, 0xba, 0xd6, 0xd6, 0x9c, 0xb7, 0x4b, 0x0a, 0x3d, 0x0d, 0xc0, 0x8e, - 0x7b, 0xf8, 0x17, 0xf7, 0x26, 0xae, 0xce, 0x2c, 0x84, 0x3b, 0xb7, 0xc0, 0x5a, 0xa2, 0x27, 0xa8, - 0xb2, 0x14, 0x96, 0xfc, 0x79, 0xe9, 0x15, 0x80, 0xa0, 0x02, 0x9d, 0x85, 0xd3, 0x8d, 0xc5, 0xca, - 0x6a, 0x45, 0x11, 0x87, 0x84, 0x1a, 0x9b, 0xb5, 0xc5, 0xfa, 0x72, 0xbd, 0xb6, 0x24, 0x9f, 0x40, - 0xa7, 0x00, 0x85, 0x2b, 0xfd, 0x43, 0x4d, 0x27, 0x61, 0x32, 0x5c, 0xce, 0x6e, 0xa9, 0x24, 0xca, - 0x37, 0xa0, 0xc8, 0x8e, 0xd0, 0xab, 0x5a, 0xab, 0x85, 0x5b, 0xaa, 0x61, 0xa2, 0x21, 0x27, 0xd2, - 0x67, 0x7e, 0xfd, 0x3f, 0x8d, 0xd1, 0xae, 0x15, 0x18, 0x62, 0x85, 0xe0, 0xd5, 0x4d, 0x12, 0x73, - 0x1a, 0x1d, 0xbb, 0x8d, 0xe9, 0x1e, 0xa6, 0x6a, 0x08, 0xf9, 0x0f, 0x0f, 0x67, 0x08, 0xbd, 0xe4, - 0xc5, 0xac, 0x32, 0x15, 0xa0, 0xfb, 0xa3, 0x57, 0x7e, 0x19, 0x64, 0x71, 0xd4, 0xd3, 0x67, 0x70, - 0x28, 0xc5, 0xdf, 0xe0, 0x1c, 0x8a, 0x6c, 0x86, 0x60, 0x71, 0x15, 0x26, 0x35, 0x5d, 0xc7, 0x76, - 0x84, 0xbf, 0x21, 0x1e, 0x44, 0xf4, 0x56, 0xe6, 0x98, 0x01, 0x6b, 0x4f, 0x43, 0xda, 0xa5, 0x83, - 0x32, 0x8c, 0x84, 0x60, 0x87, 0x83, 0x97, 0x6b, 0x30, 0xc1, 0xd4, 0xc0, 0xef, 0xd1, 0x10, 0x02, - 0xff, 0x8e, 0x13, 0xc8, 0x53, 0x34, 0xd1, 0x1b, 0x13, 0x26, 0x49, 0x5c, 0xab, 0x39, 0x38, 0xd4, - 0x9b, 0xa3, 0xb3, 0x28, 0xff, 0xec, 0x53, 0x4f, 0xd0, 0x7d, 0xe3, 0xf3, 0x51, 0xa5, 0x8b, 0x99, - 0x2c, 0x8a, 0xcc, 0x69, 0x07, 0xfd, 0xc5, 0x30, 0x21, 0xda, 0xe3, 0xfd, 0x3e, 0xba, 0xb1, 0x7f, - 0xce, 0x1b, 0x3b, 0x17, 0xa7, 0xe1, 0xa1, 0x96, 0x0a, 0x9c, 0x2a, 0xab, 0x28, 0x57, 0xa1, 0xb0, - 0x6b, 0xb4, 0x43, 0xc3, 0x7d, 0x74, 0x2b, 0xff, 0xe2, 0x53, 0x4f, 0xb0, 0x89, 0x46, 0x90, 0xb8, - 0x68, 0xaa, 0xb5, 0x41, 0x56, 0xef, 0xb5, 0x47, 0xfb, 0xfd, 0x37, 0xfb, 0xef, 0x71, 0x4a, 0xfd, - 0xb9, 0x30, 0xab, 0x81, 0x75, 0x4a, 0xc1, 0xa4, 0xd6, 0x31, 0x4c, 0xeb, 0x32, 0xfd, 0x97, 0x5b, - 0xa5, 0x31, 0xfa, 0x31, 0xc2, 0xb6, 0xed, 0x75, 0x66, 0x2c, 0x86, 0xeb, 0xed, 0x9f, 0x7f, 0xd7, - 0x4f, 0x8c, 0x05, 0x06, 0xa5, 0xbc, 0x16, 0xe8, 0x3e, 0x36, 0x75, 0xab, 0x35, 0x52, 0x1e, 0xe7, - 0x2f, 0x04, 0x0d, 0x91, 0x01, 0xac, 0x71, 0xd4, 0xf2, 0xf3, 0x90, 0xf1, 0xc9, 0x0c, 0x8b, 0xdd, - 0x04, 0x11, 0x1f, 0x83, 0x44, 0x6e, 0x4c, 0x69, 0x47, 0x89, 0xd3, 0xbf, 0x24, 0xf0, 0x99, 0x0d, - 0x5b, 0x27, 0xbd, 0x59, 0x81, 0x89, 0x96, 0x65, 0x7a, 0xaa, 0xd5, 0x31, 0x3c, 0xdc, 0xb1, 0xbd, - 0xa1, 0x91, 0xef, 0x97, 0x19, 0x91, 0x8c, 0x52, 0x20, 0x78, 0x1b, 0x02, 0x8d, 0x70, 0xc2, 0x6e, - 0x32, 0x8e, 0xc2, 0xc9, 0x5f, 0xfa, 0x9c, 0x50, 0x1c, 0xc2, 0xc9, 0x3d, 0x69, 0x87, 0xdb, 0xba, - 0xc5, 0xdd, 0x9d, 0x77, 0xc0, 0xb4, 0xc0, 0xd7, 0x8e, 0x8f, 0x27, 0xe1, 0x1c, 0x07, 0xde, 0xd1, - 0x5c, 0x7c, 0xf9, 0xf6, 0x95, 0x1d, 0xec, 0x69, 0x57, 0x2e, 0xeb, 0x96, 0x21, 0x62, 0x9d, 0x29, - 0xee, 0xce, 0x48, 0xfd, 0x02, 0xaf, 0x9f, 0x8d, 0x3d, 0x10, 0x30, 0x3b, 0xd8, 0x0d, 0xce, 0xf6, - 0xeb, 0x60, 0xa9, 0x0d, 0xa9, 0x45, 0xcb, 0x30, 0x89, 0xf7, 0x6f, 0x61, 0xd3, 0xea, 0x70, 0x87, - 0xc4, 0x3e, 0xd0, 0x0d, 0x48, 0x6b, 0x1d, 0xab, 0x6b, 0x7a, 0xcc, 0x19, 0x55, 0x9f, 0xf8, 0xb5, - 0xb7, 0xe6, 0x4e, 0xfc, 0xce, 0x5b, 0x73, 0x27, 0x19, 0x59, 0xb7, 0x75, 0x6b, 0xc1, 0xb0, 0x2e, - 0x77, 0x34, 0x6f, 0x9f, 0x98, 0x80, 0xdf, 0xfa, 0xf4, 0xe3, 0xc0, 0xdb, 0xab, 0x9b, 0xde, 0x27, - 0x3e, 0xff, 0x33, 0x97, 0x24, 0x85, 0xe3, 0x97, 0x53, 0x5f, 0xf8, 0xd8, 0x9c, 0x54, 0xb2, 0x61, - 0x7c, 0x09, 0xeb, 0x47, 0x34, 0x58, 0xef, 0x69, 0xf0, 0x0a, 0x6f, 0xf0, 0x6c, 0x7f, 0x83, 0xec, - 0x48, 0xe3, 0x12, 0xd6, 0x43, 0xcd, 0x2e, 0x61, 0x3d, 0xda, 0x62, 0x75, 0xe9, 0xb7, 0xff, 0xe0, - 0xdc, 0x89, 0xf7, 0x7f, 0xf6, 0xdc, 0x89, 0x81, 0x43, 0x56, 0x1a, 0x3e, 0x64, 0xfe, 0x48, 0x7d, - 0x32, 0x45, 0x46, 0xaa, 0x83, 0xbd, 0x9d, 0x5d, 0xef, 0xb2, 0xee, 0x1c, 0xda, 0x9e, 0x75, 0xf9, - 0xf6, 0x15, 0x32, 0x73, 0xad, 0x5d, 0x3e, 0x52, 0x48, 0xd4, 0x2f, 0xb0, 0xfa, 0x85, 0xdb, 0x03, - 0x06, 0xaa, 0xb4, 0x0b, 0x63, 0x9b, 0x04, 0x91, 0x88, 0xc2, 0xb3, 0x3c, 0xad, 0xcd, 0x23, 0x32, - 0xf6, 0x41, 0x4a, 0xd9, 0x4d, 0xdb, 0x04, 0x2b, 0x35, 0xc4, 0x25, 0xdb, 0x36, 0xd6, 0x76, 0xd9, - 0x85, 0xa5, 0x24, 0x0d, 0xe5, 0x33, 0xa4, 0x80, 0xde, 0x4d, 0x9a, 0x86, 0x31, 0xad, 0xcb, 0x0e, - 0x15, 0x25, 0x49, 0x8c, 0x4f, 0x3f, 0x4a, 0xab, 0x30, 0xce, 0xcf, 0x16, 0x20, 0x19, 0x92, 0xb7, - 0xf0, 0x21, 0x6d, 0x27, 0xaf, 0x90, 0x3f, 0xd1, 0x65, 0x18, 0xa3, 0xdc, 0xf3, 0x9b, 0x98, 0x67, - 0x16, 0xfa, 0xd9, 0x5f, 0xa0, 0x5c, 0x2a, 0x0c, 0xae, 0x74, 0x13, 0x32, 0x4b, 0x16, 0x51, 0xa0, - 0x28, 0xb9, 0x2c, 0x23, 0x47, 0x99, 0xb6, 0xbb, 0x7c, 0xf8, 0x14, 0xf6, 0x81, 0x4e, 0x41, 0x9a, - 0xdd, 0x60, 0xe3, 0x27, 0xa3, 0xf8, 0x57, 0x69, 0x11, 0xc6, 0x29, 0xed, 0x0d, 0x9b, 0xc4, 0x43, - 0xfe, 0xa1, 0xfe, 0x2c, 0xbf, 0xcf, 0xcc, 0xc9, 0x27, 0x02, 0x6e, 0x11, 0xa4, 0x5a, 0x9a, 0xa7, - 0xf1, 0x8e, 0xd3, 0xbf, 0x4b, 0x2f, 0x41, 0x86, 0x13, 0x71, 0xd1, 0x93, 0x90, 0xb4, 0x6c, 0x97, - 0x9f, 0x6d, 0x3a, 0x3b, 0xb0, 0x2f, 0x1b, 0x76, 0x35, 0x45, 0x14, 0x4b, 0x21, 0xd0, 0xd5, 0xb5, - 0x81, 0xaa, 0xf1, 0x64, 0x44, 0x35, 0xc4, 0xb0, 0x8b, 0x3f, 0x34, 0xdb, 0xb8, 0xdc, 0xaf, 0x0c, - 0xbe, 0xae, 0xfc, 0x77, 0x09, 0xee, 0x8f, 0xd1, 0x95, 0x5b, 0xf8, 0xd0, 0x3d, 0xb6, 0xaa, 0xbc, - 0x02, 0xd9, 0x4d, 0xfa, 0xba, 0xc8, 0xcb, 0xf8, 0x10, 0xcd, 0xc2, 0x38, 0x6e, 0x5d, 0x7d, 0xea, - 0xa9, 0x2b, 0xcf, 0xb2, 0x81, 0xbc, 0x71, 0x42, 0x11, 0x05, 0xe8, 0x1c, 0x64, 0x5d, 0xac, 0xdb, - 0x57, 0x9f, 0xba, 0x7e, 0xeb, 0x0a, 0x13, 0xdc, 0x8d, 0x13, 0x4a, 0x50, 0x54, 0xce, 0x90, 0x49, - 0xf1, 0x85, 0x1f, 0x99, 0x93, 0xaa, 0x63, 0x90, 0x74, 0xbb, 0x9d, 0x77, 0xab, 0xf3, 0x7f, 0x99, - 0x86, 0xf3, 0x7e, 0x35, 0x33, 0x7b, 0xb7, 0xaf, 0x5c, 0xbe, 0xad, 0xb5, 0x8d, 0x96, 0x16, 0xbc, - 0x09, 0x33, 0xe9, 0x0b, 0x80, 0x82, 0x0c, 0xec, 0xff, 0xec, 0xd1, 0x82, 0x2c, 0x7d, 0x5a, 0x82, - 0xfc, 0xb6, 0xa0, 0xdd, 0xc0, 0x1e, 0x7a, 0x1e, 0xc0, 0x6f, 0x4b, 0xa8, 0xc3, 0x7d, 0x0b, 0x7d, - 0xad, 0x2d, 0xf8, 0x48, 0x4a, 0x08, 0x1e, 0x3d, 0x03, 0x19, 0xdb, 0xb1, 0x6c, 0xcb, 0xe5, 0x37, - 0x5a, 0x87, 0xe1, 0xfa, 0xd0, 0xe8, 0x31, 0x40, 0x74, 0xf2, 0xaa, 0xb7, 0x2d, 0xcf, 0x30, 0xf7, - 0x54, 0xdb, 0xba, 0xc3, 0x1f, 0x0a, 0x48, 0x2a, 0x32, 0xad, 0xd9, 0xa6, 0x15, 0x9b, 0xa4, 0xbc, - 0xf4, 0x29, 0x09, 0xb2, 0x3e, 0x15, 0xb2, 0x32, 0xd3, 0x5a, 0x2d, 0x07, 0xbb, 0x2e, 0x9f, 0x9f, - 0xe2, 0x13, 0x3d, 0x0f, 0xe3, 0x76, 0x77, 0x47, 0x15, 0x73, 0x21, 0x77, 0xf5, 0xfe, 0x58, 0xcd, - 0x16, 0x0a, 0xc2, 0x75, 0x3b, 0x6d, 0x77, 0x77, 0x88, 0xba, 0x9c, 0x87, 0x7c, 0x0c, 0x37, 0xb9, - 0xdb, 0x01, 0x23, 0xf4, 0x55, 0x1b, 0xde, 0x05, 0xd5, 0x76, 0x0c, 0xcb, 0x31, 0xbc, 0x43, 0x7a, - 0xf4, 0x2e, 0xa9, 0xc8, 0xa2, 0x62, 0x93, 0x97, 0x97, 0xda, 0x50, 0x6c, 0xd0, 0x40, 0x3b, 0x60, - 0xfd, 0x7a, 0xc0, 0xa0, 0x34, 0x02, 0x83, 0x03, 0x59, 0x4b, 0xf4, 0xb1, 0x76, 0xe9, 0x3f, 0x4b, - 0x90, 0xab, 0xb6, 0x2d, 0xfd, 0x56, 0x7d, 0x69, 0xb9, 0xad, 0xed, 0xa1, 0x2b, 0x70, 0xb2, 0xba, - 0xba, 0xb1, 0xf8, 0xb2, 0x5a, 0x5f, 0x52, 0x97, 0x57, 0x2b, 0x2b, 0xc1, 0x61, 0xdf, 0xd9, 0x53, - 0x6f, 0xde, 0x9d, 0x47, 0x21, 0xd8, 0x2d, 0x93, 0x2e, 0x2c, 0xd1, 0x65, 0x98, 0x8e, 0xa2, 0x54, - 0xaa, 0x8d, 0xda, 0x7a, 0x53, 0x96, 0x66, 0x4f, 0xbe, 0x79, 0x77, 0x7e, 0x32, 0x84, 0x51, 0xd9, - 0x71, 0xb1, 0xe9, 0xf5, 0x23, 0x2c, 0x6e, 0xac, 0xad, 0xd5, 0x9b, 0x72, 0xa2, 0x0f, 0x61, 0xd1, - 0xea, 0x74, 0x0c, 0x0f, 0x3d, 0x02, 0x93, 0x51, 0x84, 0xf5, 0xfa, 0xaa, 0x9c, 0x9c, 0x45, 0x6f, - 0xde, 0x9d, 0x9f, 0x08, 0x41, 0xaf, 0x1b, 0xed, 0xd9, 0xcc, 0xb7, 0xff, 0xd8, 0xb9, 0x13, 0x9f, - 0xf8, 0x07, 0xe7, 0xa4, 0xea, 0xea, 0xc0, 0x99, 0x77, 0x75, 0xf4, 0x99, 0x27, 0xa6, 0x96, 0x3f, - 0xf1, 0x3e, 0x9a, 0x80, 0x39, 0xbf, 0xf6, 0x36, 0x76, 0x5c, 0xc3, 0x32, 0xc9, 0x6c, 0x61, 0x6a, - 0xeb, 0x07, 0x13, 0x7c, 0x70, 0x38, 0xc0, 0x60, 0xc3, 0xf3, 0x02, 0x24, 0x2b, 0xb6, 0x8d, 0x66, - 0xe9, 0x8c, 0xf0, 0x2c, 0xdd, 0x62, 0x4e, 0x2a, 0xa5, 0xf8, 0xdf, 0xa4, 0xce, 0xb5, 0x76, 0xbd, - 0x3b, 0x9a, 0xe3, 0x3f, 0x2c, 0x21, 0xbe, 0x4b, 0xcf, 0x42, 0x76, 0xd1, 0x32, 0x5d, 0x6c, 0xba, - 0x5d, 0x9a, 0x60, 0xd8, 0x21, 0xc2, 0xe0, 0x14, 0xd8, 0x07, 0x31, 0xf2, 0x9a, 0x6d, 0x53, 0xcc, - 0x94, 0x42, 0xfe, 0xe4, 0x8e, 0x7b, 0x7d, 0xa0, 0x78, 0xae, 0x8d, 0x2e, 0x9e, 0x40, 0x00, 0xbe, - 0x80, 0xbe, 0xff, 0xfe, 0x90, 0x59, 0xf6, 0x2d, 0x53, 0x58, 0x3c, 0x31, 0x56, 0x69, 0x88, 0xd3, - 0x9f, 0x1d, 0x6e, 0xeb, 0x66, 0x87, 0x8d, 0xca, 0x00, 0xcb, 0x37, 0x2c, 0xdd, 0x53, 0x7a, 0x16, - 0x0a, 0x9b, 0x9a, 0xe3, 0x35, 0xb0, 0x77, 0x03, 0x6b, 0x2d, 0xec, 0x44, 0xa3, 0x89, 0x82, 0x88, - 0x26, 0x10, 0xa4, 0x68, 0xc8, 0xc0, 0x9c, 0x29, 0xfd, 0xbb, 0x64, 0x40, 0x8a, 0x9e, 0xbd, 0xf6, - 0x23, 0x0d, 0x8e, 0xc1, 0x22, 0x0d, 0x32, 0x5c, 0x87, 0x1e, 0x76, 0x45, 0xc2, 0x90, 0x7e, 0xa0, - 0xa7, 0x44, 0xbc, 0x90, 0x1c, 0x12, 0x2f, 0x70, 0x2b, 0xc4, 0xa3, 0x86, 0x0e, 0x8c, 0xf3, 0x89, - 0xe0, 0x73, 0x22, 0x05, 0x9c, 0xa0, 0x75, 0x28, 0xda, 0x9a, 0xe3, 0xd1, 0xcb, 0x98, 0xfb, 0xb4, - 0x1b, 0xdc, 0xd2, 0xcd, 0xc7, 0x18, 0xde, 0x48, 0x77, 0x79, 0x33, 0x05, 0x3b, 0x5c, 0x58, 0xfa, - 0x42, 0x0a, 0xd2, 0x5c, 0x1c, 0x2f, 0xc2, 0x38, 0x17, 0x38, 0xb7, 0x4d, 0xe7, 0x16, 0x62, 0xd4, - 0x7f, 0xc1, 0x57, 0x53, 0x4e, 0x50, 0x20, 0xa1, 0x87, 0x21, 0xa3, 0xef, 0x6b, 0x86, 0xa9, 0x1a, - 0x2d, 0x1e, 0x93, 0xe6, 0x3e, 0xfb, 0xd6, 0xdc, 0xf8, 0x22, 0x29, 0xab, 0x2f, 0x29, 0xe3, 0xb4, - 0xb2, 0xde, 0x22, 0x31, 0xce, 0x3e, 0x36, 0xf6, 0xf6, 0x3d, 0x6e, 0x60, 0xf9, 0x17, 0x7a, 0x06, - 0x52, 0x64, 0xc8, 0xf8, 0x65, 0xfd, 0xd9, 0xbe, 0xc5, 0x86, 0x9f, 0x2f, 0xab, 0x66, 0x48, 0xc3, - 0x1f, 0xf8, 0xbd, 0x39, 0x49, 0xa1, 0x18, 0x68, 0x09, 0x0a, 0x6d, 0xcd, 0xf5, 0x54, 0x3a, 0x4f, - 0x48, 0xf3, 0x63, 0x9c, 0x44, 0xbf, 0x48, 0xb8, 0x6c, 0x39, 0xef, 0x39, 0x82, 0xc6, 0x8a, 0x5a, - 0xe8, 0x22, 0xc8, 0x94, 0x8a, 0x4e, 0x4d, 0x15, 0x8b, 0x1b, 0xd3, 0x54, 0xf4, 0x13, 0xa4, 0x9c, - 0x59, 0x30, 0x1a, 0x3d, 0x9e, 0x85, 0x2c, 0xbd, 0x1f, 0x4c, 0x41, 0xd8, 0xa1, 0xff, 0x0c, 0x29, - 0xa0, 0x95, 0x17, 0xa0, 0x18, 0x78, 0x48, 0x06, 0x92, 0x61, 0x54, 0x82, 0x62, 0x0a, 0xf8, 0x04, - 0x4c, 0x9b, 0xf8, 0x80, 0x5e, 0x43, 0x88, 0x40, 0x67, 0x29, 0x34, 0x22, 0x75, 0xdb, 0x51, 0x8c, - 0x87, 0x60, 0x42, 0x17, 0xd2, 0x67, 0xb0, 0x40, 0x61, 0x0b, 0x7e, 0x29, 0x05, 0x3b, 0x03, 0x19, - 0xcd, 0xb6, 0x19, 0x40, 0x8e, 0x3b, 0x48, 0xdb, 0xa6, 0x55, 0x97, 0x60, 0x92, 0xf6, 0xd1, 0xc1, - 0x6e, 0xb7, 0xed, 0x71, 0x22, 0x79, 0x0a, 0x53, 0x24, 0x15, 0x0a, 0x2b, 0xa7, 0xb0, 0x0f, 0x40, - 0x01, 0xdf, 0x36, 0x5a, 0xd8, 0xd4, 0x31, 0x83, 0x2b, 0x50, 0xb8, 0xbc, 0x28, 0xa4, 0x40, 0x8f, - 0x80, 0xef, 0xf7, 0x54, 0xe1, 0x94, 0x27, 0x18, 0x3d, 0x51, 0x5e, 0x61, 0xc5, 0xa5, 0x19, 0x48, - 0x2d, 0x69, 0x9e, 0x46, 0xec, 0x98, 0x77, 0xc0, 0x62, 0x8d, 0xbc, 0x42, 0xfe, 0x2c, 0xfd, 0x52, - 0x12, 0x52, 0xdb, 0x96, 0x87, 0xd1, 0xb5, 0x50, 0x6c, 0x3b, 0x11, 0xab, 0xd2, 0x0d, 0x63, 0xcf, - 0xc4, 0xad, 0x35, 0x77, 0x2f, 0xf4, 0x9a, 0x4f, 0xa0, 0x50, 0x89, 0x88, 0x42, 0x4d, 0xc3, 0x98, - 0x63, 0x75, 0xcd, 0x96, 0x38, 0x2f, 0x4f, 0x3f, 0xd0, 0x32, 0x64, 0x7c, 0x3d, 0x49, 0x0d, 0xd5, - 0x93, 0x22, 0xd1, 0x13, 0xa2, 0xc6, 0xbc, 0x40, 0x19, 0xdf, 0xe1, 0xea, 0x52, 0x85, 0xac, 0x6f, - 0x61, 0x7c, 0x85, 0x1b, 0x45, 0x67, 0x03, 0x34, 0x12, 0x4e, 0xf8, 0xa3, 0xef, 0x8b, 0x8f, 0xe9, - 0x9c, 0xec, 0x57, 0x70, 0xf9, 0x45, 0x14, 0x8b, 0x3f, 0x2d, 0x34, 0x4e, 0x3b, 0x16, 0x28, 0x16, - 0x7b, 0x5e, 0xe8, 0x3e, 0xc8, 0xba, 0xc6, 0x9e, 0xa9, 0x79, 0x5d, 0x07, 0x73, 0xdd, 0x0b, 0x0a, - 0x48, 0x6d, 0x70, 0x79, 0x84, 0xe9, 0x5a, 0xe8, 0xc5, 0xb3, 0xcb, 0x30, 0x15, 0xbc, 0x35, 0x16, - 0x50, 0x61, 0x7a, 0x86, 0xfc, 0xaa, 0x86, 0xa8, 0x29, 0xfd, 0x2b, 0x09, 0xd2, 0xdc, 0xb9, 0x07, - 0xe3, 0x20, 0xc5, 0x8f, 0x43, 0x62, 0xd0, 0x38, 0x24, 0xdf, 0xd6, 0x38, 0x80, 0xcf, 0xa7, 0xcb, - 0x5f, 0x90, 0x89, 0x8b, 0x42, 0x19, 0x93, 0x0d, 0x63, 0x8f, 0xcf, 0xfd, 0x10, 0x56, 0xe9, 0x2d, - 0x89, 0xb8, 0x5f, 0x5e, 0x8f, 0xaa, 0x50, 0x10, 0x9c, 0xa9, 0xbb, 0x6d, 0x6d, 0x8f, 0xab, 0xe3, - 0xb9, 0xc1, 0xec, 0x91, 0x98, 0x45, 0xc9, 0x71, 0x8e, 0x68, 0xf4, 0x15, 0x3b, 0xb2, 0x89, 0x01, - 0x23, 0x1b, 0x51, 0xa5, 0xe4, 0xbd, 0xa9, 0x52, 0x64, 0xd0, 0x53, 0x3d, 0x83, 0x5e, 0xfa, 0x9c, - 0xc4, 0x1f, 0x3b, 0x6b, 0xb1, 0xcb, 0x2f, 0x7f, 0x6d, 0xa3, 0xf5, 0xb5, 0x5c, 0xbf, 0x5a, 0xb8, - 0xa5, 0xf6, 0x0d, 0xdb, 0x83, 0x31, 0x24, 0xa3, 0x5c, 0x07, 0xc3, 0x87, 0x04, 0x99, 0x46, 0x30, - 0x8c, 0x3f, 0x97, 0x80, 0xc9, 0x3e, 0xf8, 0xbf, 0x85, 0xc3, 0x19, 0x9d, 0xc3, 0x63, 0x23, 0xce, - 0xe1, 0xf4, 0xc0, 0x39, 0xfc, 0x73, 0x09, 0x9a, 0x19, 0xb0, 0x2d, 0x57, 0x6b, 0x7f, 0x55, 0x6c, - 0xf0, 0x59, 0xc8, 0xda, 0x56, 0x5b, 0x65, 0x35, 0xec, 0xe6, 0x52, 0xc6, 0xb6, 0xda, 0x4a, 0x9f, - 0xaa, 0x8d, 0xbd, 0x53, 0x06, 0x3a, 0xfd, 0x0e, 0x0c, 0xc3, 0x78, 0xef, 0xac, 0xf2, 0x20, 0xcf, - 0x64, 0xc1, 0x23, 0xa8, 0x2b, 0x44, 0x08, 0x34, 0x26, 0x93, 0x7a, 0x63, 0x3e, 0x9f, 0x6f, 0x06, - 0xaa, 0x70, 0x40, 0x82, 0xc2, 0xe2, 0x8d, 0xfe, 0xb4, 0x52, 0x8f, 0xe5, 0x52, 0x38, 0x60, 0xe9, - 0x83, 0x12, 0xc0, 0x2a, 0x11, 0x2e, 0xed, 0x31, 0x09, 0x7e, 0x5c, 0xca, 0x84, 0x1a, 0x69, 0x7b, - 0x6e, 0xe0, 0xc0, 0x71, 0x0e, 0xf2, 0x6e, 0x98, 0xf5, 0x25, 0x28, 0x04, 0x0a, 0xee, 0x62, 0xc1, - 0xce, 0xdc, 0x51, 0xcb, 0xf9, 0x06, 0xf6, 0x94, 0xfc, 0xed, 0xd0, 0x57, 0xe9, 0x5f, 0x4b, 0x90, - 0xa5, 0x5c, 0xad, 0x61, 0x4f, 0x8b, 0x0c, 0xa4, 0xf4, 0x36, 0x06, 0xf2, 0x7e, 0x00, 0x46, 0xc7, + // 11600 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x70, 0x23, 0x57, + 0x76, 0x1f, 0x3c, 0x0d, 0x80, 0x20, 0x70, 0x00, 0x10, 0xcd, 0x4b, 0xce, 0x0c, 0x87, 0x23, 0x0d, + 0x39, 0x18, 0x49, 0x33, 0x1a, 0x49, 0x1c, 0xcd, 0x48, 0x1a, 0x49, 0xd0, 0xcb, 0x00, 0x09, 0x72, + 0x30, 0xe2, 0x6b, 0x1b, 0x20, 0x57, 0x92, 0x1f, 0xed, 0x66, 0xe3, 0x92, 0x6c, 0x0d, 0xd0, 0xdd, + 0xdb, 0xdd, 0x98, 0x21, 0xf5, 0x7d, 0xf5, 0xd5, 0xfa, 0xf3, 0xe3, 0xb3, 0xe5, 0xc7, 0xb7, 0x8e, + 0x1d, 0x7b, 0xbd, 0xbb, 0xb3, 0x5e, 0xdb, 0xb1, 0x77, 0xd7, 0x4e, 0x1c, 0x3b, 0xbb, 0x7e, 0xc5, + 0x95, 0x87, 0x53, 0x89, 0x63, 0x3b, 0x15, 0x67, 0xed, 0x3f, 0x12, 0x97, 0xab, 0xac, 0xd8, 0xbb, + 0xae, 0xda, 0x8d, 0xbd, 0x76, 0x6c, 0x67, 0xd7, 0xe5, 0xca, 0x56, 0x52, 0xa9, 0xfb, 0xea, 0x07, + 0xd0, 0x20, 0xc0, 0x91, 0xb4, 0x76, 0xec, 0xfc, 0x33, 0xc3, 0xbe, 0xf7, 0x9c, 0x5f, 0xdf, 0x7b, + 0xee, 0xb9, 0xe7, 0x9c, 0x7b, 0xee, 0xed, 0x0b, 0xf8, 0x83, 0x2a, 0xcc, 0xef, 0x59, 0xd6, 0x5e, + 0x1b, 0x5f, 0xb1, 0x1d, 0xcb, 0xb3, 0x76, 0xba, 0xbb, 0x57, 0x5a, 0xd8, 0xd5, 0x1d, 0xc3, 0xf6, + 0x2c, 0x67, 0x81, 0x96, 0xa1, 0x22, 0xa3, 0x58, 0x10, 0x14, 0xa5, 0x35, 0x98, 0x5c, 0x36, 0xda, + 0x78, 0xc9, 0x27, 0x6c, 0x60, 0x0f, 0x3d, 0x03, 0xa9, 0x5d, 0xa3, 0x8d, 0x67, 0xa4, 0xf9, 0xe4, + 0xa5, 0xdc, 0xb5, 0x07, 0x16, 0x7a, 0x98, 0x16, 0xa2, 0x1c, 0x9b, 0xa4, 0x58, 0xa1, 0x1c, 0xa5, + 0xff, 0x99, 0x82, 0xa9, 0x98, 0x5a, 0x84, 0x20, 0x65, 0x6a, 0x1d, 0x82, 0x28, 0x5d, 0xca, 0x2a, + 0xf4, 0x6f, 0x34, 0x03, 0xe3, 0xb6, 0xa6, 0xdf, 0xd2, 0xf6, 0xf0, 0x4c, 0x82, 0x16, 0x8b, 0x47, + 0x74, 0x0e, 0xa0, 0x85, 0x6d, 0x6c, 0xb6, 0xb0, 0xa9, 0x1f, 0xce, 0x24, 0xe7, 0x93, 0x97, 0xb2, + 0x4a, 0xa8, 0x04, 0x3d, 0x02, 0x93, 0x76, 0x77, 0xa7, 0x6d, 0xe8, 0x6a, 0x88, 0x0c, 0xe6, 0x93, + 0x97, 0xc6, 0x14, 0x99, 0x55, 0x2c, 0x05, 0xc4, 0x17, 0xa1, 0x78, 0x07, 0x6b, 0xb7, 0xc2, 0xa4, + 0x39, 0x4a, 0x3a, 0x41, 0x8a, 0x43, 0x84, 0x8b, 0x90, 0xef, 0x60, 0xd7, 0xd5, 0xf6, 0xb0, 0xea, + 0x1d, 0xda, 0x78, 0x26, 0x45, 0x7b, 0x3f, 0xdf, 0xd7, 0xfb, 0xde, 0x9e, 0xe7, 0x38, 0x57, 0xf3, + 0xd0, 0xc6, 0xa8, 0x02, 0x59, 0x6c, 0x76, 0x3b, 0x0c, 0x61, 0x6c, 0x80, 0xfc, 0x6a, 0x66, 0xb7, + 0xd3, 0x8b, 0x92, 0x21, 0x6c, 0x1c, 0x62, 0xdc, 0xc5, 0xce, 0x6d, 0x43, 0xc7, 0x33, 0x69, 0x0a, + 0x70, 0xb1, 0x0f, 0xa0, 0xc1, 0xea, 0x7b, 0x31, 0x04, 0x1f, 0x5a, 0x84, 0x2c, 0x3e, 0xf0, 0xb0, + 0xe9, 0x1a, 0x96, 0x39, 0x33, 0x4e, 0x41, 0x1e, 0x8c, 0x19, 0x45, 0xdc, 0x6e, 0xf5, 0x42, 0x04, + 0x7c, 0xe8, 0x3a, 0x8c, 0x5b, 0xb6, 0x67, 0x58, 0xa6, 0x3b, 0x93, 0x99, 0x97, 0x2e, 0xe5, 0xae, + 0xdd, 0x17, 0xab, 0x08, 0x1b, 0x8c, 0x46, 0x11, 0xc4, 0xa8, 0x0e, 0xb2, 0x6b, 0x75, 0x1d, 0x1d, + 0xab, 0xba, 0xd5, 0xc2, 0xaa, 0x61, 0xee, 0x5a, 0x33, 0x59, 0x0a, 0x30, 0xd7, 0xdf, 0x11, 0x4a, + 0xb8, 0x68, 0xb5, 0x70, 0xdd, 0xdc, 0xb5, 0x94, 0x09, 0x37, 0xf2, 0x8c, 0x4e, 0x41, 0xda, 0x3d, + 0x34, 0x3d, 0xed, 0x60, 0x26, 0x4f, 0x35, 0x84, 0x3f, 0x11, 0xd5, 0xc1, 0x2d, 0x83, 0xbc, 0x6e, + 0xa6, 0xc0, 0x54, 0x87, 0x3f, 0x96, 0x7e, 0x29, 0x0d, 0xc5, 0x51, 0x94, 0xef, 0x39, 0x18, 0xdb, + 0x25, 0xfd, 0x9f, 0x49, 0x1c, 0x47, 0x3a, 0x8c, 0x27, 0x2a, 0xde, 0xf4, 0x3d, 0x8a, 0xb7, 0x02, + 0x39, 0x13, 0xbb, 0x1e, 0x6e, 0x31, 0x5d, 0x49, 0x8e, 0xa8, 0x6d, 0xc0, 0x98, 0xfa, 0x95, 0x2d, + 0x75, 0x4f, 0xca, 0xf6, 0x0a, 0x14, 0xfd, 0x26, 0xa9, 0x8e, 0x66, 0xee, 0x09, 0xad, 0xbd, 0x32, + 0xac, 0x25, 0x0b, 0x35, 0xc1, 0xa7, 0x10, 0x36, 0x65, 0x02, 0x47, 0x9e, 0xd1, 0x12, 0x80, 0x65, + 0x62, 0x6b, 0x57, 0x6d, 0x61, 0xbd, 0x3d, 0x93, 0x19, 0x20, 0xa5, 0x0d, 0x42, 0xd2, 0x27, 0x25, + 0x8b, 0x95, 0xea, 0x6d, 0xf4, 0x6c, 0xa0, 0x84, 0xe3, 0x03, 0x74, 0x68, 0x8d, 0x4d, 0xbf, 0x3e, + 0x3d, 0xdc, 0x82, 0x09, 0x07, 0x93, 0x19, 0x81, 0x5b, 0xbc, 0x67, 0x59, 0xda, 0x88, 0x85, 0xa1, + 0x3d, 0x53, 0x38, 0x1b, 0xeb, 0x58, 0xc1, 0x09, 0x3f, 0xa2, 0x0b, 0xe0, 0x17, 0xa8, 0x54, 0xad, + 0x80, 0xda, 0xa7, 0xbc, 0x28, 0x5c, 0xd7, 0x3a, 0x78, 0xf6, 0x0d, 0x98, 0x88, 0x8a, 0x07, 0x4d, + 0xc3, 0x98, 0xeb, 0x69, 0x8e, 0x47, 0xb5, 0x70, 0x4c, 0x61, 0x0f, 0x48, 0x86, 0x24, 0x36, 0x5b, + 0xd4, 0xfe, 0x8d, 0x29, 0xe4, 0x4f, 0xf4, 0x35, 0x41, 0x87, 0x93, 0xb4, 0xc3, 0x0f, 0xf5, 0x8f, + 0x68, 0x04, 0xb9, 0xb7, 0xdf, 0xb3, 0x4f, 0x43, 0x21, 0xd2, 0x81, 0x51, 0x5f, 0x5d, 0xfa, 0xbf, + 0xe1, 0x64, 0x2c, 0x34, 0x7a, 0x05, 0xa6, 0xbb, 0xa6, 0x61, 0x7a, 0xd8, 0xb1, 0x1d, 0x4c, 0x34, + 0x96, 0xbd, 0x6a, 0xe6, 0xf3, 0xe3, 0x03, 0x74, 0x6e, 0x2b, 0x4c, 0xcd, 0x50, 0x94, 0xa9, 0x6e, + 0x7f, 0xe1, 0xe5, 0x6c, 0xe6, 0x0b, 0xe3, 0xf2, 0xfb, 0xdf, 0xff, 0xfe, 0xf7, 0x27, 0x4a, 0xbf, + 0x92, 0x86, 0xe9, 0xb8, 0x39, 0x13, 0x3b, 0x7d, 0x4f, 0x41, 0xda, 0xec, 0x76, 0x76, 0xb0, 0x43, + 0x85, 0x34, 0xa6, 0xf0, 0x27, 0x54, 0x81, 0xb1, 0xb6, 0xb6, 0x83, 0xdb, 0x33, 0xa9, 0x79, 0xe9, + 0xd2, 0xc4, 0xb5, 0x47, 0x46, 0x9a, 0x95, 0x0b, 0xab, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0x45, 0x48, + 0x71, 0xe3, 0x4d, 0x10, 0x2e, 0x8f, 0x86, 0x40, 0xe6, 0x92, 0x42, 0xf9, 0xd0, 0x59, 0xc8, 0x92, + 0xff, 0x99, 0x6e, 0xa4, 0x69, 0x9b, 0x33, 0xa4, 0x80, 0xe8, 0x05, 0x9a, 0x85, 0x0c, 0x9d, 0x26, + 0x2d, 0x2c, 0x9c, 0x9e, 0xff, 0x4c, 0x14, 0xab, 0x85, 0x77, 0xb5, 0x6e, 0xdb, 0x53, 0x6f, 0x6b, + 0xed, 0x2e, 0xa6, 0x0a, 0x9f, 0x55, 0xf2, 0xbc, 0x70, 0x9b, 0x94, 0xa1, 0x39, 0xc8, 0xb1, 0x59, + 0x65, 0x98, 0x2d, 0x7c, 0x40, 0xed, 0xea, 0x98, 0xc2, 0x26, 0x5a, 0x9d, 0x94, 0x90, 0xd7, 0xbf, + 0xee, 0x5a, 0xa6, 0x50, 0x4d, 0xfa, 0x0a, 0x52, 0x40, 0x5f, 0xff, 0x74, 0xaf, 0x49, 0xbf, 0x3f, + 0xbe, 0x7b, 0x7d, 0x73, 0xe9, 0x22, 0x14, 0x29, 0xc5, 0x13, 0x7c, 0xe8, 0xb5, 0xf6, 0xcc, 0xe4, + 0xbc, 0x74, 0x29, 0xa3, 0x4c, 0xb0, 0xe2, 0x0d, 0x5e, 0x5a, 0xfa, 0xf9, 0x04, 0xa4, 0xa8, 0x61, + 0x29, 0x42, 0xae, 0xf9, 0xea, 0x66, 0x4d, 0x5d, 0xda, 0xd8, 0xaa, 0xae, 0xd6, 0x64, 0x09, 0x4d, + 0x00, 0xd0, 0x82, 0xe5, 0xd5, 0x8d, 0x4a, 0x53, 0x4e, 0xf8, 0xcf, 0xf5, 0xf5, 0xe6, 0xf5, 0x27, + 0xe5, 0xa4, 0xcf, 0xb0, 0xc5, 0x0a, 0x52, 0x61, 0x82, 0x27, 0xae, 0xc9, 0x63, 0x48, 0x86, 0x3c, + 0x03, 0xa8, 0xbf, 0x52, 0x5b, 0xba, 0xfe, 0xa4, 0x9c, 0x8e, 0x96, 0x3c, 0x71, 0x4d, 0x1e, 0x47, + 0x05, 0xc8, 0xd2, 0x92, 0xea, 0xc6, 0xc6, 0xaa, 0x9c, 0xf1, 0x31, 0x1b, 0x4d, 0xa5, 0xbe, 0xbe, + 0x22, 0x67, 0x7d, 0xcc, 0x15, 0x65, 0x63, 0x6b, 0x53, 0x06, 0x1f, 0x61, 0xad, 0xd6, 0x68, 0x54, + 0x56, 0x6a, 0x72, 0xce, 0xa7, 0xa8, 0xbe, 0xda, 0xac, 0x35, 0xe4, 0x7c, 0xa4, 0x59, 0x4f, 0x5c, + 0x93, 0x0b, 0xfe, 0x2b, 0x6a, 0xeb, 0x5b, 0x6b, 0xf2, 0x04, 0x9a, 0x84, 0x02, 0x7b, 0x85, 0x68, + 0x44, 0xb1, 0xa7, 0xe8, 0xfa, 0x93, 0xb2, 0x1c, 0x34, 0x84, 0xa1, 0x4c, 0x46, 0x0a, 0xae, 0x3f, + 0x29, 0xa3, 0xd2, 0x22, 0x8c, 0x51, 0x35, 0x44, 0x08, 0x26, 0x56, 0x2b, 0xd5, 0xda, 0xaa, 0xba, + 0xb1, 0xd9, 0xac, 0x6f, 0xac, 0x57, 0x56, 0x65, 0x29, 0x28, 0x53, 0x6a, 0xef, 0xd9, 0xaa, 0x2b, + 0xb5, 0x25, 0x39, 0x11, 0x2e, 0xdb, 0xac, 0x55, 0x9a, 0xb5, 0x25, 0x39, 0x59, 0xd2, 0x61, 0x3a, + 0xce, 0xa0, 0xc6, 0x4e, 0xa1, 0x90, 0x2e, 0x24, 0x06, 0xe8, 0x02, 0xc5, 0xea, 0xd5, 0x85, 0xd2, + 0xe7, 0x12, 0x30, 0x15, 0xe3, 0x54, 0x62, 0x5f, 0xf2, 0x12, 0x8c, 0x31, 0x5d, 0x66, 0x6e, 0xf6, + 0xe1, 0x58, 0xef, 0x44, 0x35, 0xbb, 0xcf, 0xd5, 0x52, 0xbe, 0x70, 0x10, 0x92, 0x1c, 0x10, 0x84, + 0x10, 0x88, 0x3e, 0x85, 0xfd, 0xfa, 0x3e, 0xe3, 0xcf, 0xfc, 0xe3, 0xf5, 0x51, 0xfc, 0x23, 0x2d, + 0x3b, 0x9e, 0x13, 0x18, 0x8b, 0x71, 0x02, 0xcf, 0xc1, 0x64, 0x1f, 0xd0, 0xc8, 0xc6, 0xf8, 0x9b, + 0x25, 0x98, 0x19, 0x24, 0x9c, 0x21, 0x26, 0x31, 0x11, 0x31, 0x89, 0xcf, 0xf5, 0x4a, 0xf0, 0xfc, + 0xe0, 0x41, 0xe8, 0x1b, 0xeb, 0x8f, 0x4b, 0x70, 0x2a, 0x3e, 0xd8, 0x8c, 0x6d, 0xc3, 0x8b, 0x90, + 0xee, 0x60, 0x6f, 0xdf, 0x12, 0x61, 0xd5, 0x43, 0x31, 0xce, 0x9a, 0x54, 0xf7, 0x0e, 0x36, 0xe7, + 0x0a, 0x7b, 0xfb, 0xe4, 0xa0, 0x88, 0x91, 0xb5, 0xa6, 0xaf, 0xa5, 0xdf, 0x91, 0x80, 0x93, 0xb1, + 0xe0, 0xb1, 0x0d, 0xbd, 0x1f, 0xc0, 0x30, 0xed, 0xae, 0xc7, 0x42, 0x27, 0x66, 0x89, 0xb3, 0xb4, + 0x84, 0x1a, 0x2f, 0x62, 0x65, 0xbb, 0x9e, 0x5f, 0x9f, 0xa4, 0xf5, 0xc0, 0x8a, 0x28, 0xc1, 0x33, + 0x41, 0x43, 0x53, 0xb4, 0xa1, 0xe7, 0x06, 0xf4, 0xb4, 0x4f, 0x31, 0x1f, 0x07, 0x59, 0x6f, 0x1b, + 0xd8, 0xf4, 0x54, 0xd7, 0x73, 0xb0, 0xd6, 0x31, 0xcc, 0x3d, 0xea, 0x6a, 0x32, 0xe5, 0xb1, 0x5d, + 0xad, 0xed, 0x62, 0xa5, 0xc8, 0xaa, 0x1b, 0xa2, 0x96, 0x70, 0x50, 0x05, 0x72, 0x42, 0x1c, 0xe9, + 0x08, 0x07, 0xab, 0xf6, 0x39, 0x4a, 0xdf, 0x9b, 0x85, 0x5c, 0x28, 0x34, 0x47, 0xe7, 0x21, 0xff, + 0xba, 0x76, 0x5b, 0x53, 0xc5, 0x72, 0x8b, 0x49, 0x22, 0x47, 0xca, 0x36, 0xf9, 0x92, 0xeb, 0x71, + 0x98, 0xa6, 0x24, 0x56, 0xd7, 0xc3, 0x8e, 0xaa, 0xb7, 0x35, 0xd7, 0xa5, 0x42, 0xcb, 0x50, 0x52, + 0x44, 0xea, 0x36, 0x48, 0xd5, 0xa2, 0xa8, 0x41, 0x4f, 0xc1, 0x14, 0xe5, 0xe8, 0x74, 0xdb, 0x9e, + 0x61, 0xb7, 0xb1, 0x4a, 0x16, 0x80, 0x2e, 0x75, 0x39, 0x7e, 0xcb, 0x26, 0x09, 0xc5, 0x1a, 0x27, + 0x20, 0x2d, 0x72, 0xd1, 0x12, 0xdc, 0x4f, 0xd9, 0xf6, 0xb0, 0x89, 0x1d, 0xcd, 0xc3, 0x2a, 0x7e, + 0x5f, 0x57, 0x6b, 0xbb, 0xaa, 0x66, 0xb6, 0xd4, 0x7d, 0xcd, 0xdd, 0x9f, 0x99, 0x26, 0x00, 0xd5, + 0xc4, 0x8c, 0xa4, 0x9c, 0x21, 0x84, 0x2b, 0x9c, 0xae, 0x46, 0xc9, 0x2a, 0x66, 0xeb, 0x86, 0xe6, + 0xee, 0xa3, 0x32, 0x9c, 0xa2, 0x28, 0xae, 0xe7, 0x18, 0xe6, 0x9e, 0xaa, 0xef, 0x63, 0xfd, 0x96, + 0xda, 0xf5, 0x76, 0x9f, 0x99, 0x39, 0x1b, 0x7e, 0x3f, 0x6d, 0x61, 0x83, 0xd2, 0x2c, 0x12, 0x92, + 0x2d, 0x6f, 0xf7, 0x19, 0xd4, 0x80, 0x3c, 0x19, 0x8c, 0x8e, 0xf1, 0x06, 0x56, 0x77, 0x2d, 0x87, + 0xfa, 0xd0, 0x89, 0x18, 0xd3, 0x14, 0x92, 0xe0, 0xc2, 0x06, 0x67, 0x58, 0xb3, 0x5a, 0xb8, 0x3c, + 0xd6, 0xd8, 0xac, 0xd5, 0x96, 0x94, 0x9c, 0x40, 0x59, 0xb6, 0x1c, 0xa2, 0x50, 0x7b, 0x96, 0x2f, + 0xe0, 0x1c, 0x53, 0xa8, 0x3d, 0x4b, 0x88, 0xf7, 0x29, 0x98, 0xd2, 0x75, 0xd6, 0x67, 0x43, 0x57, + 0xf9, 0x32, 0xcd, 0x9d, 0x91, 0x23, 0xc2, 0xd2, 0xf5, 0x15, 0x46, 0xc0, 0x75, 0xdc, 0x45, 0xcf, + 0xc2, 0xc9, 0x40, 0x58, 0x61, 0xc6, 0xc9, 0xbe, 0x5e, 0xf6, 0xb2, 0x3e, 0x05, 0x53, 0xf6, 0x61, + 0x3f, 0x23, 0x8a, 0xbc, 0xd1, 0x3e, 0xec, 0x65, 0x7b, 0x1a, 0xa6, 0xed, 0x7d, 0xbb, 0x9f, 0xef, + 0x72, 0x98, 0x0f, 0xd9, 0xfb, 0x76, 0x2f, 0xe3, 0x83, 0x74, 0xcd, 0xee, 0x60, 0x5d, 0xf3, 0x70, + 0x6b, 0xe6, 0x74, 0x98, 0x3c, 0x54, 0x81, 0x16, 0x40, 0xd6, 0x75, 0x15, 0x9b, 0xda, 0x4e, 0x1b, + 0xab, 0x9a, 0x83, 0x4d, 0xcd, 0x9d, 0x99, 0xa3, 0xc4, 0x29, 0xcf, 0xe9, 0x62, 0x65, 0x42, 0xd7, + 0x6b, 0xb4, 0xb2, 0x42, 0xeb, 0xd0, 0x65, 0x98, 0xb4, 0x76, 0x5e, 0xd7, 0x99, 0x46, 0xaa, 0xb6, + 0x83, 0x77, 0x8d, 0x83, 0x99, 0x07, 0xa8, 0x78, 0x8b, 0xa4, 0x82, 0xea, 0xe3, 0x26, 0x2d, 0x46, + 0x0f, 0x83, 0xac, 0xbb, 0xfb, 0x9a, 0x63, 0x53, 0x93, 0xec, 0xda, 0x9a, 0x8e, 0x67, 0x1e, 0x64, + 0xa4, 0xac, 0x7c, 0x5d, 0x14, 0x93, 0x19, 0xe1, 0xde, 0x31, 0x76, 0x3d, 0x81, 0x78, 0x91, 0xcd, + 0x08, 0x5a, 0xc6, 0xd1, 0x2e, 0x81, 0x4c, 0x24, 0x11, 0x79, 0xf1, 0x25, 0x4a, 0x36, 0x61, 0xef, + 0xdb, 0xe1, 0xf7, 0x5e, 0x80, 0x02, 0xa1, 0x0c, 0x5e, 0xfa, 0x30, 0x0b, 0xdc, 0xec, 0xfd, 0xd0, + 0x1b, 0x9f, 0x84, 0x53, 0x84, 0xa8, 0x83, 0x3d, 0xad, 0xa5, 0x79, 0x5a, 0x88, 0xfa, 0x51, 0x4a, + 0x4d, 0xc4, 0xbe, 0xc6, 0x2b, 0x23, 0xed, 0x74, 0xba, 0x3b, 0x87, 0xbe, 0x62, 0x3d, 0xc6, 0xda, + 0x49, 0xca, 0x84, 0x6a, 0xbd, 0x6b, 0xc1, 0x79, 0xa9, 0x0c, 0xf9, 0xb0, 0xde, 0xa3, 0x2c, 0x30, + 0xcd, 0x97, 0x25, 0x12, 0x04, 0x2d, 0x6e, 0x2c, 0x91, 0xf0, 0xe5, 0xb5, 0x9a, 0x9c, 0x20, 0x61, + 0xd4, 0x6a, 0xbd, 0x59, 0x53, 0x95, 0xad, 0xf5, 0x66, 0x7d, 0xad, 0x26, 0x27, 0x43, 0x81, 0xfd, + 0xcd, 0x54, 0xe6, 0x21, 0xf9, 0x62, 0xe9, 0x97, 0x93, 0x30, 0x11, 0x5d, 0xa9, 0xa1, 0xe7, 0xe1, + 0xb4, 0x48, 0xb8, 0xb8, 0xd8, 0x53, 0xef, 0x18, 0x0e, 0x9d, 0x90, 0x1d, 0x8d, 0x39, 0x47, 0x5f, + 0x7f, 0xa6, 0x39, 0x55, 0x03, 0x7b, 0xef, 0x35, 0x1c, 0x32, 0xdd, 0x3a, 0x9a, 0x87, 0x56, 0x61, + 0xce, 0xb4, 0x54, 0xd7, 0xd3, 0xcc, 0x96, 0xe6, 0xb4, 0xd4, 0x20, 0xd5, 0xa5, 0x6a, 0xba, 0x8e, + 0x5d, 0xd7, 0x62, 0x8e, 0xd0, 0x47, 0xb9, 0xcf, 0xb4, 0x1a, 0x9c, 0x38, 0xf0, 0x10, 0x15, 0x4e, + 0xda, 0xa3, 0xbe, 0xc9, 0x41, 0xea, 0x7b, 0x16, 0xb2, 0x1d, 0xcd, 0x56, 0xb1, 0xe9, 0x39, 0x87, + 0x34, 0x3e, 0xcf, 0x28, 0x99, 0x8e, 0x66, 0xd7, 0xc8, 0x33, 0xda, 0x86, 0x87, 0x02, 0x52, 0xb5, + 0x8d, 0xf7, 0x34, 0xfd, 0x50, 0xa5, 0xc1, 0x38, 0x4d, 0x1b, 0xa8, 0xba, 0x65, 0xee, 0xb6, 0x0d, + 0xdd, 0x73, 0xa9, 0x7d, 0x60, 0x36, 0xae, 0x14, 0x70, 0xac, 0x52, 0x86, 0x9b, 0xae, 0x65, 0xd2, + 0x18, 0x7c, 0x51, 0x50, 0x7f, 0x55, 0x96, 0x5f, 0x37, 0x53, 0x99, 0x94, 0x3c, 0x76, 0x33, 0x95, + 0x19, 0x93, 0xd3, 0x37, 0x53, 0x99, 0xb4, 0x3c, 0x7e, 0x33, 0x95, 0xc9, 0xc8, 0xd9, 0x9b, 0xa9, + 0x4c, 0x56, 0x86, 0xd2, 0x2f, 0x64, 0x20, 0x1f, 0x5e, 0x19, 0x90, 0x85, 0x96, 0x4e, 0x7d, 0xa3, + 0x44, 0xad, 0xe7, 0x85, 0x23, 0xd7, 0x11, 0x0b, 0x8b, 0xc4, 0x69, 0x96, 0xd3, 0x2c, 0x0c, 0x57, + 0x18, 0x27, 0x09, 0x58, 0x88, 0x5a, 0x63, 0x16, 0xf6, 0x64, 0x14, 0xfe, 0x84, 0x56, 0x20, 0xfd, + 0xba, 0x4b, 0xb1, 0xd3, 0x14, 0xfb, 0x81, 0xa3, 0xb1, 0x6f, 0x36, 0x28, 0x78, 0xf6, 0x66, 0x43, + 0x5d, 0xdf, 0x50, 0xd6, 0x2a, 0xab, 0x0a, 0x67, 0x47, 0x67, 0x20, 0xd5, 0xd6, 0xde, 0x38, 0x8c, + 0xba, 0x57, 0x5a, 0x84, 0x16, 0xa0, 0xd8, 0x35, 0x6f, 0x63, 0xc7, 0xd8, 0x35, 0xc8, 0x50, 0x11, + 0xaa, 0x62, 0x98, 0x6a, 0x22, 0xa8, 0x5d, 0x25, 0xf4, 0x23, 0xaa, 0xc7, 0x19, 0x48, 0xdd, 0xc1, + 0xda, 0xad, 0xa8, 0x13, 0xa4, 0x45, 0xe8, 0x12, 0xe4, 0x5b, 0x78, 0xa7, 0xbb, 0xa7, 0x3a, 0xb8, + 0xa5, 0xe9, 0x5e, 0xd4, 0xf4, 0xe7, 0x68, 0x95, 0x42, 0x6b, 0xd0, 0xcb, 0x90, 0x25, 0x63, 0x64, + 0xd2, 0x31, 0x9e, 0xa4, 0x22, 0x78, 0xec, 0x68, 0x11, 0xf0, 0x21, 0x16, 0x4c, 0x4a, 0xc0, 0x8f, + 0x96, 0x21, 0xed, 0x69, 0xce, 0x1e, 0xf6, 0xa8, 0xe5, 0x9f, 0x88, 0x49, 0x7e, 0xc4, 0x20, 0x35, + 0x29, 0x07, 0x5d, 0xd3, 0x72, 0xee, 0x77, 0xd1, 0xca, 0x5c, 0x81, 0x31, 0xaa, 0x1e, 0x08, 0x80, + 0x2b, 0x88, 0x7c, 0x02, 0x65, 0x20, 0xb5, 0xb8, 0xa1, 0x10, 0x4b, 0x23, 0x43, 0x9e, 0x95, 0xaa, + 0x9b, 0xf5, 0xda, 0x62, 0x4d, 0x4e, 0x94, 0x9e, 0x82, 0x34, 0x1b, 0x73, 0x62, 0x85, 0xfc, 0x51, + 0x97, 0x4f, 0xf0, 0x47, 0x8e, 0x21, 0x89, 0xda, 0xad, 0xb5, 0x6a, 0x4d, 0x91, 0x13, 0xa5, 0x2d, + 0x28, 0xf6, 0xc8, 0x09, 0x9d, 0x84, 0x49, 0xa5, 0xd6, 0xac, 0xad, 0x93, 0x75, 0x96, 0xba, 0xb5, + 0xfe, 0xf2, 0xfa, 0xc6, 0x7b, 0xd7, 0xe5, 0x13, 0xd1, 0x62, 0x61, 0xd2, 0x24, 0x34, 0x0d, 0x72, + 0x50, 0xdc, 0xd8, 0xd8, 0x52, 0x68, 0x6b, 0xbe, 0x2b, 0x01, 0x72, 0xaf, 0xd4, 0xd0, 0x69, 0x98, + 0x6a, 0x56, 0x94, 0x95, 0x5a, 0x53, 0x65, 0x6b, 0x47, 0x1f, 0x7a, 0x1a, 0xe4, 0x70, 0xc5, 0x72, + 0x9d, 0x2e, 0x8d, 0xe7, 0xe0, 0x6c, 0xb8, 0xb4, 0xf6, 0x4a, 0xb3, 0xb6, 0xde, 0xa0, 0x2f, 0xaf, + 0xac, 0xaf, 0x10, 0xfb, 0xda, 0x83, 0x27, 0x56, 0xab, 0x49, 0xd2, 0xd4, 0x28, 0x5e, 0x6d, 0x75, + 0x49, 0x4e, 0xf5, 0x16, 0x6f, 0xac, 0xd7, 0x36, 0x96, 0xe5, 0xb1, 0xde, 0xb7, 0xd3, 0x15, 0x6c, + 0x1a, 0xcd, 0xc2, 0xa9, 0xde, 0x52, 0xb5, 0xb6, 0xde, 0x54, 0x5e, 0x95, 0xc7, 0x7b, 0x5f, 0xdc, + 0xa8, 0x29, 0xdb, 0xf5, 0xc5, 0x9a, 0x9c, 0x41, 0xa7, 0x00, 0x45, 0x5b, 0xd4, 0xbc, 0xb1, 0xb1, + 0x24, 0x67, 0xfb, 0x2c, 0x4a, 0xc9, 0x85, 0x7c, 0x78, 0x19, 0xf9, 0xd5, 0xc9, 0x25, 0x7d, 0x30, + 0x01, 0xb9, 0xd0, 0xb2, 0x90, 0xc4, 0xf3, 0x5a, 0xbb, 0x6d, 0xdd, 0x51, 0xb5, 0xb6, 0xa1, 0xb9, + 0xdc, 0xde, 0x00, 0x2d, 0xaa, 0x90, 0x92, 0x51, 0xe7, 0xf7, 0xe8, 0x16, 0x3e, 0xfd, 0x37, 0xd1, + 0xc2, 0x8f, 0xc9, 0xe9, 0xd2, 0x47, 0x25, 0x90, 0x7b, 0xd7, 0x7b, 0x3d, 0xdd, 0x97, 0x06, 0x75, + 0xff, 0xab, 0x32, 0x76, 0x1f, 0x91, 0x60, 0x22, 0xba, 0xc8, 0xeb, 0x69, 0xde, 0xf9, 0xbf, 0xd6, + 0xe6, 0xfd, 0x7e, 0x02, 0x0a, 0x91, 0xa5, 0xdd, 0xa8, 0xad, 0x7b, 0x1f, 0x4c, 0x1a, 0x2d, 0xdc, + 0xb1, 0x2d, 0x0f, 0x9b, 0xfa, 0xa1, 0xda, 0xc6, 0xb7, 0x71, 0x7b, 0xa6, 0x44, 0x8d, 0xf2, 0x95, + 0xa3, 0x17, 0x8f, 0x0b, 0xf5, 0x80, 0x6f, 0x95, 0xb0, 0x95, 0xa7, 0xea, 0x4b, 0xb5, 0xb5, 0xcd, + 0x8d, 0x66, 0x6d, 0x7d, 0xf1, 0x55, 0x61, 0x5d, 0x14, 0xd9, 0xe8, 0x21, 0x7b, 0x17, 0x8d, 0xf6, + 0x26, 0xc8, 0xbd, 0x8d, 0x22, 0xb6, 0x22, 0xa6, 0x59, 0xf2, 0x09, 0x34, 0x05, 0xc5, 0xf5, 0x0d, + 0xb5, 0x51, 0x5f, 0xaa, 0xa9, 0xb5, 0xe5, 0xe5, 0xda, 0x62, 0xb3, 0xc1, 0xd2, 0x81, 0x3e, 0x75, + 0x53, 0x4e, 0x84, 0x45, 0xfc, 0xa1, 0x24, 0x4c, 0xc5, 0xb4, 0x04, 0x55, 0xf8, 0x42, 0x9e, 0xe5, + 0x16, 0x1e, 0x1b, 0xa5, 0xf5, 0x0b, 0x24, 0x94, 0xde, 0xd4, 0x1c, 0x8f, 0xaf, 0xfb, 0x1f, 0x06, + 0x22, 0x25, 0xd3, 0x23, 0x9e, 0xdd, 0xe1, 0x69, 0x56, 0xb6, 0xba, 0x2f, 0x06, 0xe5, 0x2c, 0xd3, + 0xfa, 0x28, 0x20, 0xdb, 0x72, 0x0d, 0xcf, 0xb8, 0x8d, 0x55, 0xc3, 0x14, 0x39, 0x59, 0xb2, 0xda, + 0x4f, 0x29, 0xb2, 0xa8, 0xa9, 0x9b, 0x9e, 0x4f, 0x6d, 0xe2, 0x3d, 0xad, 0x87, 0x9a, 0x44, 0x1e, + 0x49, 0x45, 0x16, 0x35, 0x3e, 0xf5, 0x79, 0xc8, 0xb7, 0xac, 0x2e, 0x59, 0x02, 0x31, 0x3a, 0x62, + 0x2d, 0x24, 0x25, 0xc7, 0xca, 0x7c, 0x12, 0xbe, 0xb8, 0x0d, 0x92, 0xc1, 0x79, 0x25, 0xc7, 0xca, + 0x18, 0xc9, 0x45, 0x28, 0x6a, 0x7b, 0x7b, 0x0e, 0x01, 0x17, 0x40, 0x6c, 0xb9, 0x3e, 0xe1, 0x17, + 0x53, 0xc2, 0xd9, 0x9b, 0x90, 0x11, 0x72, 0x20, 0x11, 0x2c, 0x91, 0x84, 0x6a, 0xb3, 0x1c, 0x54, + 0xe2, 0x52, 0x56, 0xc9, 0x98, 0xa2, 0xf2, 0x3c, 0xe4, 0x0d, 0x57, 0x0d, 0xf6, 0xb6, 0x12, 0xf3, + 0x89, 0x4b, 0x19, 0x25, 0x67, 0xb8, 0xfe, 0xbe, 0x40, 0xe9, 0xe3, 0x09, 0x98, 0x88, 0xee, 0xda, + 0xa1, 0x25, 0xc8, 0xb4, 0x2d, 0x5d, 0xa3, 0xaa, 0xc5, 0xb6, 0x8c, 0x2f, 0x0d, 0xd9, 0xe8, 0x5b, + 0x58, 0xe5, 0xf4, 0x8a, 0xcf, 0x39, 0xfb, 0x9b, 0x12, 0x64, 0x44, 0x31, 0x3a, 0x05, 0x29, 0x5b, + 0xf3, 0xf6, 0x29, 0xdc, 0x58, 0x35, 0x21, 0x4b, 0x0a, 0x7d, 0x26, 0xe5, 0xae, 0xad, 0x99, 0x54, + 0x05, 0x78, 0x39, 0x79, 0x26, 0xe3, 0xda, 0xc6, 0x5a, 0x8b, 0xe6, 0x02, 0xac, 0x4e, 0x07, 0x9b, + 0x9e, 0x2b, 0xc6, 0x95, 0x97, 0x2f, 0xf2, 0x62, 0xf4, 0x08, 0x4c, 0x7a, 0x8e, 0x66, 0xb4, 0x23, + 0xb4, 0x29, 0x4a, 0x2b, 0x8b, 0x0a, 0x9f, 0xb8, 0x0c, 0x67, 0x04, 0x6e, 0x0b, 0x7b, 0x9a, 0xbe, + 0x8f, 0x5b, 0x01, 0x53, 0x9a, 0xe6, 0xfc, 0x4e, 0x73, 0x82, 0x25, 0x5e, 0x2f, 0x78, 0x4b, 0x9f, + 0x49, 0xc0, 0xa4, 0xc8, 0x5e, 0xb4, 0x7c, 0x61, 0xad, 0x01, 0x68, 0xa6, 0x69, 0x79, 0x61, 0x71, + 0xf5, 0xab, 0x72, 0x1f, 0xdf, 0x42, 0xc5, 0x67, 0x52, 0x42, 0x00, 0xb3, 0x7f, 0x2c, 0x01, 0x04, + 0x55, 0x03, 0xe5, 0x36, 0x07, 0x39, 0xbe, 0x27, 0x4b, 0x37, 0xf6, 0x59, 0xc2, 0x0b, 0x58, 0xd1, + 0xb2, 0xd1, 0xa6, 0x69, 0xc9, 0x1d, 0xbc, 0x67, 0x98, 0x7c, 0x3f, 0x85, 0x3d, 0x88, 0xb4, 0x64, + 0x2a, 0xd8, 0x9e, 0x52, 0x20, 0xe3, 0xe2, 0x8e, 0x66, 0x7a, 0x86, 0xce, 0x77, 0x48, 0xae, 0x1f, + 0xab, 0xf1, 0x0b, 0x0d, 0xce, 0xad, 0xf8, 0x38, 0xa5, 0x4b, 0x90, 0x11, 0xa5, 0x24, 0xf0, 0x5b, + 0xdf, 0x58, 0xaf, 0xc9, 0x27, 0xd0, 0x38, 0x24, 0x1b, 0xb5, 0xa6, 0x2c, 0x91, 0x65, 0x67, 0x65, + 0xb5, 0x5e, 0x69, 0xc8, 0x89, 0xea, 0xff, 0x03, 0x53, 0xba, 0xd5, 0xe9, 0x7d, 0x61, 0x55, 0xee, + 0x49, 0xf9, 0xb9, 0x37, 0xa4, 0xd7, 0x1e, 0xe3, 0x44, 0x7b, 0x56, 0x5b, 0x33, 0xf7, 0x16, 0x2c, + 0x67, 0x2f, 0x38, 0x16, 0x41, 0x56, 0x07, 0x6e, 0xe8, 0x70, 0x84, 0xbd, 0xf3, 0x57, 0x92, 0xf4, + 0xa3, 0x89, 0xe4, 0xca, 0x66, 0xf5, 0x27, 0x13, 0xb3, 0x2b, 0x8c, 0x71, 0x53, 0x74, 0x47, 0xc1, + 0xbb, 0x6d, 0xac, 0x93, 0xc6, 0xc3, 0x9f, 0x3c, 0x02, 0xd3, 0x7b, 0xd6, 0x9e, 0x45, 0x91, 0xae, + 0x90, 0xbf, 0xf8, 0xb9, 0x8a, 0xac, 0x5f, 0x3a, 0x3b, 0xf4, 0x10, 0x46, 0x79, 0x1d, 0xa6, 0x38, + 0xb1, 0x4a, 0xb7, 0x6f, 0x59, 0x72, 0x01, 0x1d, 0x99, 0xd9, 0x9e, 0xf9, 0xd9, 0x3f, 0xa4, 0x51, + 0x89, 0x32, 0xc9, 0x59, 0x49, 0x1d, 0xcb, 0x3f, 0x94, 0x15, 0x38, 0x19, 0xc1, 0x63, 0x36, 0x02, + 0x3b, 0x43, 0x10, 0xff, 0x0d, 0x47, 0x9c, 0x0a, 0x21, 0x36, 0x38, 0x6b, 0x79, 0x11, 0x0a, 0xc7, + 0xc1, 0xfa, 0x55, 0x8e, 0x95, 0xc7, 0x61, 0x90, 0x15, 0x28, 0x52, 0x10, 0xbd, 0xeb, 0x7a, 0x56, + 0x87, 0x1a, 0xe0, 0xa3, 0x61, 0xfe, 0xed, 0x1f, 0xb2, 0x49, 0x3b, 0x41, 0xd8, 0x16, 0x7d, 0xae, + 0x72, 0x19, 0xe8, 0x8e, 0x75, 0x0b, 0xeb, 0xed, 0x21, 0x08, 0xbf, 0xc6, 0x1b, 0xe2, 0xd3, 0x97, + 0xb7, 0x61, 0x9a, 0xfc, 0x4d, 0xed, 0x63, 0xb8, 0x25, 0xc3, 0xd3, 0xe0, 0x33, 0xbf, 0xf5, 0xcd, + 0xcc, 0x2e, 0x4c, 0xf9, 0x00, 0xa1, 0x36, 0x85, 0x46, 0x71, 0x0f, 0x7b, 0x1e, 0x76, 0x5c, 0x55, + 0x6b, 0xc7, 0x35, 0x2f, 0x94, 0x47, 0x9c, 0xf9, 0xa1, 0x2f, 0x46, 0x47, 0x71, 0x85, 0x71, 0x56, + 0xda, 0xed, 0xf2, 0x16, 0x9c, 0x8e, 0xd1, 0x8a, 0x11, 0x30, 0x3f, 0xc4, 0x31, 0xa7, 0xfb, 0x34, + 0x83, 0xc0, 0x6e, 0x82, 0x28, 0xf7, 0xc7, 0x72, 0x04, 0xcc, 0x0f, 0x73, 0x4c, 0xc4, 0x79, 0xc5, + 0x90, 0x12, 0xc4, 0x9b, 0x30, 0x79, 0x1b, 0x3b, 0x3b, 0x96, 0xcb, 0x73, 0xb7, 0x23, 0xc0, 0x7d, + 0x84, 0xc3, 0x15, 0x39, 0x23, 0x4d, 0xe6, 0x12, 0xac, 0x67, 0x21, 0xb3, 0xab, 0xe9, 0x78, 0x04, + 0x88, 0xbb, 0x1c, 0x62, 0x9c, 0xd0, 0x13, 0xd6, 0x0a, 0xe4, 0xf7, 0x2c, 0xee, 0x22, 0x87, 0xb3, + 0x7f, 0x94, 0xb3, 0xe7, 0x04, 0x0f, 0x87, 0xb0, 0x2d, 0xbb, 0xdb, 0x26, 0xfe, 0x73, 0x38, 0xc4, + 0x0f, 0x0b, 0x08, 0xc1, 0xc3, 0x21, 0x8e, 0x21, 0xd6, 0x8f, 0x09, 0x08, 0x37, 0x24, 0xcf, 0x97, + 0x20, 0x67, 0x99, 0xed, 0x43, 0xcb, 0x1c, 0xa5, 0x11, 0x3f, 0xc2, 0x11, 0x80, 0xb3, 0x10, 0x80, + 0xe7, 0x20, 0x3b, 0xea, 0x40, 0xfc, 0xf8, 0x17, 0xc5, 0xf4, 0x10, 0x23, 0xb0, 0x02, 0x45, 0x61, + 0xa0, 0x0c, 0xcb, 0x1c, 0x01, 0xe2, 0x27, 0x38, 0xc4, 0x44, 0x88, 0x8d, 0x77, 0xc3, 0xc3, 0xae, + 0xb7, 0x87, 0x47, 0x01, 0xf9, 0xb8, 0xe8, 0x06, 0x67, 0xe1, 0xa2, 0xdc, 0xc1, 0xa6, 0xbe, 0x3f, + 0x1a, 0xc2, 0x27, 0x84, 0x28, 0x05, 0x0f, 0x81, 0x58, 0x84, 0x42, 0x47, 0x73, 0xdc, 0x7d, 0xad, + 0x3d, 0xd2, 0x70, 0x7c, 0x92, 0x63, 0xe4, 0x7d, 0x26, 0x2e, 0x91, 0xae, 0x79, 0x1c, 0x98, 0x9f, + 0x14, 0x12, 0x09, 0xb1, 0xf1, 0xa9, 0xe7, 0x7a, 0x34, 0xd1, 0x7d, 0x1c, 0xb4, 0x9f, 0x12, 0x53, + 0x8f, 0xf1, 0xae, 0x85, 0x11, 0x9f, 0x83, 0xac, 0x6b, 0xbc, 0x31, 0x12, 0xcc, 0x3f, 0x14, 0x23, + 0x4d, 0x19, 0x08, 0xf3, 0xab, 0x70, 0x26, 0xd6, 0x4d, 0x8c, 0x00, 0xf6, 0x8f, 0x38, 0xd8, 0xa9, + 0x18, 0x57, 0xc1, 0x4d, 0xc2, 0x71, 0x21, 0x7f, 0x5a, 0x98, 0x04, 0xdc, 0x83, 0xb5, 0x49, 0x16, + 0x2d, 0xae, 0xb6, 0x7b, 0x3c, 0xa9, 0xfd, 0x63, 0x21, 0x35, 0xc6, 0x1b, 0x91, 0x5a, 0x13, 0x4e, + 0x71, 0xc4, 0xe3, 0x8d, 0xeb, 0xcf, 0x08, 0xc3, 0xca, 0xb8, 0xb7, 0xa2, 0xa3, 0xfb, 0xb5, 0x30, + 0xeb, 0x8b, 0x53, 0x44, 0xc7, 0xae, 0xda, 0xd1, 0xec, 0x11, 0x90, 0x7f, 0x96, 0x23, 0x0b, 0x8b, + 0xef, 0x87, 0xd7, 0xee, 0x9a, 0x66, 0x13, 0xf0, 0x57, 0x60, 0x46, 0x80, 0x77, 0x4d, 0x07, 0xeb, + 0xd6, 0x9e, 0x69, 0xbc, 0x81, 0x5b, 0x23, 0x40, 0xff, 0x93, 0x9e, 0xa1, 0xda, 0x0a, 0xb1, 0x13, + 0xe4, 0x3a, 0xc8, 0x7e, 0xac, 0xa2, 0x1a, 0x1d, 0xdb, 0x72, 0xbc, 0x21, 0x88, 0x9f, 0x12, 0x23, + 0xe5, 0xf3, 0xd5, 0x29, 0x5b, 0xb9, 0x06, 0xec, 0xf4, 0xc7, 0xa8, 0x2a, 0xf9, 0x69, 0x0e, 0x54, + 0x08, 0xb8, 0xb8, 0xe1, 0xd0, 0xad, 0x8e, 0xad, 0x39, 0xa3, 0xd8, 0xbf, 0x9f, 0x13, 0x86, 0x83, + 0xb3, 0x70, 0xc3, 0x41, 0x22, 0x3a, 0xe2, 0xed, 0x47, 0x40, 0xf8, 0x79, 0x61, 0x38, 0x04, 0x0f, + 0x87, 0x10, 0x01, 0xc3, 0x08, 0x10, 0xbf, 0x20, 0x20, 0x04, 0x0f, 0x81, 0x78, 0x4f, 0xe0, 0x68, + 0x1d, 0xbc, 0x67, 0xb8, 0x9e, 0xc3, 0x42, 0xf2, 0xa3, 0xa1, 0x7e, 0xf1, 0x8b, 0xd1, 0x20, 0x4c, + 0x09, 0xb1, 0x12, 0x4b, 0xc4, 0xb7, 0x3e, 0xe8, 0x92, 0x6d, 0x78, 0xc3, 0x7e, 0x49, 0x58, 0xa2, + 0x10, 0x1b, 0x69, 0x5b, 0x28, 0x42, 0x24, 0x62, 0xd7, 0xc9, 0x42, 0x65, 0x04, 0xb8, 0x7f, 0xda, + 0xd3, 0xb8, 0x86, 0xe0, 0x25, 0x98, 0xa1, 0xf8, 0xa7, 0x6b, 0xde, 0xc2, 0x87, 0x23, 0x69, 0xe7, + 0x2f, 0xf7, 0xc4, 0x3f, 0x5b, 0x8c, 0x93, 0xd9, 0x90, 0x62, 0x4f, 0x3c, 0x85, 0x86, 0x9d, 0xf5, + 0x9b, 0xf9, 0xa6, 0x2f, 0xf1, 0xfe, 0x46, 0xc3, 0xa9, 0xf2, 0x2a, 0x51, 0xf2, 0x68, 0xd0, 0x33, + 0x1c, 0xec, 0x9b, 0xbf, 0xe4, 0xeb, 0x79, 0x24, 0xe6, 0x29, 0x2f, 0x43, 0x21, 0x12, 0xf0, 0x0c, + 0x87, 0xfa, 0x16, 0x0e, 0x95, 0x0f, 0xc7, 0x3b, 0xe5, 0xa7, 0x20, 0x45, 0x82, 0x97, 0xe1, 0xec, + 0xdf, 0xca, 0xd9, 0x29, 0x79, 0xf9, 0x05, 0xc8, 0x88, 0xa0, 0x65, 0x38, 0xeb, 0xb7, 0x71, 0x56, + 0x9f, 0x85, 0xb0, 0x8b, 0x80, 0x65, 0x38, 0xfb, 0xff, 0x27, 0xd8, 0x05, 0x0b, 0x61, 0x1f, 0x5d, + 0x84, 0xff, 0xf2, 0x3b, 0x53, 0xdc, 0xe9, 0x08, 0xd9, 0x3d, 0x07, 0xe3, 0x3c, 0x52, 0x19, 0xce, + 0xfd, 0x1d, 0xfc, 0xe5, 0x82, 0xa3, 0xfc, 0x34, 0x8c, 0x8d, 0x28, 0xf0, 0xef, 0xe6, 0xac, 0x8c, + 0xbe, 0xbc, 0x08, 0xb9, 0x50, 0x74, 0x32, 0x9c, 0xfd, 0x7b, 0x38, 0x7b, 0x98, 0x8b, 0x34, 0x9d, + 0x47, 0x27, 0xc3, 0x01, 0xfe, 0x7f, 0xd1, 0x74, 0xce, 0x41, 0xc4, 0x26, 0x02, 0x93, 0xe1, 0xdc, + 0x1f, 0x10, 0x52, 0x17, 0x2c, 0xe5, 0x97, 0x20, 0xeb, 0x3b, 0x9b, 0xe1, 0xfc, 0xdf, 0xcb, 0xf9, + 0x03, 0x1e, 0x22, 0x81, 0x90, 0xb3, 0x1b, 0x0e, 0xf1, 0xf7, 0x84, 0x04, 0x42, 0x5c, 0x64, 0x1a, + 0xf5, 0x06, 0x30, 0xc3, 0x91, 0xbe, 0x4f, 0x4c, 0xa3, 0x9e, 0xf8, 0x85, 0x8c, 0x26, 0xb5, 0xf9, + 0xc3, 0x21, 0xbe, 0x5f, 0x8c, 0x26, 0xa5, 0x27, 0xcd, 0xe8, 0x8d, 0x08, 0x86, 0x63, 0xfc, 0xa0, + 0x68, 0x46, 0x4f, 0x40, 0x50, 0xde, 0x04, 0xd4, 0x1f, 0x0d, 0x0c, 0xc7, 0xfb, 0x20, 0xc7, 0x9b, + 0xec, 0x0b, 0x06, 0xca, 0xef, 0x85, 0x53, 0xf1, 0x91, 0xc0, 0x70, 0xd4, 0x1f, 0xfa, 0x52, 0xcf, + 0xda, 0x2d, 0x1c, 0x08, 0x94, 0x9b, 0x81, 0x4b, 0x09, 0x47, 0x01, 0xc3, 0x61, 0x3f, 0xf4, 0xa5, + 0xa8, 0xe1, 0x0e, 0x07, 0x01, 0xe5, 0x0a, 0x40, 0xe0, 0x80, 0x87, 0x63, 0x7d, 0x84, 0x63, 0x85, + 0x98, 0xc8, 0xd4, 0xe0, 0xfe, 0x77, 0x38, 0xff, 0x5d, 0x31, 0x35, 0x38, 0x07, 0x99, 0x1a, 0xc2, + 0xf5, 0x0e, 0xe7, 0xfe, 0xa8, 0x98, 0x1a, 0x82, 0x85, 0x68, 0x76, 0xc8, 0xbb, 0x0d, 0x47, 0xf8, + 0x11, 0xa1, 0xd9, 0x21, 0xae, 0xf2, 0x3a, 0x4c, 0xf6, 0x39, 0xc4, 0xe1, 0x50, 0x3f, 0xca, 0xa1, + 0xe4, 0x5e, 0x7f, 0x18, 0x76, 0x5e, 0xdc, 0x19, 0x0e, 0x47, 0xfb, 0xb1, 0x1e, 0xe7, 0xc5, 0x7d, + 0x61, 0xf9, 0x39, 0xc8, 0x98, 0xdd, 0x76, 0x9b, 0x4c, 0x1e, 0x74, 0xf4, 0xf9, 0xdc, 0x99, 0xff, + 0xf2, 0x15, 0x2e, 0x1d, 0xc1, 0x50, 0x7e, 0x0a, 0xc6, 0x70, 0x67, 0x07, 0xb7, 0x86, 0x71, 0xfe, + 0xd1, 0x57, 0x84, 0xc1, 0x24, 0xd4, 0xe5, 0x97, 0x00, 0x58, 0x6a, 0x84, 0x6e, 0x9c, 0x0f, 0xe1, + 0xfd, 0xe3, 0xaf, 0xf0, 0x03, 0x71, 0x01, 0x4b, 0x00, 0xc0, 0x8e, 0xd7, 0x1d, 0x0d, 0xf0, 0xc5, + 0x28, 0x00, 0x1d, 0x91, 0x67, 0x61, 0xfc, 0x75, 0xd7, 0x32, 0x3d, 0x6d, 0x6f, 0x18, 0xf7, 0x9f, + 0x70, 0x6e, 0x41, 0x4f, 0x04, 0xd6, 0xb1, 0x1c, 0xec, 0x69, 0x7b, 0xee, 0x30, 0xde, 0x3f, 0xe5, + 0xbc, 0x3e, 0x03, 0x61, 0xd6, 0x35, 0xd7, 0x1b, 0xa5, 0xdf, 0xff, 0x55, 0x30, 0x0b, 0x06, 0xd2, + 0x68, 0xf2, 0xf7, 0x2d, 0x7c, 0x38, 0x8c, 0xf7, 0xcf, 0x44, 0xa3, 0x39, 0x7d, 0xf9, 0x05, 0xc8, + 0x92, 0x3f, 0xd9, 0x29, 0xd7, 0x21, 0xcc, 0x7f, 0xce, 0x99, 0x03, 0x0e, 0xf2, 0x66, 0xd7, 0x6b, + 0x79, 0xc6, 0x70, 0x61, 0xff, 0x05, 0x1f, 0x69, 0x41, 0x5f, 0xae, 0x40, 0xce, 0xf5, 0x5a, 0xad, + 0x2e, 0x8f, 0x4f, 0x87, 0xb0, 0xff, 0xb7, 0xaf, 0xf8, 0x29, 0x0b, 0x9f, 0x87, 0x8c, 0xf6, 0x9d, + 0x5b, 0x9e, 0x6d, 0xd1, 0xfd, 0x96, 0x61, 0x08, 0x5f, 0xe2, 0x08, 0x21, 0x96, 0xf2, 0x22, 0xe4, + 0x49, 0x5f, 0x1c, 0x6c, 0x63, 0xba, 0x39, 0x36, 0x04, 0xe2, 0xcb, 0x5c, 0x00, 0x11, 0xa6, 0xea, + 0x37, 0xfe, 0xda, 0x67, 0xcf, 0x49, 0x9f, 0xf9, 0xec, 0x39, 0xe9, 0xf7, 0x3f, 0x7b, 0x4e, 0xfa, + 0xc0, 0xe7, 0xce, 0x9d, 0xf8, 0xcc, 0xe7, 0xce, 0x9d, 0xf8, 0x9d, 0xcf, 0x9d, 0x3b, 0x11, 0x9f, + 0x25, 0x86, 0x15, 0x6b, 0xc5, 0x62, 0xf9, 0xe1, 0xd7, 0x1e, 0xdc, 0x33, 0xbc, 0xfd, 0xee, 0xce, + 0x82, 0x6e, 0x75, 0xae, 0xe8, 0x96, 0xdb, 0xb1, 0xdc, 0x2b, 0xd1, 0xbc, 0x2e, 0xfd, 0x0b, 0xfe, + 0x87, 0x44, 0xd6, 0xcc, 0xd1, 0x74, 0xae, 0x66, 0x1e, 0x0e, 0xfa, 0x98, 0xee, 0x3a, 0x24, 0x2b, + 0xe6, 0x21, 0x3a, 0xc3, 0x0c, 0x9c, 0xda, 0x75, 0xda, 0xfc, 0xa8, 0xe5, 0x38, 0x79, 0xde, 0x72, + 0xda, 0x68, 0x3a, 0x38, 0x0f, 0x2d, 0x5d, 0xca, 0xf3, 0x43, 0xce, 0xd5, 0xef, 0x91, 0x8e, 0xd7, + 0x93, 0x4c, 0xc5, 0x3c, 0xa4, 0x1d, 0xd9, 0x94, 0x5e, 0x7b, 0x74, 0x68, 0x9e, 0xfb, 0x96, 0x69, + 0xdd, 0x31, 0x49, 0xb3, 0xed, 0x1d, 0x91, 0xe3, 0x3e, 0xd7, 0x9b, 0xe3, 0x7e, 0x2f, 0x6e, 0xb7, + 0x5f, 0x26, 0x74, 0x4d, 0xc2, 0xb2, 0x93, 0x66, 0xa7, 0xfa, 0xe1, 0xfb, 0x12, 0x70, 0xae, 0x2f, + 0x9d, 0xcd, 0x95, 0x60, 0x90, 0x10, 0xca, 0x90, 0x59, 0x12, 0xba, 0x35, 0x03, 0xe3, 0x2e, 0xd6, + 0x2d, 0xb3, 0xe5, 0x52, 0x41, 0x24, 0x15, 0xf1, 0x48, 0x04, 0x61, 0x6a, 0xa6, 0xe5, 0xf2, 0xc3, + 0xca, 0xec, 0xa1, 0xfa, 0xe1, 0x63, 0x0a, 0xa2, 0x20, 0xde, 0x24, 0xa4, 0x71, 0x75, 0x44, 0x69, + 0x88, 0x4e, 0x44, 0x32, 0xff, 0xa3, 0x4a, 0xe5, 0x07, 0x13, 0x30, 0xd7, 0x2b, 0x15, 0x32, 0xb3, + 0x5c, 0x4f, 0xeb, 0xd8, 0x83, 0xc4, 0xf2, 0x1c, 0x64, 0x9b, 0x82, 0xe6, 0xd8, 0x72, 0xb9, 0x7b, + 0x4c, 0xb9, 0x4c, 0xf8, 0xaf, 0x12, 0x82, 0xb9, 0x36, 0xa2, 0x60, 0xfc, 0x7e, 0xdc, 0x93, 0x64, + 0x3e, 0x9c, 0x85, 0x33, 0x6c, 0x3a, 0xa9, 0x6c, 0x2a, 0xb1, 0x07, 0x2e, 0x93, 0x7c, 0xb8, 0x6a, + 0xf8, 0x3e, 0x49, 0xe9, 0x65, 0x98, 0xaa, 0x13, 0x6b, 0x41, 0x56, 0x41, 0xc1, 0x0e, 0x4f, 0xec, + 0x79, 0xee, 0xf9, 0x48, 0xc0, 0xcf, 0xf7, 0xb7, 0xc2, 0x45, 0xa5, 0x6f, 0x92, 0x40, 0x6e, 0xe8, + 0x5a, 0x5b, 0x73, 0xde, 0x2e, 0x14, 0x7a, 0x1a, 0x80, 0x1d, 0xf7, 0xf0, 0x3f, 0xdc, 0x9b, 0xb8, + 0x36, 0xb3, 0x10, 0xee, 0xdc, 0x02, 0x7b, 0x13, 0x3d, 0x41, 0x95, 0xa5, 0xb4, 0xe4, 0xcf, 0xcb, + 0xaf, 0x00, 0x04, 0x15, 0xe8, 0x2c, 0x9c, 0x6e, 0x2c, 0x56, 0x56, 0x2b, 0x8a, 0x38, 0x24, 0xd4, + 0xd8, 0xac, 0x2d, 0xd6, 0x97, 0xeb, 0xb5, 0x25, 0xf9, 0x04, 0x3a, 0x05, 0x28, 0x5c, 0xe9, 0x1f, + 0x6a, 0x3a, 0x09, 0x93, 0xe1, 0x72, 0xf6, 0x95, 0x4a, 0xa2, 0x7c, 0x03, 0x8a, 0xec, 0x08, 0xbd, + 0xaa, 0xb5, 0x5a, 0xb8, 0xa5, 0x1a, 0x26, 0x1a, 0x72, 0x22, 0x7d, 0xe6, 0xd7, 0xff, 0xe3, 0x18, + 0xed, 0x5a, 0x81, 0x31, 0x56, 0x08, 0x5f, 0xdd, 0x24, 0x31, 0xa7, 0xd1, 0xb1, 0xdb, 0x98, 0xee, + 0x61, 0xaa, 0x86, 0x90, 0xff, 0xf0, 0x70, 0x86, 0xe0, 0x25, 0x2f, 0x65, 0x95, 0xa9, 0x80, 0xdd, + 0x1f, 0xbd, 0xf2, 0xcb, 0x20, 0x8b, 0xa3, 0x9e, 0x7e, 0x03, 0x87, 0x22, 0xfe, 0x06, 0x6f, 0xa1, + 0xc8, 0x66, 0x88, 0x26, 0xae, 0xc2, 0xa4, 0xa6, 0xeb, 0xd8, 0x8e, 0xb4, 0x6f, 0x88, 0x07, 0x11, + 0xbd, 0x95, 0x39, 0x67, 0xd0, 0xb4, 0xa7, 0x21, 0xed, 0xd2, 0x41, 0x19, 0x06, 0x21, 0x9a, 0xc3, + 0xc9, 0xcb, 0x35, 0x98, 0x60, 0x6a, 0xe0, 0xf7, 0x68, 0x08, 0xc0, 0xbf, 0xe3, 0x00, 0x79, 0xca, + 0x26, 0x7a, 0x63, 0xc2, 0x24, 0x89, 0x6b, 0x35, 0x07, 0x87, 0x7a, 0x73, 0x74, 0x16, 0xe5, 0x9f, + 0x7d, 0xea, 0x71, 0xba, 0x6f, 0x7c, 0x3e, 0xaa, 0x74, 0x31, 0x93, 0x45, 0x91, 0x39, 0x76, 0xd0, + 0x5f, 0x0c, 0x13, 0xe2, 0x7d, 0xbc, 0xdf, 0x47, 0xbf, 0xec, 0x9f, 0xf3, 0x97, 0x9d, 0x8b, 0xd3, + 0xf0, 0xd0, 0x9b, 0x0a, 0x1c, 0x95, 0x55, 0x94, 0xab, 0x50, 0xd8, 0x35, 0xda, 0xa1, 0xe1, 0x3e, + 0xfa, 0x2d, 0xff, 0xe2, 0x53, 0x8f, 0xb3, 0x89, 0x46, 0x98, 0xb8, 0x68, 0xaa, 0xb5, 0x41, 0x56, + 0xef, 0xb5, 0x47, 0xfa, 0xfd, 0x37, 0xfb, 0xef, 0x31, 0x8a, 0xfe, 0x5c, 0xb8, 0xa9, 0x81, 0x75, + 0x4a, 0xc1, 0xa4, 0xd6, 0x31, 0x4c, 0xeb, 0x0a, 0xfd, 0x97, 0x5b, 0xa5, 0x31, 0xfa, 0x30, 0xc2, + 0xb6, 0xed, 0x75, 0x66, 0x2c, 0x86, 0xeb, 0xed, 0x9f, 0x7f, 0xd7, 0x4f, 0x8c, 0x05, 0x06, 0xa5, + 0xbc, 0x16, 0xe8, 0x3e, 0x36, 0x75, 0xab, 0x35, 0x52, 0x1e, 0xe7, 0x2f, 0x04, 0x86, 0xc8, 0x00, + 0xd6, 0x38, 0x6b, 0xf9, 0x79, 0xc8, 0xf8, 0x30, 0xc3, 0x62, 0x37, 0x01, 0xe2, 0x73, 0x90, 0xc8, + 0x8d, 0x29, 0xed, 0x28, 0x71, 0xfa, 0x97, 0x04, 0x3f, 0xb3, 0x61, 0xeb, 0xa4, 0x37, 0x2b, 0x30, + 0xd1, 0xb2, 0x4c, 0x4f, 0xb5, 0x3a, 0x86, 0x87, 0x3b, 0xb6, 0x37, 0x34, 0xf2, 0xfd, 0x32, 0x03, + 0xc9, 0x28, 0x05, 0xc2, 0xb7, 0x21, 0xd8, 0x48, 0x4b, 0xd8, 0x97, 0x8c, 0xa3, 0xb4, 0xe4, 0x2f, + 0xfd, 0x96, 0x50, 0x1e, 0xd2, 0x92, 0x7b, 0xd2, 0x0e, 0xb7, 0x75, 0x8b, 0xbb, 0x3b, 0xef, 0x80, + 0x69, 0x81, 0xaf, 0x1d, 0x1f, 0x4f, 0xc2, 0x39, 0x4e, 0xbc, 0xa3, 0xb9, 0xf8, 0xca, 0xed, 0xab, + 0x3b, 0xd8, 0xd3, 0xae, 0x5e, 0xd1, 0x2d, 0x43, 0xc4, 0x3a, 0x53, 0xdc, 0x9d, 0x91, 0xfa, 0x05, + 0x5e, 0x3f, 0x1b, 0x7b, 0x20, 0x60, 0x76, 0xb0, 0x1b, 0x9c, 0xed, 0xd7, 0xc1, 0x52, 0x1b, 0x52, + 0x8b, 0x96, 0x61, 0x12, 0xef, 0xdf, 0xc2, 0xa6, 0xd5, 0xe1, 0x0e, 0x89, 0x3d, 0xa0, 0x1b, 0x90, + 0xd6, 0x3a, 0x56, 0xd7, 0xf4, 0x98, 0x33, 0xaa, 0x3e, 0xfe, 0x6b, 0x6f, 0xcd, 0x9d, 0xf8, 0xdd, + 0xb7, 0xe6, 0x4e, 0x32, 0x58, 0xb7, 0x75, 0x6b, 0xc1, 0xb0, 0xae, 0x74, 0x34, 0x6f, 0x9f, 0x98, + 0x80, 0xdf, 0xfe, 0xf4, 0x63, 0xc0, 0xdf, 0x57, 0x37, 0xbd, 0x4f, 0x7c, 0xfe, 0x67, 0x2e, 0x4b, + 0x0a, 0xe7, 0x2f, 0xa7, 0xbe, 0xf0, 0xb1, 0x39, 0xa9, 0x64, 0xc3, 0xf8, 0x12, 0xd6, 0x8f, 0x78, + 0x61, 0xbd, 0xe7, 0x85, 0x57, 0xf9, 0x0b, 0xcf, 0xf6, 0xbf, 0x90, 0x1d, 0x69, 0x5c, 0xc2, 0x7a, + 0xe8, 0xb5, 0x4b, 0x58, 0x8f, 0xbe, 0xb1, 0xba, 0xf4, 0x3b, 0x7f, 0x70, 0xee, 0xc4, 0xfb, 0x3f, + 0x7b, 0xee, 0xc4, 0xc0, 0x21, 0x2b, 0x0d, 0x1f, 0x32, 0x7f, 0xa4, 0x3e, 0x99, 0x22, 0x23, 0xd5, + 0xc1, 0xde, 0xce, 0xae, 0x77, 0x45, 0x77, 0x0e, 0x6d, 0xcf, 0xba, 0x72, 0xfb, 0x2a, 0x99, 0xb9, + 0xd6, 0x2e, 0x1f, 0x29, 0x24, 0xea, 0x17, 0x58, 0xfd, 0xc2, 0xed, 0x01, 0x03, 0x55, 0xda, 0x85, + 0xb1, 0x4d, 0xc2, 0x48, 0x44, 0xe1, 0x59, 0x9e, 0xd6, 0xe6, 0x11, 0x19, 0x7b, 0x20, 0xa5, 0xec, + 0x4b, 0xdb, 0x04, 0x2b, 0x35, 0xc4, 0x47, 0xb6, 0x6d, 0xac, 0xed, 0xb2, 0x0f, 0x96, 0x92, 0x34, + 0x94, 0xcf, 0x90, 0x02, 0xfa, 0x6d, 0xd2, 0x34, 0x8c, 0x69, 0x5d, 0x76, 0xa8, 0x28, 0x49, 0x62, + 0x7c, 0xfa, 0x50, 0x5a, 0x85, 0x71, 0x7e, 0xb6, 0x00, 0xc9, 0x90, 0xbc, 0x85, 0x0f, 0xe9, 0x7b, + 0xf2, 0x0a, 0xf9, 0x13, 0x5d, 0x81, 0x31, 0xda, 0x7a, 0xfe, 0x25, 0xe6, 0x99, 0x85, 0xfe, 0xe6, + 0x2f, 0xd0, 0x56, 0x2a, 0x8c, 0xae, 0x74, 0x13, 0x32, 0x4b, 0x16, 0x51, 0xa0, 0x28, 0x5c, 0x96, + 0xc1, 0xd1, 0x46, 0xdb, 0x5d, 0x3e, 0x7c, 0x0a, 0x7b, 0x40, 0xa7, 0x20, 0xcd, 0xbe, 0x60, 0xe3, + 0x27, 0xa3, 0xf8, 0x53, 0x69, 0x11, 0xc6, 0x29, 0xf6, 0x86, 0x4d, 0xe2, 0x21, 0xff, 0x50, 0x7f, + 0x96, 0x7f, 0xcf, 0xcc, 0xe1, 0x13, 0x41, 0x6b, 0x11, 0xa4, 0x5a, 0x9a, 0xa7, 0xf1, 0x8e, 0xd3, + 0xbf, 0x4b, 0x2f, 0x41, 0x86, 0x83, 0xb8, 0xe8, 0x09, 0x48, 0x5a, 0xb6, 0xcb, 0xcf, 0x36, 0x9d, + 0x1d, 0xd8, 0x97, 0x0d, 0xbb, 0x9a, 0x22, 0x8a, 0xa5, 0x10, 0xea, 0xea, 0xda, 0x40, 0xd5, 0x78, + 0x22, 0xa2, 0x1a, 0x62, 0xd8, 0xc5, 0x1f, 0x9a, 0x6d, 0x5c, 0xe9, 0x57, 0x06, 0x5f, 0x57, 0xfe, + 0xbb, 0x04, 0xf7, 0xc7, 0xe8, 0xca, 0x2d, 0x7c, 0xe8, 0x1e, 0x5b, 0x55, 0x5e, 0x81, 0xec, 0x26, + 0xbd, 0x5d, 0xe4, 0x65, 0x7c, 0x88, 0x66, 0x61, 0x1c, 0xb7, 0xae, 0x3d, 0xf5, 0xd4, 0xd5, 0x67, + 0xd9, 0x40, 0xde, 0x38, 0xa1, 0x88, 0x02, 0x74, 0x0e, 0xb2, 0x2e, 0xd6, 0xed, 0x6b, 0x4f, 0x5d, + 0xbf, 0x75, 0x95, 0x09, 0xee, 0xc6, 0x09, 0x25, 0x28, 0x2a, 0x67, 0xc8, 0xa4, 0xf8, 0xc2, 0x8f, + 0xcc, 0x49, 0xd5, 0x31, 0x48, 0xba, 0xdd, 0xce, 0xbb, 0xd5, 0xf9, 0xbf, 0x4c, 0xc3, 0x79, 0xbf, + 0x9a, 0x99, 0xbd, 0xdb, 0x57, 0xaf, 0xdc, 0xd6, 0xda, 0x46, 0x4b, 0x0b, 0xee, 0x84, 0x99, 0xf4, + 0x05, 0x40, 0x49, 0x06, 0xf6, 0x7f, 0xf6, 0x68, 0x41, 0x96, 0x3e, 0x2d, 0x41, 0x7e, 0x5b, 0x60, + 0x37, 0xb0, 0x87, 0x9e, 0x07, 0xf0, 0xdf, 0x25, 0xd4, 0xe1, 0xbe, 0x85, 0xbe, 0xb7, 0x2d, 0xf8, + 0x4c, 0x4a, 0x88, 0x1e, 0x3d, 0x03, 0x19, 0xdb, 0xb1, 0x6c, 0xcb, 0xe5, 0x5f, 0xb4, 0x0e, 0xe3, + 0xf5, 0xa9, 0xd1, 0xa3, 0x80, 0xe8, 0xe4, 0x55, 0x6f, 0x5b, 0x9e, 0x61, 0xee, 0xa9, 0xb6, 0x75, + 0x87, 0x5f, 0x14, 0x90, 0x54, 0x64, 0x5a, 0xb3, 0x4d, 0x2b, 0x36, 0x49, 0x79, 0xe9, 0x53, 0x12, + 0x64, 0x7d, 0x14, 0xb2, 0x32, 0xd3, 0x5a, 0x2d, 0x07, 0xbb, 0x2e, 0x9f, 0x9f, 0xe2, 0x11, 0x3d, + 0x0f, 0xe3, 0x76, 0x77, 0x47, 0x15, 0x73, 0x21, 0x77, 0xed, 0xfe, 0x58, 0xcd, 0x16, 0x0a, 0xc2, + 0x75, 0x3b, 0x6d, 0x77, 0x77, 0x88, 0xba, 0x9c, 0x87, 0x7c, 0x4c, 0x6b, 0x72, 0xb7, 0x83, 0x86, + 0xd0, 0x5b, 0x6d, 0x78, 0x17, 0x54, 0xdb, 0x31, 0x2c, 0xc7, 0xf0, 0x0e, 0xe9, 0xd1, 0xbb, 0xa4, + 0x22, 0x8b, 0x8a, 0x4d, 0x5e, 0x5e, 0x6a, 0x43, 0xb1, 0x41, 0x03, 0xed, 0xa0, 0xe9, 0xd7, 0x83, + 0x06, 0x4a, 0x23, 0x34, 0x70, 0x60, 0xd3, 0x12, 0x7d, 0x4d, 0xbb, 0xfc, 0x9f, 0x24, 0xc8, 0x55, + 0xdb, 0x96, 0x7e, 0xab, 0xbe, 0xb4, 0xdc, 0xd6, 0xf6, 0xd0, 0x55, 0x38, 0x59, 0x5d, 0xdd, 0x58, + 0x7c, 0x59, 0xad, 0x2f, 0xa9, 0xcb, 0xab, 0x95, 0x95, 0xe0, 0xb0, 0xef, 0xec, 0xa9, 0x37, 0xef, + 0xce, 0xa3, 0x10, 0xed, 0x96, 0x49, 0x17, 0x96, 0xe8, 0x0a, 0x4c, 0x47, 0x59, 0x2a, 0xd5, 0x46, + 0x6d, 0xbd, 0x29, 0x4b, 0xb3, 0x27, 0xdf, 0xbc, 0x3b, 0x3f, 0x19, 0xe2, 0xa8, 0xec, 0xb8, 0xd8, + 0xf4, 0xfa, 0x19, 0x16, 0x37, 0xd6, 0xd6, 0xea, 0x4d, 0x39, 0xd1, 0xc7, 0xb0, 0x68, 0x75, 0x3a, + 0x86, 0x87, 0x1e, 0x86, 0xc9, 0x28, 0xc3, 0x7a, 0x7d, 0x55, 0x4e, 0xce, 0xa2, 0x37, 0xef, 0xce, + 0x4f, 0x84, 0xa8, 0xd7, 0x8d, 0xf6, 0x6c, 0xe6, 0xdb, 0x7f, 0xec, 0xdc, 0x89, 0x4f, 0xfc, 0x83, + 0x73, 0x52, 0x75, 0x75, 0xe0, 0xcc, 0xbb, 0x36, 0xfa, 0xcc, 0x13, 0x53, 0xcb, 0x9f, 0x78, 0x1f, + 0x4d, 0xc0, 0x9c, 0x5f, 0x7b, 0x1b, 0x3b, 0xae, 0x61, 0x99, 0x64, 0xb6, 0x30, 0xb5, 0xf5, 0x83, + 0x09, 0x3e, 0x38, 0x9c, 0x60, 0xb0, 0xe1, 0x79, 0x01, 0x92, 0x15, 0xdb, 0x46, 0xb3, 0x74, 0x46, + 0x78, 0x96, 0x6e, 0x31, 0x27, 0x95, 0x52, 0xfc, 0x67, 0x52, 0xe7, 0x5a, 0xbb, 0xde, 0x1d, 0xcd, + 0xf1, 0x2f, 0x96, 0x10, 0xcf, 0xa5, 0x67, 0x21, 0xbb, 0x68, 0x99, 0x2e, 0x36, 0xdd, 0x2e, 0x4d, + 0x30, 0xec, 0x10, 0x61, 0x70, 0x04, 0xf6, 0x40, 0x8c, 0xbc, 0x66, 0xdb, 0x94, 0x33, 0xa5, 0x90, + 0x3f, 0xb9, 0xe3, 0x5e, 0x1f, 0x28, 0x9e, 0x27, 0x47, 0x17, 0x4f, 0x20, 0x00, 0x5f, 0x40, 0xdf, + 0x7f, 0x7f, 0xc8, 0x2c, 0xfb, 0x96, 0x29, 0x2c, 0x9e, 0x18, 0xab, 0x34, 0xc4, 0xe9, 0xcf, 0x0e, + 0xb7, 0x75, 0xb3, 0xc3, 0x46, 0x65, 0x80, 0xe5, 0x1b, 0x96, 0xee, 0x29, 0x3d, 0x0b, 0x85, 0x4d, + 0xcd, 0xf1, 0x1a, 0xd8, 0xbb, 0x81, 0xb5, 0x16, 0x76, 0xa2, 0xd1, 0x44, 0x41, 0x44, 0x13, 0x08, + 0x52, 0x34, 0x64, 0x60, 0xce, 0x94, 0xfe, 0x5d, 0x32, 0x20, 0x45, 0xcf, 0x5e, 0xfb, 0x91, 0x06, + 0xe7, 0x60, 0x91, 0x06, 0x19, 0xae, 0x43, 0x0f, 0xbb, 0x22, 0x61, 0x48, 0x1f, 0xd0, 0x53, 0x22, + 0x5e, 0x48, 0x0e, 0x89, 0x17, 0xb8, 0x15, 0xe2, 0x51, 0x43, 0x07, 0xc6, 0xf9, 0x44, 0xf0, 0x5b, + 0x22, 0x05, 0x2d, 0x41, 0xeb, 0x50, 0xb4, 0x35, 0xc7, 0xa3, 0x1f, 0x63, 0xee, 0xd3, 0x6e, 0x70, + 0x4b, 0x37, 0x1f, 0x63, 0x78, 0x23, 0xdd, 0xe5, 0xaf, 0x29, 0xd8, 0xe1, 0xc2, 0xd2, 0x17, 0x52, + 0x90, 0xe6, 0xe2, 0x78, 0x11, 0xc6, 0xb9, 0xc0, 0xb9, 0x6d, 0x3a, 0xb7, 0x10, 0xa3, 0xfe, 0x0b, + 0xbe, 0x9a, 0x72, 0x40, 0xc1, 0x84, 0x1e, 0x82, 0x8c, 0xbe, 0xaf, 0x19, 0xa6, 0x6a, 0xb4, 0x78, + 0x4c, 0x9a, 0xfb, 0xec, 0x5b, 0x73, 0xe3, 0x8b, 0xa4, 0xac, 0xbe, 0xa4, 0x8c, 0xd3, 0xca, 0x7a, + 0x8b, 0xc4, 0x38, 0xfb, 0xd8, 0xd8, 0xdb, 0xf7, 0xb8, 0x81, 0xe5, 0x4f, 0xe8, 0x19, 0x48, 0x91, + 0x21, 0xe3, 0x1f, 0xeb, 0xcf, 0xf6, 0x2d, 0x36, 0xfc, 0x7c, 0x59, 0x35, 0x43, 0x5e, 0xfc, 0x81, + 0xff, 0x3c, 0x27, 0x29, 0x94, 0x03, 0x2d, 0x41, 0xa1, 0xad, 0xb9, 0x9e, 0x4a, 0xe7, 0x09, 0x79, + 0xfd, 0x18, 0x87, 0xe8, 0x17, 0x09, 0x97, 0x2d, 0x6f, 0x7b, 0x8e, 0xb0, 0xb1, 0xa2, 0x16, 0xba, + 0x04, 0x32, 0x45, 0xd1, 0xa9, 0xa9, 0x62, 0x71, 0x63, 0x9a, 0x8a, 0x7e, 0x82, 0x94, 0x33, 0x0b, + 0x46, 0xa3, 0xc7, 0xb3, 0x90, 0xa5, 0xdf, 0x07, 0x53, 0x12, 0x76, 0xe8, 0x3f, 0x43, 0x0a, 0x68, + 0xe5, 0x45, 0x28, 0x06, 0x1e, 0x92, 0x91, 0x64, 0x18, 0x4a, 0x50, 0x4c, 0x09, 0x1f, 0x87, 0x69, + 0x13, 0x1f, 0xd0, 0xcf, 0x10, 0x22, 0xd4, 0x59, 0x4a, 0x8d, 0x48, 0xdd, 0x76, 0x94, 0xe3, 0x41, + 0x98, 0xd0, 0x85, 0xf4, 0x19, 0x2d, 0x50, 0xda, 0x82, 0x5f, 0x4a, 0xc9, 0xce, 0x40, 0x46, 0xb3, + 0x6d, 0x46, 0x90, 0xe3, 0x0e, 0xd2, 0xb6, 0x69, 0xd5, 0x65, 0x98, 0xa4, 0x7d, 0x74, 0xb0, 0xdb, + 0x6d, 0x7b, 0x1c, 0x24, 0x4f, 0x69, 0x8a, 0xa4, 0x42, 0x61, 0xe5, 0x94, 0xf6, 0x02, 0x14, 0xf0, + 0x6d, 0xa3, 0x85, 0x4d, 0x1d, 0x33, 0xba, 0x02, 0xa5, 0xcb, 0x8b, 0x42, 0x4a, 0xf4, 0x30, 0xf8, + 0x7e, 0x4f, 0x15, 0x4e, 0x79, 0x82, 0xe1, 0x89, 0xf2, 0x0a, 0x2b, 0x2e, 0xcd, 0x40, 0x6a, 0x49, + 0xf3, 0x34, 0x62, 0xc7, 0xbc, 0x03, 0x16, 0x6b, 0xe4, 0x15, 0xf2, 0x67, 0xe9, 0x97, 0x92, 0x90, + 0xda, 0xb6, 0x3c, 0x8c, 0x9e, 0x0c, 0xc5, 0xb6, 0x13, 0xb1, 0x2a, 0xdd, 0x30, 0xf6, 0x4c, 0xdc, + 0x5a, 0x73, 0xf7, 0x42, 0xb7, 0xf9, 0x04, 0x0a, 0x95, 0x88, 0x28, 0xd4, 0x34, 0x8c, 0x39, 0x56, + 0xd7, 0x6c, 0x89, 0xf3, 0xf2, 0xf4, 0x01, 0x2d, 0x43, 0xc6, 0xd7, 0x93, 0xd4, 0x50, 0x3d, 0x29, + 0x12, 0x3d, 0x21, 0x6a, 0xcc, 0x0b, 0x94, 0xf1, 0x1d, 0xae, 0x2e, 0x55, 0xc8, 0xfa, 0x16, 0xc6, + 0x57, 0xb8, 0x51, 0x74, 0x36, 0x60, 0x23, 0xe1, 0x84, 0x3f, 0xfa, 0xbe, 0xf8, 0x98, 0xce, 0xc9, + 0x7e, 0x05, 0x97, 0x5f, 0x44, 0xb1, 0xf8, 0xd5, 0x42, 0xe3, 0xb4, 0x63, 0x81, 0x62, 0xb1, 0xeb, + 0x85, 0xee, 0x83, 0xac, 0x6b, 0xec, 0x99, 0x9a, 0xd7, 0x75, 0x30, 0xd7, 0xbd, 0xa0, 0x80, 0xd4, + 0x06, 0x1f, 0x8f, 0x30, 0x5d, 0x0b, 0xdd, 0x78, 0x76, 0x05, 0xa6, 0x82, 0xbb, 0xc6, 0x02, 0x14, + 0xa6, 0x67, 0xc8, 0xaf, 0x6a, 0x88, 0x9a, 0xd2, 0xbf, 0x92, 0x20, 0xcd, 0x9d, 0x7b, 0x30, 0x0e, + 0x52, 0xfc, 0x38, 0x24, 0x06, 0x8d, 0x43, 0xf2, 0x6d, 0x8d, 0x03, 0xf8, 0xed, 0x74, 0xf9, 0x0d, + 0x32, 0x71, 0x51, 0x28, 0x6b, 0x64, 0xc3, 0xd8, 0xe3, 0x73, 0x3f, 0xc4, 0x55, 0x7a, 0x4b, 0x22, + 0xee, 0x97, 0xd7, 0xa3, 0x2a, 0x14, 0x44, 0xcb, 0xd4, 0xdd, 0xb6, 0xb6, 0xc7, 0xd5, 0xf1, 0xdc, + 0xe0, 0xe6, 0x91, 0x98, 0x45, 0xc9, 0xf1, 0x16, 0xd1, 0xe8, 0x2b, 0x76, 0x64, 0x13, 0x03, 0x46, + 0x36, 0xa2, 0x4a, 0xc9, 0x7b, 0x53, 0xa5, 0xc8, 0xa0, 0xa7, 0x7a, 0x06, 0xbd, 0xf4, 0x39, 0x89, + 0x5f, 0x76, 0xd6, 0x62, 0x1f, 0xbf, 0xfc, 0xb5, 0x8d, 0xd6, 0xd7, 0x72, 0xfd, 0x6a, 0xe1, 0x96, + 0xda, 0x37, 0x6c, 0x0f, 0xc4, 0x40, 0x46, 0x5b, 0x1d, 0x0c, 0x1f, 0x12, 0x30, 0x8d, 0x60, 0x18, + 0x7f, 0x2e, 0x01, 0x93, 0x7d, 0xf4, 0x7f, 0x0b, 0x87, 0x33, 0x3a, 0x87, 0xc7, 0x46, 0x9c, 0xc3, + 0xe9, 0x81, 0x73, 0xf8, 0xe7, 0x12, 0x34, 0x33, 0x60, 0x5b, 0xae, 0xd6, 0xfe, 0xaa, 0xd8, 0xe0, + 0xb3, 0x90, 0xb5, 0xad, 0xb6, 0xca, 0x6a, 0xd8, 0x97, 0x4b, 0x19, 0xdb, 0x6a, 0x2b, 0x7d, 0xaa, + 0x36, 0xf6, 0x4e, 0x19, 0xe8, 0xf4, 0x3b, 0x30, 0x0c, 0xe3, 0xbd, 0xb3, 0xca, 0x83, 0x3c, 0x93, + 0x05, 0x8f, 0xa0, 0xae, 0x12, 0x21, 0xd0, 0x98, 0x4c, 0xea, 0x8d, 0xf9, 0xfc, 0x76, 0x33, 0x52, + 0x85, 0x13, 0x12, 0x16, 0x16, 0x6f, 0xf4, 0xa7, 0x95, 0x7a, 0x2c, 0x97, 0xc2, 0x09, 0x4b, 0x1f, + 0x94, 0x00, 0x56, 0x89, 0x70, 0x69, 0x8f, 0x49, 0xf0, 0xe3, 0xd2, 0x46, 0xa8, 0x91, 0x77, 0xcf, + 0x0d, 0x1c, 0x38, 0xde, 0x82, 0xbc, 0x1b, 0x6e, 0xfa, 0x12, 0x14, 0x02, 0x05, 0x77, 0xb1, 0x68, + 0xce, 0xdc, 0x51, 0xcb, 0xf9, 0x06, 0xf6, 0x94, 0xfc, 0xed, 0xd0, 0x53, 0xe9, 0x5f, 0x4b, 0x90, + 0xa5, 0xad, 0x5a, 0xc3, 0x9e, 0x16, 0x19, 0x48, 0xe9, 0x6d, 0x0c, 0xe4, 0xfd, 0x00, 0x0c, 0xc7, 0x35, 0xde, 0xc0, 0x5c, 0xbf, 0xb2, 0xb4, 0xa4, 0x61, 0xbc, 0x81, 0xd1, 0xd3, 0xbe, 0xd4, 0x93, - 0x43, 0xa4, 0x2e, 0xd6, 0xfb, 0x5c, 0xf6, 0xa7, 0x61, 0x9c, 0xbe, 0xcc, 0x79, 0xe0, 0xf2, 0x25, + 0x43, 0xa4, 0x2e, 0xd6, 0xfb, 0x5c, 0xf6, 0xa7, 0x61, 0x9c, 0xde, 0xcc, 0x79, 0xe0, 0xf2, 0x25, 0x7c, 0xda, 0xec, 0x76, 0x9a, 0x07, 0x6e, 0xe9, 0x16, 0x8c, 0x37, 0x0f, 0x58, 0xc6, 0xf1, 0x2c, 0x64, 0x1d, 0xcb, 0xe2, 0xd1, 0x20, 0x0b, 0xc4, 0x33, 0xa4, 0x80, 0x06, 0x3f, 0x22, 0xc9, 0x96, 0x08, 0x92, 0x6c, 0x41, 0x9a, 0x30, 0x39, 0x5a, 0x9a, 0x90, 0xac, 0xdb, 0x0b, 0x91, 0x19, 0x85, - 0x1e, 0x83, 0xd3, 0x8d, 0xfa, 0xca, 0x7a, 0x6d, 0x49, 0x5d, 0x6b, 0xac, 0xf4, 0xbc, 0x4e, 0x30, - 0x5b, 0x7c, 0xf3, 0xee, 0x7c, 0x8e, 0x2f, 0xd8, 0x07, 0x41, 0x6f, 0x2a, 0xb5, 0xed, 0x8d, 0x66, - 0x4d, 0x96, 0x18, 0xf4, 0xa6, 0x83, 0x6f, 0x5b, 0x1e, 0x7b, 0xfb, 0xf6, 0x09, 0x38, 0x13, 0x03, - 0xed, 0x2f, 0xdb, 0x27, 0xdf, 0xbc, 0x3b, 0x5f, 0xd8, 0x74, 0x30, 0x53, 0x35, 0x8a, 0xb1, 0x00, - 0x33, 0xfd, 0x18, 0x1b, 0x9b, 0x1b, 0x8d, 0xca, 0xaa, 0x3c, 0x3f, 0x2b, 0xbf, 0x79, 0x77, 0x3e, - 0x2f, 0x6c, 0x07, 0x81, 0x7f, 0xf7, 0xd7, 0xed, 0xa9, 0xfe, 0xf3, 0x0e, 0x77, 0x1c, 0xcd, 0xb6, - 0xb1, 0xe3, 0x0e, 0xda, 0xd8, 0x7f, 0x00, 0x72, 0x4b, 0xa1, 0x7b, 0xbb, 0xfe, 0x09, 0x0f, 0x89, - 0xde, 0xe9, 0x65, 0x1f, 0xa5, 0x12, 0xc0, 0x72, 0xdb, 0xd2, 0xbc, 0x18, 0x98, 0x44, 0x08, 0xa6, - 0x6e, 0x7a, 0xd7, 0xaf, 0xc5, 0xc0, 0x24, 0x05, 0xcc, 0x03, 0x90, 0xdb, 0x1a, 0x04, 0x94, 0x8a, - 0x12, 0x7a, 0xf2, 0x6a, 0x0c, 0xcc, 0x58, 0x0f, 0xa1, 0x58, 0xa0, 0x82, 0x00, 0x3a, 0x0f, 0xd9, - 0xaa, 0x65, 0xb5, 0x63, 0x40, 0x32, 0x21, 0x3a, 0x8d, 0xd0, 0x95, 0xe4, 0x08, 0x50, 0x36, 0xc4, - 0x50, 0x95, 0xac, 0x5b, 0x63, 0x60, 0xfc, 0x33, 0x30, 0xc7, 0x3e, 0xfa, 0xf1, 0x5e, 0x3e, 0x2e, + 0x1e, 0x85, 0xd3, 0x8d, 0xfa, 0xca, 0x7a, 0x6d, 0x49, 0x5d, 0x6b, 0xac, 0xf4, 0xdc, 0x4e, 0x30, + 0x5b, 0x7c, 0xf3, 0xee, 0x7c, 0x8e, 0x2f, 0xd8, 0x07, 0x51, 0x6f, 0x2a, 0xb5, 0xed, 0x8d, 0x66, + 0x4d, 0x96, 0x18, 0xf5, 0xa6, 0x83, 0x6f, 0x5b, 0x1e, 0xbb, 0xfb, 0xf6, 0x71, 0x38, 0x13, 0x43, + 0xed, 0x2f, 0xdb, 0x27, 0xdf, 0xbc, 0x3b, 0x5f, 0xd8, 0x74, 0x30, 0x53, 0x35, 0xca, 0xb1, 0x00, + 0x33, 0xfd, 0x1c, 0x1b, 0x9b, 0x1b, 0x8d, 0xca, 0xaa, 0x3c, 0x3f, 0x2b, 0xbf, 0x79, 0x77, 0x3e, + 0x2f, 0x6c, 0x07, 0xa1, 0x7f, 0xf7, 0xd7, 0xed, 0xa9, 0xfe, 0xf3, 0x0e, 0x77, 0x1c, 0xcd, 0xb6, + 0xb1, 0xe3, 0x0e, 0xda, 0xd8, 0xbf, 0x00, 0xb9, 0xa5, 0xd0, 0x77, 0xbb, 0xfe, 0x09, 0x0f, 0x89, + 0x7e, 0xd3, 0xcb, 0x1e, 0x4a, 0x25, 0x80, 0xe5, 0xb6, 0xa5, 0x79, 0x31, 0x34, 0x89, 0x10, 0x4d, + 0xdd, 0xf4, 0xae, 0x3f, 0x19, 0x43, 0x93, 0x14, 0x34, 0x17, 0x20, 0xb7, 0x35, 0x88, 0x28, 0x15, + 0x05, 0x7a, 0xe2, 0x5a, 0x0c, 0xcd, 0x58, 0x0f, 0x50, 0x2c, 0x51, 0x41, 0x10, 0x9d, 0x87, 0x6c, + 0xd5, 0xb2, 0xda, 0x31, 0x24, 0x99, 0x10, 0x4e, 0x23, 0xf4, 0x49, 0x72, 0x84, 0x28, 0x1b, 0x6a, + 0x50, 0x95, 0xac, 0x5b, 0x63, 0x68, 0xfc, 0x33, 0x30, 0xc7, 0x3e, 0xfa, 0xf1, 0x5e, 0x3e, 0x2e, 0xc7, 0x3d, 0xfa, 0x21, 0xc6, 0xf3, 0xde, 0x8e, 0x7e, 0xe4, 0x43, 0x5b, 0x0f, 0x7e, 0x96, 0xc1, 0xd6, 0x1c, 0xad, 0xe3, 0x1e, 0x37, 0x9d, 0x3a, 0xe4, 0x64, 0xcd, 0xec, 0x10, 0x4d, 0x24, 0x2b, - 0x9b, 0xa2, 0xbf, 0x60, 0xde, 0xa4, 0x2c, 0xa0, 0x6b, 0xe1, 0xec, 0x4e, 0x6e, 0x70, 0x1c, 0xc2, - 0xc0, 0x45, 0xf6, 0xe7, 0x05, 0xc8, 0x88, 0x85, 0x17, 0xb7, 0xcd, 0xe7, 0xe3, 0xa2, 0x25, 0x0e, - 0xc2, 0x71, 0x7d, 0x14, 0xf4, 0x35, 0x90, 0xf5, 0x2d, 0x35, 0x37, 0x4d, 0xa5, 0xa3, 0x6c, 0x3b, - 0x27, 0x10, 0x20, 0xa1, 0x72, 0x90, 0x1e, 0x48, 0x0d, 0xcc, 0x38, 0x6c, 0x33, 0x08, 0x8e, 0xed, - 0xa7, 0x06, 0x9e, 0x82, 0x94, 0xb6, 0xa3, 0x1b, 0xdc, 0x9d, 0xdf, 0x1f, 0x83, 0x58, 0xa9, 0x2e, - 0xd6, 0x19, 0x16, 0x7d, 0x90, 0x83, 0x82, 0x13, 0xa6, 0xdd, 0x43, 0x53, 0xdf, 0x77, 0x2c, 0xf3, - 0x90, 0x7b, 0xf0, 0x38, 0xa6, 0x1b, 0x02, 0x46, 0x30, 0xed, 0x23, 0x11, 0xa6, 0x77, 0x71, 0xe0, - 0xbd, 0xe3, 0x99, 0x5e, 0x66, 0x10, 0x82, 0x69, 0x8e, 0x50, 0xaa, 0xf3, 0x7c, 0x2a, 0x1f, 0x36, - 0xfa, 0xac, 0xd4, 0x81, 0xca, 0x32, 0x3d, 0x6c, 0xc2, 0x67, 0x3a, 0xda, 0x01, 0x9d, 0x34, 0xc4, - 0x95, 0x90, 0xca, 0x3d, 0xfe, 0x70, 0x49, 0x52, 0x49, 0x77, 0xb4, 0x83, 0x15, 0xcd, 0xbd, 0x99, - 0xca, 0x24, 0xe5, 0x54, 0xe9, 0x93, 0x24, 0xfc, 0x8e, 0x0c, 0x0d, 0x7a, 0x14, 0x10, 0xc1, 0xd0, - 0xf6, 0xb0, 0x4a, 0x9c, 0x10, 0x1d, 0x64, 0x41, 0xb7, 0xd8, 0xd1, 0x0e, 0x2a, 0x7b, 0x78, 0xbd, - 0xdb, 0xa1, 0x0c, 0xb8, 0x68, 0x0d, 0x64, 0x01, 0x2c, 0x14, 0xd0, 0x8f, 0x17, 0xfa, 0x1e, 0x4a, - 0xe6, 0x00, 0x2c, 0xa0, 0xf9, 0x20, 0x09, 0x68, 0x26, 0x18, 0x3d, 0xff, 0xc8, 0x57, 0xa4, 0x2b, - 0xc9, 0x68, 0x57, 0x4a, 0x2f, 0x41, 0xb1, 0x47, 0x0b, 0x50, 0x09, 0x0a, 0x3c, 0x6b, 0x4d, 0x8f, - 0xd3, 0xb0, 0xb5, 0x7b, 0x56, 0xc9, 0xb1, 0xe4, 0x34, 0x9d, 0x7d, 0xe5, 0xcc, 0x2f, 0x7e, 0x6c, - 0x4e, 0xa2, 0x5b, 0x97, 0x8f, 0x42, 0x21, 0xa2, 0x06, 0x22, 0x71, 0x29, 0x05, 0x89, 0xcb, 0x00, - 0xf8, 0x35, 0xc8, 0x13, 0x57, 0x8a, 0x5b, 0x1c, 0xf6, 0x61, 0x28, 0x32, 0x5f, 0xdf, 0x2b, 0x6b, - 0x16, 0xc3, 0xaf, 0x09, 0x81, 0x97, 0x44, 0x50, 0x1f, 0x15, 0x7b, 0x4e, 0x40, 0xad, 0x68, 0x6e, - 0xe9, 0x07, 0x24, 0x28, 0xf6, 0xe8, 0x06, 0x7a, 0x01, 0xb2, 0xb6, 0x83, 0x75, 0x23, 0x94, 0xe6, - 0x3a, 0x42, 0x84, 0x29, 0x2a, 0xbe, 0x00, 0x83, 0x84, 0x49, 0xe2, 0x9c, 0x40, 0x0b, 0xb7, 0xb5, - 0xc3, 0xe1, 0xa3, 0xc0, 0x48, 0x88, 0x57, 0xeb, 0x97, 0x08, 0x52, 0xe9, 0x57, 0x25, 0x28, 0x44, - 0x94, 0x0e, 0xb5, 0xe0, 0x7e, 0xe2, 0xa2, 0xc3, 0x67, 0xd3, 0xf9, 0xfb, 0x7b, 0xa1, 0x35, 0x5a, - 0xee, 0xea, 0xd9, 0xbe, 0x76, 0x02, 0x47, 0x43, 0x83, 0x1b, 0x49, 0x99, 0x25, 0x74, 0x82, 0x23, - 0xea, 0xec, 0xa1, 0xbe, 0x1b, 0x2c, 0x18, 0xdf, 0x00, 0x64, 0xef, 0x78, 0xbd, 0xa4, 0x13, 0xa3, - 0x92, 0x96, 0x09, 0x72, 0x98, 0x60, 0xa9, 0x01, 0x10, 0x4c, 0x5c, 0x54, 0x19, 0xa5, 0x13, 0xc9, - 0xa3, 0x38, 0x2c, 0x27, 0x66, 0xa4, 0xea, 0xe6, 0x27, 0x3e, 0x7b, 0x4e, 0x7a, 0x57, 0x42, 0x87, - 0xdf, 0x6d, 0xc0, 0x7d, 0x01, 0xe8, 0x8e, 0x6e, 0xf4, 0x26, 0xb4, 0x65, 0xdf, 0x38, 0x90, 0x5a, - 0xe2, 0x16, 0x8e, 0xde, 0x4f, 0x1b, 0x9a, 0xee, 0x1e, 0xe2, 0x88, 0x46, 0x49, 0x87, 0xdf, 0x63, - 0xb6, 0xfb, 0x3f, 0x64, 0x61, 0x5c, 0xc1, 0xef, 0xeb, 0x62, 0xd7, 0x43, 0x4f, 0x42, 0x0a, 0xeb, - 0xfb, 0x56, 0xff, 0x96, 0x13, 0xef, 0xe5, 0x42, 0x4d, 0xdf, 0xb7, 0x38, 0xf0, 0x8d, 0x13, 0x0a, - 0x05, 0x46, 0xd7, 0x61, 0x6c, 0xb7, 0xdd, 0xe5, 0x89, 0xf0, 0x88, 0x9b, 0x12, 0x58, 0xcb, 0xa4, - 0x3a, 0x40, 0x63, 0xe0, 0xa4, 0x31, 0xfa, 0x73, 0x02, 0xc9, 0x41, 0x8d, 0xd1, 0x5f, 0x11, 0x08, - 0x1a, 0x23, 0xc0, 0x68, 0x11, 0xc0, 0x30, 0x0d, 0x4f, 0xa5, 0x39, 0x62, 0xee, 0x26, 0x4a, 0x71, - 0xa8, 0x86, 0x47, 0xf3, 0xc9, 0x01, 0x7e, 0xd6, 0x10, 0x65, 0x84, 0xe3, 0xf7, 0x75, 0xb1, 0x23, - 0x5c, 0x45, 0x0c, 0xc7, 0xef, 0x21, 0xd5, 0x21, 0x8e, 0x29, 0x38, 0x71, 0xad, 0xec, 0x71, 0x52, - 0xef, 0x80, 0x3f, 0xb9, 0x3d, 0xdf, 0x8f, 0x4a, 0xdf, 0x26, 0x6d, 0x1e, 0x04, 0xc8, 0xe3, 0x3a, - 0x2b, 0x41, 0xcf, 0xfa, 0x4b, 0xb8, 0x5c, 0xef, 0x9a, 0xc9, 0x47, 0x66, 0x2b, 0x38, 0x1f, 0x97, - 0x23, 0xa0, 0x0d, 0x98, 0x68, 0x1b, 0xae, 0xa7, 0xba, 0xa6, 0x66, 0xbb, 0xfb, 0x96, 0xe7, 0xd2, - 0x5c, 0x6c, 0xee, 0xea, 0xc3, 0xfd, 0x24, 0x56, 0x0d, 0xd7, 0x6b, 0x08, 0xb0, 0x80, 0x52, 0xa1, - 0x1d, 0x2e, 0x27, 0x04, 0xad, 0xdd, 0x5d, 0xec, 0xf8, 0x14, 0x69, 0xd2, 0x36, 0x96, 0xe0, 0x06, - 0x81, 0x13, 0x98, 0x21, 0x82, 0x56, 0xb8, 0x1c, 0x7d, 0x1d, 0x4c, 0xb5, 0x2d, 0xad, 0xe5, 0xd3, - 0x53, 0xf5, 0xfd, 0xae, 0x79, 0x8b, 0xa6, 0x78, 0x73, 0x57, 0x2f, 0xc5, 0xb0, 0x69, 0x69, 0x2d, - 0x81, 0xbc, 0x48, 0x40, 0x03, 0xca, 0x93, 0xed, 0xde, 0x3a, 0xa4, 0xc2, 0xb4, 0x66, 0xdb, 0xed, - 0xc3, 0x5e, 0xf2, 0x45, 0x4a, 0xfe, 0xd1, 0x7e, 0xf2, 0x15, 0x02, 0x3d, 0x80, 0x3e, 0xd2, 0xfa, - 0x2a, 0xd1, 0x16, 0xc8, 0xb6, 0x83, 0xe9, 0xbd, 0x55, 0x9b, 0x2f, 0x52, 0xe8, 0xab, 0x7e, 0xb9, - 0xab, 0x17, 0xfb, 0x89, 0x6f, 0x32, 0x48, 0xb1, 0x9a, 0x09, 0x28, 0x17, 0xed, 0x68, 0x0d, 0x23, - 0x6b, 0xe9, 0x98, 0xbe, 0x3a, 0xca, 0xc9, 0x4e, 0x0e, 0x26, 0x4b, 0x21, 0x63, 0xc9, 0x46, 0x6a, - 0xd0, 0x32, 0xe4, 0x58, 0x56, 0x4b, 0x25, 0x26, 0x92, 0xbe, 0x06, 0x98, 0xbb, 0xfa, 0x40, 0xcc, - 0x74, 0xa5, 0x40, 0xdb, 0x96, 0x87, 0x03, 0x62, 0x80, 0xfd, 0x42, 0xb4, 0x03, 0x27, 0xe9, 0xcb, - 0x88, 0x87, 0x6a, 0xd4, 0x1e, 0xcf, 0x4c, 0x51, 0x8a, 0x8f, 0xf5, 0x53, 0xdc, 0xa6, 0xe0, 0xdb, - 0x61, 0xc3, 0x1c, 0x90, 0x9e, 0xba, 0xdd, 0x5f, 0x4b, 0x34, 0x6d, 0xd7, 0x30, 0xb5, 0xb6, 0xf1, - 0x06, 0x66, 0xc1, 0x0b, 0x7d, 0x14, 0x38, 0x56, 0xd3, 0x96, 0x39, 0x1c, 0x0d, 0x66, 0x42, 0x9a, - 0xb6, 0x1b, 0x2e, 0xaf, 0x8e, 0xf3, 0x25, 0x87, 0xff, 0xca, 0xe5, 0xb8, 0x9c, 0x61, 0x2f, 0x5b, - 0xde, 0x4c, 0x65, 0x40, 0xce, 0x95, 0x2e, 0x40, 0x2e, 0x64, 0xa7, 0xd0, 0x0c, 0x8c, 0x73, 0xa7, - 0x2a, 0x0e, 0xf0, 0xf3, 0xcf, 0xd2, 0x04, 0xe4, 0xc3, 0xa6, 0xa9, 0xf4, 0x01, 0x09, 0x72, 0x21, - 0xa3, 0x43, 0x30, 0xc3, 0x1b, 0x5d, 0xd9, 0x20, 0x4e, 0x7d, 0x40, 0x44, 0x15, 0xa2, 0x9e, 0x6d, - 0xb6, 0xe6, 0x69, 0x21, 0x0f, 0x6a, 0xd0, 0x1c, 0xe4, 0xec, 0xab, 0xb6, 0x0f, 0x92, 0xa4, 0x20, - 0x60, 0x5f, 0xb5, 0x05, 0xc0, 0x79, 0xc8, 0x93, 0xae, 0xab, 0xe1, 0x70, 0x39, 0xab, 0xe4, 0x48, - 0x19, 0x07, 0x29, 0xfd, 0x66, 0x02, 0xe4, 0x5e, 0x63, 0xe6, 0x6f, 0x80, 0x49, 0xc7, 0xde, 0x00, - 0x3b, 0xd3, 0xbb, 0xf5, 0x16, 0xec, 0xb6, 0xad, 0x81, 0x1c, 0xec, 0x19, 0x31, 0xdf, 0x73, 0x44, - 0xfc, 0xdf, 0xb3, 0x56, 0x51, 0x8a, 0x7a, 0xcf, 0xe2, 0x65, 0x25, 0x72, 0x5e, 0x24, 0xe5, 0x1f, - 0x71, 0xed, 0xd5, 0x27, 0x01, 0xb3, 0x65, 0xb7, 0x34, 0x0f, 0x8b, 0x94, 0x7b, 0xe8, 0xe8, 0xc8, - 0xc3, 0x50, 0xd4, 0x6c, 0x5b, 0x75, 0x3d, 0xcd, 0xc3, 0x3c, 0xd0, 0x63, 0x89, 0xcc, 0x82, 0x66, - 0xdb, 0x0d, 0x52, 0xca, 0x02, 0xbd, 0x87, 0x60, 0x82, 0x58, 0x78, 0x43, 0x6b, 0x8b, 0x28, 0x22, - 0xcd, 0xe2, 0x41, 0x5e, 0xca, 0x23, 0x91, 0x16, 0xe4, 0xc3, 0xc6, 0xdd, 0x4f, 0xcd, 0x48, 0xa1, - 0xd4, 0x0c, 0xe2, 0x0f, 0x2f, 0x31, 0x09, 0x89, 0xc7, 0xaa, 0xe2, 0x37, 0x23, 0xa7, 0x69, 0x1a, - 0xe7, 0x36, 0xcb, 0xbd, 0x66, 0x14, 0xf6, 0x51, 0x7a, 0x15, 0x26, 0xa2, 0x7e, 0x00, 0x4d, 0x40, - 0xc2, 0x3b, 0xe0, 0xad, 0x24, 0xbc, 0x03, 0x74, 0x85, 0x67, 0x4f, 0x93, 0x34, 0x7b, 0x7a, 0xff, - 0x40, 0x3f, 0x12, 0xa4, 0x4e, 0x6f, 0xa6, 0x32, 0x09, 0x39, 0x59, 0x2a, 0x42, 0x21, 0xe2, 0x25, - 0x4a, 0xa7, 0x60, 0x3a, 0xce, 0xe6, 0x97, 0x0c, 0x98, 0x8e, 0x33, 0xdd, 0xe8, 0x3a, 0x64, 0x7c, - 0xa3, 0xdf, 0x97, 0x6d, 0x13, 0xad, 0xfb, 0x48, 0x3e, 0x6c, 0x64, 0xb7, 0x30, 0x11, 0xd9, 0x2d, - 0x2c, 0x7d, 0x23, 0xcc, 0x0c, 0xb2, 0xe7, 0x3d, 0xdb, 0x07, 0x29, 0x5f, 0x70, 0xa7, 0x20, 0xcd, - 0xdf, 0x07, 0x4e, 0xd0, 0x34, 0x05, 0xff, 0x22, 0x02, 0x65, 0xb6, 0x3d, 0xc9, 0xb2, 0x17, 0xf4, - 0xa3, 0xa4, 0xc2, 0x99, 0x81, 0x26, 0x7d, 0xf0, 0x6e, 0x3b, 0x23, 0xc4, 0x77, 0xdb, 0xe9, 0x07, - 0xfd, 0x15, 0x22, 0x6c, 0x8a, 0x24, 0x60, 0x56, 0xe1, 0x5f, 0xa5, 0x0f, 0x25, 0xe1, 0x54, 0xbc, - 0x5d, 0x47, 0xf3, 0x90, 0x27, 0x8b, 0x07, 0x2f, 0xba, 0xce, 0x80, 0x8e, 0x76, 0xd0, 0xe4, 0x8b, - 0x0c, 0xbe, 0x53, 0x99, 0xf0, 0x77, 0x2a, 0xd1, 0x36, 0x4c, 0xb6, 0x2d, 0x5d, 0x6b, 0xab, 0xa1, - 0x9d, 0x62, 0x3e, 0x9d, 0x1e, 0x1c, 0x64, 0xa7, 0xc5, 0x5e, 0x04, 0x31, 0x41, 0x7c, 0x22, 0x14, - 0x29, 0x91, 0x55, 0x7f, 0x57, 0x19, 0xd5, 0x20, 0xd7, 0x31, 0xdc, 0x1d, 0xbc, 0xaf, 0xdd, 0x36, - 0x2c, 0x87, 0xcf, 0xab, 0x18, 0xed, 0x59, 0x0b, 0x80, 0xc4, 0x16, 0x76, 0x08, 0x2f, 0x34, 0x28, - 0x63, 0xb1, 0x5b, 0xeb, 0xe9, 0x63, 0x5b, 0x96, 0x41, 0x9b, 0xd4, 0xe3, 0x03, 0x37, 0xa9, 0xe3, - 0x76, 0x84, 0x33, 0xf1, 0x3b, 0xc2, 0x6f, 0xd2, 0xc1, 0x89, 0xf3, 0x8e, 0xfd, 0x9b, 0xc4, 0xa8, - 0x09, 0xd3, 0x1c, 0xbf, 0x15, 0x91, 0x7e, 0xdf, 0xb9, 0xb3, 0x68, 0xd0, 0x15, 0x92, 0x3a, 0x12, - 0xf8, 0x83, 0x05, 0x9f, 0xbc, 0x47, 0xc1, 0x8b, 0xa3, 0x1a, 0xa9, 0xd0, 0x51, 0x8d, 0xff, 0xcd, - 0x06, 0xe3, 0x5b, 0x93, 0x62, 0xf3, 0x2c, 0x14, 0x58, 0xc4, 0x9e, 0x41, 0x19, 0xb4, 0xd7, 0x23, - 0x3a, 0x96, 0x3c, 0x76, 0xc7, 0xf8, 0x68, 0xa7, 0x86, 0x8f, 0xf6, 0xd8, 0x3b, 0x39, 0xda, 0xe9, - 0x7b, 0x1c, 0xed, 0x77, 0x75, 0x1c, 0x3e, 0x22, 0xc1, 0xec, 0xe0, 0x70, 0x2c, 0x76, 0x40, 0x8e, - 0xb5, 0x3b, 0x39, 0xc8, 0xe3, 0x3d, 0x04, 0x13, 0x3d, 0xd1, 0x22, 0x53, 0xe6, 0x42, 0x64, 0xb9, - 0x5e, 0xfa, 0xb6, 0x24, 0x4c, 0xc7, 0x05, 0x74, 0x31, 0x33, 0x56, 0x81, 0xa9, 0x16, 0xd6, 0x8d, - 0xd6, 0x3d, 0x4f, 0xd8, 0x49, 0x8e, 0xfe, 0x7f, 0xe6, 0x6b, 0x8c, 0x9e, 0xfc, 0x38, 0x40, 0x46, - 0xc1, 0xae, 0x4d, 0x02, 0x34, 0xf6, 0x6b, 0x77, 0x3a, 0xb6, 0xbd, 0x20, 0xad, 0x15, 0xbb, 0x6e, - 0xe0, 0x20, 0x02, 0x8f, 0xac, 0x9f, 0x7d, 0x3c, 0x74, 0x8d, 0xa7, 0x09, 0x06, 0x2e, 0xf8, 0x59, - 0xf8, 0xed, 0xa3, 0xb2, 0x3c, 0xc1, 0xd3, 0x22, 0x4f, 0x90, 0x1c, 0xb4, 0xfa, 0xe5, 0xc1, 0xb8, - 0x8f, 0xc7, 0x13, 0x05, 0xd7, 0x78, 0xa2, 0x20, 0x35, 0xa8, 0x39, 0x16, 0xb3, 0x07, 0xcd, 0x19, - 0xec, 0x21, 0xd3, 0x70, 0xa6, 0x20, 0x3d, 0xa8, 0xab, 0xa1, 0xe0, 0x3a, 0xe8, 0x6a, 0x90, 0x2a, - 0x78, 0x5a, 0xa4, 0x0a, 0xc6, 0x07, 0x31, 0xcd, 0xa3, 0xc9, 0x80, 0x69, 0x96, 0x2b, 0x78, 0x31, - 0x94, 0x2b, 0xc8, 0xf6, 0xa6, 0xe1, 0xfb, 0x72, 0x05, 0x3e, 0xb6, 0x9f, 0x2c, 0x28, 0xfb, 0xc9, - 0x82, 0xfc, 0xc0, 0x4c, 0x03, 0x0f, 0x03, 0x7d, 0x64, 0x91, 0x2d, 0xd8, 0xec, 0xcb, 0x16, 0xb0, - 0xc5, 0xfd, 0x85, 0xa1, 0xd9, 0x02, 0x9f, 0x54, 0x4f, 0xba, 0x60, 0xb3, 0x2f, 0x5d, 0x30, 0x31, - 0x88, 0x62, 0x4f, 0xcc, 0x19, 0x50, 0x8c, 0xe6, 0x0b, 0xbe, 0x3e, 0x3e, 0x5f, 0x30, 0x70, 0x41, - 0x1f, 0x13, 0x5f, 0xfa, 0xa4, 0x63, 0x12, 0x06, 0xdf, 0x38, 0x20, 0x61, 0x20, 0x0f, 0x5a, 0xd8, - 0xc6, 0x45, 0x97, 0x7e, 0x03, 0x71, 0x19, 0x83, 0xed, 0x98, 0x8c, 0x01, 0x5b, 0xda, 0x3f, 0x32, - 0x42, 0xc6, 0xc0, 0x27, 0xdd, 0x97, 0x32, 0xd8, 0x8e, 0x49, 0x19, 0xa0, 0xc1, 0x74, 0x7b, 0x82, - 0xa2, 0x30, 0xdd, 0x68, 0xce, 0x60, 0x25, 0x9a, 0x33, 0x98, 0x3a, 0x3a, 0x16, 0x65, 0xae, 0xdd, - 0xa7, 0x16, 0x4e, 0x1a, 0xe8, 0x83, 0x92, 0x06, 0x6c, 0x5d, 0xff, 0xf8, 0x88, 0x49, 0x03, 0x9f, - 0x76, 0x6c, 0xd6, 0x60, 0xb3, 0x2f, 0x6b, 0x70, 0x72, 0x90, 0xc2, 0xf5, 0x38, 0x99, 0x40, 0xe1, - 0x06, 0xa6, 0x0d, 0xd8, 0xcf, 0x62, 0xb0, 0x1f, 0xc4, 0x00, 0x39, 0x77, 0x33, 0x95, 0xc9, 0xc9, - 0xf9, 0xd2, 0x23, 0x24, 0xac, 0xe9, 0xb1, 0x7b, 0x64, 0x11, 0x81, 0x1d, 0xc7, 0x72, 0xc4, 0x1e, - 0x28, 0xfd, 0x28, 0x5d, 0x84, 0x7c, 0xd8, 0xc4, 0x1d, 0x91, 0x62, 0x28, 0x42, 0x21, 0x62, 0xd5, - 0x4a, 0xbf, 0x28, 0x41, 0x3e, 0x6c, 0xaf, 0x22, 0x0b, 0xd0, 0x2c, 0x5f, 0x80, 0x86, 0x12, 0x0f, - 0x89, 0x68, 0xe2, 0x61, 0x0e, 0x72, 0x64, 0x11, 0xd6, 0x93, 0x53, 0xd0, 0x6c, 0x3f, 0xa7, 0x20, - 0x0e, 0x6e, 0xb2, 0xf4, 0x04, 0xf7, 0x53, 0xec, 0xd4, 0x42, 0xd1, 0x3f, 0xc4, 0xca, 0xd3, 0xfc, - 0x8f, 0xc3, 0x54, 0x08, 0xd6, 0x5f, 0xdc, 0xb1, 0xe5, 0xb5, 0xec, 0x43, 0x57, 0xf8, 0x2a, 0xef, - 0x57, 0x25, 0x98, 0xec, 0x33, 0x97, 0xb1, 0x79, 0x03, 0xe9, 0x9d, 0xca, 0x1b, 0x24, 0xee, 0x3d, - 0x6f, 0x10, 0x5e, 0xae, 0x26, 0xa3, 0xcb, 0xd5, 0xbf, 0x92, 0xa0, 0x10, 0x31, 0xdb, 0x64, 0x10, - 0x74, 0xab, 0x25, 0x76, 0xcc, 0xe9, 0xdf, 0x24, 0x4e, 0x69, 0x5b, 0x7b, 0x7c, 0x99, 0x48, 0xfe, - 0x24, 0x50, 0xbe, 0x23, 0xca, 0x72, 0x37, 0xe3, 0xaf, 0x3d, 0xc7, 0xc2, 0x77, 0xca, 0xf8, 0x3d, - 0xab, 0x74, 0x70, 0xcf, 0xca, 0xdf, 0x28, 0x1f, 0x0f, 0x6d, 0x94, 0xa3, 0x67, 0x21, 0x4b, 0x77, - 0x01, 0x54, 0xcb, 0x0e, 0x7e, 0x98, 0x77, 0xf0, 0x1d, 0x2b, 0x97, 0x5e, 0x12, 0x60, 0x17, 0xb3, - 0x82, 0x28, 0x24, 0x1b, 0x89, 0x42, 0xee, 0x83, 0x2c, 0x61, 0x9f, 0xfd, 0x1c, 0x11, 0xf0, 0xa7, - 0x46, 0x44, 0x41, 0xe9, 0xa7, 0x12, 0x50, 0xec, 0xf1, 0x3a, 0xb1, 0x9d, 0x8f, 0x3b, 0xb1, 0x32, - 0x9a, 0x40, 0xce, 0x01, 0xec, 0x69, 0xae, 0x7a, 0x47, 0x33, 0x3d, 0xdc, 0xe2, 0x52, 0x09, 0x95, - 0xa0, 0x59, 0xc8, 0x90, 0xaf, 0xae, 0x8b, 0x5b, 0x3c, 0x43, 0xe3, 0x7f, 0xa3, 0x3a, 0xa4, 0xf1, - 0x6d, 0xfa, 0x1c, 0x37, 0x7b, 0xd4, 0xfe, 0x74, 0x8c, 0x79, 0x22, 0xf5, 0xd5, 0x19, 0x32, 0xdc, - 0x7f, 0xf4, 0xd6, 0x9c, 0xcc, 0xc0, 0x1f, 0xf3, 0x2f, 0xb0, 0x2a, 0x9c, 0x40, 0x54, 0x0c, 0x99, - 0x1e, 0x31, 0xd0, 0x74, 0x61, 0x5e, 0xac, 0xfd, 0x89, 0x50, 0xd9, 0x4d, 0x1c, 0xa5, 0xd0, 0xc1, - 0x1d, 0xdb, 0xb2, 0xda, 0x2a, 0x9b, 0xe7, 0x15, 0x98, 0x88, 0x3a, 0x59, 0xf6, 0x5b, 0x81, 0x9e, - 0x66, 0x98, 0x6a, 0x24, 0x36, 0xce, 0xb3, 0x42, 0x36, 0xaf, 0x6e, 0xa6, 0x32, 0x92, 0x9c, 0xe0, - 0xe9, 0x9a, 0xf7, 0xc0, 0xc9, 0x58, 0x1f, 0x8b, 0x9e, 0x81, 0x6c, 0xe0, 0x9f, 0xd9, 0x7d, 0xaa, - 0xa3, 0xf2, 0x30, 0x01, 0x70, 0x69, 0x1b, 0x4e, 0xc6, 0x3a, 0x59, 0xf4, 0x02, 0xa4, 0xd9, 0x79, - 0x6d, 0x7e, 0x26, 0xef, 0xa1, 0xe1, 0xde, 0xb9, 0xdb, 0xf6, 0x14, 0x8e, 0x54, 0xba, 0x02, 0x67, - 0x06, 0x7a, 0xd9, 0x20, 0x9b, 0x22, 0x85, 0xb2, 0x29, 0xa5, 0x9f, 0x96, 0x60, 0x76, 0xb0, 0xe7, - 0x44, 0xd5, 0x1e, 0x86, 0x2e, 0x8d, 0xe8, 0x77, 0x43, 0x5c, 0x91, 0xe5, 0x86, 0x83, 0x77, 0xb1, - 0xa7, 0xef, 0x33, 0x17, 0xce, 0x8c, 0x42, 0x41, 0x29, 0xf0, 0x52, 0x8a, 0xe3, 0x32, 0xb0, 0xd7, - 0xb1, 0xee, 0xa9, 0x6c, 0x50, 0x5d, 0xfe, 0x53, 0xe3, 0x05, 0x56, 0xda, 0x60, 0x85, 0xa5, 0x47, - 0xe1, 0xf4, 0x00, 0x5f, 0x1c, 0x73, 0xdc, 0xfc, 0x35, 0x02, 0x1c, 0xeb, 0x60, 0xd1, 0x4b, 0x90, - 0x76, 0x3d, 0xcd, 0xeb, 0xba, 0xbc, 0x67, 0x17, 0x86, 0xfa, 0xe6, 0x06, 0x05, 0x57, 0x38, 0x5a, - 0xe9, 0x39, 0x40, 0xfd, 0x9e, 0x36, 0x66, 0x6d, 0x25, 0xc5, 0xad, 0xad, 0x76, 0xe0, 0xec, 0x11, - 0x3e, 0x15, 0x2d, 0xf6, 0x30, 0xf7, 0xe8, 0x48, 0x2e, 0xb9, 0x87, 0xc1, 0x3f, 0x4d, 0xc0, 0xc9, - 0x58, 0xd7, 0x1a, 0x9a, 0xa5, 0xd2, 0xdb, 0x9d, 0xa5, 0x2f, 0x00, 0x78, 0x07, 0xe2, 0x92, 0x01, - 0xb7, 0xf6, 0x71, 0xeb, 0x89, 0x03, 0xac, 0x53, 0x83, 0x45, 0x14, 0x23, 0xeb, 0xf1, 0xbf, 0xc8, - 0xe2, 0x3f, 0xb4, 0x9e, 0xed, 0x52, 0x4f, 0xe0, 0xf2, 0xa5, 0xde, 0xc8, 0x3e, 0x23, 0x58, 0xf8, - 0xb2, 0x62, 0x17, 0xbd, 0x06, 0xa7, 0x7b, 0x3c, 0x9a, 0x4f, 0x3b, 0x35, 0xb2, 0x63, 0x3b, 0x19, - 0x75, 0x6c, 0x82, 0x76, 0xd8, 0x2b, 0x8d, 0x45, 0xbd, 0xd2, 0x6b, 0x00, 0xc1, 0xc2, 0x36, 0x38, - 0x0f, 0x2b, 0x85, 0xcf, 0xc3, 0x5e, 0x87, 0x31, 0xa2, 0x09, 0x42, 0x54, 0x31, 0x06, 0x83, 0x0c, - 0x69, 0x68, 0x65, 0xcc, 0xc0, 0x4b, 0xaf, 0x0b, 0x6d, 0x0b, 0xe7, 0x18, 0x07, 0xb4, 0xf1, 0x62, - 0xb4, 0x8d, 0xd2, 0xe0, 0x74, 0x65, 0x7c, 0x5b, 0xff, 0x17, 0x8c, 0xd1, 0xe1, 0x8f, 0xbd, 0x80, - 0xfc, 0x0d, 0x00, 0x9a, 0xe7, 0x39, 0xc6, 0x4e, 0x37, 0x68, 0x61, 0x7e, 0x80, 0xfe, 0x54, 0x04, - 0x60, 0xf5, 0x3e, 0xae, 0x48, 0xd3, 0x01, 0x6e, 0x48, 0x99, 0x42, 0x14, 0x4b, 0xeb, 0x30, 0x11, - 0xc5, 0x8d, 0xbf, 0x51, 0x1d, 0xbc, 0xdb, 0x24, 0xce, 0xb5, 0x05, 0x8e, 0x9c, 0xbf, 0xa5, 0x46, - 0x3f, 0x4a, 0xdf, 0x94, 0x80, 0x7c, 0x58, 0xfb, 0xfe, 0x0e, 0x3a, 0xcb, 0xd2, 0xb7, 0x49, 0x90, - 0xf1, 0xfb, 0x7f, 0xc4, 0x6d, 0x80, 0xe0, 0x6e, 0xbd, 0x9f, 0x83, 0x67, 0xbb, 0x1e, 0x49, 0x7f, - 0xd7, 0xe3, 0x79, 0xdf, 0x21, 0x0c, 0x5c, 0xcc, 0x87, 0xa5, 0x2d, 0xce, 0xe1, 0x72, 0x07, 0xf5, - 0xdc, 0x68, 0x97, 0x7b, 0xa7, 0x61, 0x2c, 0x7c, 0x2f, 0x97, 0x7d, 0x94, 0x70, 0xe8, 0xb8, 0x12, - 0x9b, 0x8d, 0xe1, 0x5b, 0xc0, 0xd2, 0xf1, 0x6f, 0x01, 0xfb, 0xcd, 0x24, 0xc2, 0xcd, 0xfc, 0x7d, - 0x09, 0x32, 0x62, 0x5e, 0xa0, 0x97, 0xc2, 0x87, 0xe9, 0xc4, 0xc9, 0x9c, 0xc1, 0x76, 0x89, 0x37, - 0x10, 0x3a, 0x4b, 0xd7, 0x77, 0x25, 0x21, 0x79, 0xec, 0x2b, 0x09, 0x3c, 0x0e, 0xf9, 0xb2, 0x04, - 0x72, 0xef, 0xbc, 0x7d, 0xfb, 0xfc, 0xf5, 0xfb, 0xab, 0x64, 0x8c, 0xbf, 0x1a, 0x74, 0xd1, 0x20, - 0x35, 0xe8, 0xa2, 0x41, 0x7f, 0xbf, 0xc7, 0xee, 0xb5, 0xdf, 0xdf, 0x9a, 0x80, 0x5c, 0x28, 0xc7, - 0x87, 0x9e, 0x8a, 0xdc, 0x5a, 0x38, 0x7f, 0x64, 0x42, 0x30, 0x74, 0x6d, 0x21, 0x22, 0xa9, 0xc4, - 0x3d, 0x48, 0xea, 0x9d, 0xbf, 0xcc, 0x18, 0x7f, 0x33, 0x7e, 0x6c, 0xc0, 0xcd, 0xf8, 0xff, 0x57, - 0x82, 0x8c, 0x9f, 0x7c, 0x39, 0xee, 0x9e, 0xdc, 0x29, 0x48, 0xf3, 0xd8, 0x8b, 0x6d, 0xca, 0xf1, - 0xaf, 0xd8, 0xec, 0xe8, 0x2c, 0x64, 0xc4, 0xef, 0xa2, 0x72, 0x0f, 0xe7, 0x7f, 0x5f, 0xda, 0x81, - 0x5c, 0x68, 0x5b, 0x13, 0x9d, 0x81, 0x93, 0x8b, 0x37, 0x6a, 0x8b, 0x2f, 0xab, 0xcd, 0x57, 0x7a, - 0x7f, 0x5b, 0xaf, 0xaf, 0x4a, 0xa9, 0xd1, 0x6f, 0x59, 0x42, 0xa7, 0x61, 0x2a, 0x5a, 0xc5, 0x2a, - 0x12, 0xb3, 0xa9, 0x6f, 0xff, 0xb1, 0x73, 0x27, 0x2e, 0x7d, 0x59, 0x82, 0xa9, 0x98, 0x28, 0x17, - 0x9d, 0x87, 0xfb, 0x37, 0x96, 0x97, 0x6b, 0x8a, 0xda, 0x58, 0xaf, 0x6c, 0x36, 0x6e, 0x6c, 0x34, - 0x55, 0xa5, 0xd6, 0xd8, 0x5a, 0x6d, 0x86, 0x1a, 0x9d, 0x87, 0xfb, 0xe2, 0x41, 0x2a, 0x8b, 0x8b, - 0xb5, 0xcd, 0x26, 0xfb, 0x71, 0xbf, 0x01, 0x10, 0xd5, 0x0d, 0xa5, 0x29, 0x27, 0x06, 0x93, 0x50, - 0x6a, 0x37, 0x6b, 0x8b, 0x4d, 0x39, 0x89, 0x2e, 0xc0, 0x03, 0x47, 0x41, 0xa8, 0xcb, 0x1b, 0xca, - 0x5a, 0xa5, 0x29, 0xa7, 0x86, 0x02, 0x36, 0x6a, 0xeb, 0x4b, 0x35, 0x45, 0x1e, 0xe3, 0xfd, 0xfe, - 0x58, 0x02, 0x66, 0x06, 0x05, 0xd3, 0x84, 0x56, 0x65, 0x73, 0x73, 0xf5, 0xd5, 0x80, 0xd6, 0xe2, - 0x8d, 0xad, 0xf5, 0x97, 0xfb, 0x45, 0xf0, 0x30, 0x94, 0x8e, 0x02, 0xf4, 0x05, 0xf1, 0x10, 0x9c, - 0x3f, 0x12, 0x8e, 0x8b, 0x63, 0x08, 0x98, 0x52, 0x6b, 0x2a, 0xaf, 0xca, 0x49, 0xb4, 0x00, 0x97, - 0x86, 0x82, 0xf9, 0x75, 0x72, 0x0a, 0x5d, 0x86, 0x47, 0x8f, 0x86, 0x67, 0x02, 0x12, 0x08, 0x42, - 0x44, 0x6f, 0x4a, 0x70, 0x32, 0x36, 0x2a, 0x47, 0x0f, 0xc0, 0xdc, 0xa6, 0xb2, 0xb1, 0x58, 0x6b, - 0x34, 0xfc, 0x3b, 0x0b, 0x6a, 0xa3, 0x59, 0x69, 0x6e, 0x35, 0x42, 0xb2, 0x29, 0xc1, 0xb9, 0x41, - 0x40, 0xbe, 0x5c, 0x8e, 0x80, 0xe1, 0x1a, 0x20, 0xf4, 0xf4, 0xae, 0x04, 0x67, 0x06, 0x46, 0xe1, - 0xe8, 0x22, 0x3c, 0xb8, 0x5d, 0x53, 0xea, 0xcb, 0xaf, 0xaa, 0xdb, 0x1b, 0xcd, 0xf0, 0xaf, 0x48, - 0xf6, 0x71, 0x75, 0x01, 0x1e, 0x38, 0x12, 0xd2, 0x67, 0x6d, 0x18, 0x60, 0x0f, 0x7f, 0xdf, 0x22, - 0x41, 0xb1, 0xc7, 0x16, 0xa2, 0xfb, 0x60, 0x66, 0xad, 0xde, 0xa8, 0xd6, 0x6e, 0x54, 0xb6, 0xeb, - 0x1b, 0x4a, 0xef, 0x9c, 0x7d, 0x00, 0xe6, 0xfa, 0x6a, 0x97, 0xb6, 0x36, 0x57, 0xeb, 0x8b, 0x95, - 0x66, 0x4d, 0x65, 0x17, 0x4d, 0x48, 0xc7, 0xfa, 0x80, 0x56, 0xeb, 0x2b, 0x37, 0x9a, 0xea, 0xe2, - 0x6a, 0xbd, 0xb6, 0xde, 0x54, 0x2b, 0xcd, 0x66, 0x25, 0x98, 0xce, 0xd5, 0x97, 0x07, 0x1e, 0xf0, - 0xbc, 0x32, 0xfa, 0x01, 0x4f, 0x7e, 0x84, 0xd3, 0x3f, 0xdf, 0xf9, 0x7b, 0xd7, 0xe0, 0x41, 0xfe, - 0x30, 0x91, 0xeb, 0x69, 0xb7, 0x0c, 0x73, 0xcf, 0x7f, 0x21, 0x8a, 0x7f, 0xf3, 0x73, 0x9e, 0xa7, - 0xf8, 0x2b, 0x48, 0xa2, 0x74, 0xc8, 0x3b, 0x51, 0x03, 0x9f, 0x17, 0x1d, 0x7a, 0x3f, 0x60, 0xd8, - 0x31, 0xcd, 0xa3, 0xde, 0xa0, 0x1a, 0xf2, 0xd2, 0x55, 0xcc, 0x1b, 0x55, 0xb3, 0x47, 0xbf, 0xd7, - 0x30, 0x7b, 0xe4, 0xe1, 0xd7, 0xd2, 0x07, 0x25, 0x98, 0xb8, 0x61, 0xb8, 0x9e, 0xe5, 0x18, 0xba, - 0xd6, 0xa6, 0x81, 0xc4, 0xf3, 0x23, 0x5f, 0x68, 0xab, 0x66, 0x89, 0x1b, 0xe3, 0x2f, 0x59, 0xed, - 0x8b, 0x3b, 0x65, 0xe9, 0xdb, 0x5a, 0x9b, 0x5d, 0x26, 0x0b, 0x3f, 0x85, 0xd7, 0x2b, 0xf6, 0x90, - 0x7f, 0x0d, 0x53, 0x61, 0xb8, 0xe5, 0xc4, 0x8c, 0x54, 0xfa, 0x4e, 0x09, 0xe4, 0x80, 0x35, 0x05, - 0xeb, 0x96, 0xd3, 0xa2, 0x91, 0xa2, 0x6d, 0x87, 0x36, 0x43, 0xc5, 0x27, 0xbd, 0xc2, 0x68, 0x74, - 0xc4, 0x3d, 0x89, 0xa3, 0x9c, 0x6f, 0x2a, 0xe4, 0x78, 0x63, 0x2e, 0xee, 0x27, 0xe3, 0x2e, 0xee, - 0x97, 0x7e, 0x20, 0x01, 0x45, 0xba, 0xdc, 0x72, 0xe9, 0xf2, 0x9c, 0x2e, 0x00, 0x6f, 0x42, 0xca, - 0xd1, 0x3c, 0xbe, 0x28, 0xaa, 0x5e, 0x3f, 0xf6, 0x63, 0x5c, 0xac, 0xcf, 0x94, 0x06, 0x7a, 0x0f, - 0x64, 0x3a, 0xda, 0x81, 0x4a, 0xe9, 0x25, 0xde, 0x16, 0xbd, 0xf1, 0x8e, 0x76, 0x40, 0xf8, 0x43, - 0xdf, 0x00, 0x45, 0x42, 0x52, 0xdf, 0xd7, 0xcc, 0x3d, 0xcc, 0x28, 0x27, 0xdf, 0x16, 0xe5, 0x42, - 0x47, 0x3b, 0x58, 0xa4, 0xd4, 0x08, 0x7d, 0xfe, 0x68, 0xd9, 0xaf, 0x48, 0x7c, 0xad, 0x4b, 0x05, - 0x83, 0x34, 0x90, 0x75, 0xff, 0x8b, 0x36, 0x2a, 0x52, 0xc8, 0x17, 0x06, 0x69, 0x42, 0x8f, 0x58, - 0xab, 0x05, 0xc2, 0xde, 0x67, 0xde, 0x9a, 0x93, 0x58, 0xab, 0x45, 0xbd, 0x4f, 0xec, 0x39, 0xb6, - 0x86, 0x57, 0x47, 0x1c, 0xf0, 0x82, 0x88, 0xb6, 0x18, 0x41, 0x60, 0xd8, 0xa4, 0x9e, 0xf7, 0xe1, - 0x13, 0x12, 0xe4, 0x96, 0x42, 0x0f, 0x89, 0xce, 0xc0, 0x78, 0xc7, 0x32, 0x8d, 0x5b, 0xd8, 0xf1, - 0xf7, 0x00, 0xd8, 0x27, 0x89, 0x88, 0xd8, 0xef, 0x51, 0x7a, 0x87, 0xe2, 0x39, 0x17, 0xf1, 0x4d, - 0xb0, 0xee, 0xe0, 0x1d, 0xd7, 0x10, 0x72, 0x56, 0xc4, 0x27, 0x7a, 0x04, 0x64, 0x17, 0xeb, 0x5d, - 0xc7, 0xf0, 0x0e, 0x55, 0xdd, 0x32, 0x3d, 0x4d, 0xf7, 0xf8, 0xd2, 0xb1, 0x28, 0xca, 0x17, 0x59, - 0x31, 0x21, 0xd2, 0xc2, 0x9e, 0x66, 0xb4, 0xd9, 0xd1, 0xb8, 0xac, 0x22, 0x3e, 0x39, 0xab, 0x77, - 0xc7, 0xc3, 0x0b, 0xa7, 0x45, 0x90, 0x2d, 0x1b, 0x3b, 0x91, 0x33, 0x00, 0x4c, 0x1b, 0x67, 0x7e, - 0xeb, 0xd3, 0x8f, 0x4f, 0x73, 0x81, 0xf3, 0xdd, 0x63, 0x76, 0x1f, 0x4c, 0x29, 0x0a, 0x0c, 0x71, - 0x38, 0xe0, 0xd5, 0x48, 0xd6, 0xbf, 0xbb, 0x13, 0xbc, 0xa4, 0x34, 0xdd, 0x27, 0xd4, 0x8a, 0x79, - 0x58, 0x9d, 0xf9, 0x8d, 0x80, 0x34, 0x5f, 0x5a, 0x6d, 0xd2, 0x65, 0x54, 0x78, 0x07, 0x80, 0x92, - 0x21, 0xc1, 0xe6, 0xeb, 0x9a, 0xd1, 0x16, 0x3f, 0xdd, 0xab, 0xf0, 0x2f, 0x54, 0xf6, 0xb3, 0x5a, - 0x29, 0x1a, 0xbb, 0x97, 0x06, 0xe9, 0x46, 0xd5, 0x32, 0x5b, 0xd1, 0x64, 0x16, 0x5a, 0x84, 0xb4, - 0x67, 0xdd, 0xc2, 0x26, 0x17, 0x50, 0xf5, 0xd1, 0x63, 0xbc, 0xba, 0xa7, 0x70, 0x54, 0xf4, 0x75, - 0x20, 0xb7, 0x70, 0x1b, 0xef, 0xb1, 0xab, 0xaf, 0xfb, 0x9a, 0x83, 0xd9, 0x1b, 0x0c, 0xf7, 0xf4, - 0xa6, 0x5e, 0xd1, 0x27, 0xd5, 0xa0, 0x94, 0xd0, 0x66, 0xf4, 0xa9, 0xda, 0x71, 0x7f, 0xc3, 0x3a, - 0xb6, 0x8f, 0x21, 0xcd, 0x0b, 0xdb, 0xc2, 0xc8, 0xd3, 0xb6, 0x8f, 0x80, 0xdc, 0x35, 0x77, 0x2c, - 0x93, 0xfe, 0xe2, 0x25, 0x8f, 0xf7, 0x33, 0x6c, 0x27, 0xc8, 0x2f, 0xe7, 0x3b, 0x41, 0x9b, 0x30, - 0x11, 0x80, 0xd2, 0x19, 0x92, 0x3d, 0xee, 0x0c, 0x29, 0xf8, 0x04, 0x08, 0x08, 0x5a, 0x03, 0x08, - 0xe6, 0x20, 0xdd, 0x87, 0xc8, 0x0d, 0x1e, 0xb1, 0x60, 0x36, 0x87, 0x3b, 0x13, 0x22, 0x80, 0x4c, - 0x98, 0xea, 0x18, 0xa6, 0xea, 0xe2, 0xf6, 0xae, 0xca, 0x25, 0x47, 0xe8, 0xe6, 0xa8, 0xf8, 0x5f, - 0x3c, 0xc6, 0x68, 0xfe, 0xce, 0xa7, 0x1f, 0x2f, 0x06, 0x8f, 0x11, 0xce, 0x3f, 0xb1, 0x70, 0xed, - 0x69, 0x65, 0xb2, 0x63, 0x98, 0x0d, 0xdc, 0xde, 0x5d, 0xf2, 0x09, 0xa3, 0xe7, 0xe1, 0x6c, 0x20, - 0x10, 0xcb, 0x54, 0xf7, 0xad, 0x76, 0x4b, 0x75, 0xf0, 0xae, 0xaa, 0xd3, 0xa7, 0x14, 0xf3, 0x54, - 0x8c, 0xa7, 0x7d, 0x90, 0x0d, 0xf3, 0x86, 0xd5, 0x6e, 0x29, 0x78, 0x77, 0x91, 0x54, 0xa3, 0x07, - 0x20, 0x90, 0x86, 0x6a, 0xb4, 0xdc, 0x99, 0xc2, 0x7c, 0xf2, 0x62, 0x4a, 0xc9, 0xfb, 0x85, 0xf5, - 0x96, 0x5b, 0xce, 0x7c, 0xfb, 0xc7, 0xe6, 0x4e, 0x7c, 0xe1, 0x63, 0x73, 0x27, 0x4a, 0xcb, 0xf4, - 0xad, 0x35, 0x3e, 0xb5, 0xb0, 0x8b, 0xae, 0x43, 0x56, 0x13, 0x1f, 0xec, 0x0a, 0xd5, 0x11, 0x53, - 0x33, 0x00, 0x2d, 0x7d, 0x52, 0x82, 0xf4, 0xd2, 0xf6, 0xa6, 0x66, 0x38, 0xa8, 0x06, 0x93, 0x81, - 0xae, 0x8e, 0x3a, 0xcb, 0x03, 0xf5, 0x16, 0xd3, 0x7c, 0x7d, 0xd0, 0x81, 0xa1, 0x6c, 0xf5, 0xfc, - 0x6f, 0x7d, 0xfa, 0xf1, 0xfb, 0x39, 0x99, 0xed, 0x9e, 0xb3, 0x43, 0x82, 0x5e, 0xef, 0x99, 0xa2, - 0x50, 0x9f, 0x6f, 0xc2, 0x38, 0x63, 0xd5, 0x45, 0x2f, 0xc1, 0x98, 0x4d, 0xfe, 0xe0, 0xe9, 0xe4, - 0x73, 0x03, 0x75, 0x9e, 0xc2, 0x87, 0x35, 0x84, 0xe1, 0x95, 0xbe, 0x33, 0x01, 0xb0, 0xb4, 0xbd, - 0xdd, 0x74, 0x0c, 0xbb, 0x8d, 0xbd, 0x77, 0xaa, 0xef, 0x5b, 0x70, 0x32, 0x74, 0xd3, 0xdd, 0xd1, - 0x8f, 0xdf, 0xff, 0xa9, 0xe0, 0xce, 0xbb, 0xa3, 0xc7, 0x92, 0x6d, 0xb9, 0x9e, 0x4f, 0x36, 0x79, - 0x7c, 0xb2, 0x4b, 0xae, 0xd7, 0x2f, 0xd9, 0x57, 0x20, 0x17, 0x08, 0xc3, 0x45, 0x75, 0xc8, 0x78, - 0xfc, 0x6f, 0x2e, 0xe0, 0xd2, 0x60, 0x01, 0x0b, 0xb4, 0xb0, 0x90, 0x7d, 0xf4, 0xd2, 0x5f, 0x49, - 0x00, 0xa1, 0x39, 0xf2, 0x37, 0x53, 0xc7, 0x50, 0x1d, 0xd2, 0xdc, 0x38, 0x27, 0xef, 0xf9, 0xc1, - 0x53, 0x46, 0x20, 0x24, 0xd4, 0xef, 0x4e, 0xc0, 0xd4, 0x96, 0x98, 0xbd, 0x7f, 0xf3, 0x65, 0xb0, - 0x05, 0xe3, 0xd8, 0xf4, 0x1c, 0xc3, 0xdf, 0x0e, 0x79, 0x62, 0xd0, 0x98, 0xc7, 0x74, 0xaa, 0x66, - 0x7a, 0xce, 0x61, 0x58, 0x03, 0x04, 0xad, 0x90, 0x3c, 0x3e, 0x9c, 0x84, 0x99, 0x41, 0xa8, 0x24, - 0x40, 0xd6, 0x1d, 0x4c, 0x0b, 0xa2, 0x37, 0xfa, 0x26, 0x44, 0x31, 0x77, 0x3b, 0x0a, 0x90, 0x40, - 0x8d, 0x28, 0x17, 0x01, 0xbd, 0xb7, 0xc8, 0x6c, 0x22, 0xa0, 0x40, 0x1d, 0x4f, 0x13, 0x8a, 0xe2, - 0x1e, 0xc0, 0x8e, 0xd6, 0xd6, 0x4c, 0x5d, 0x44, 0xb0, 0xc7, 0xf2, 0xf9, 0xe2, 0x2e, 0x41, 0x95, - 0x91, 0x40, 0x35, 0x18, 0x17, 0xd4, 0x52, 0xc7, 0xa7, 0x26, 0x70, 0xd1, 0x79, 0xc8, 0x87, 0x1d, - 0x03, 0x8d, 0x46, 0x52, 0x4a, 0x2e, 0xe4, 0x17, 0x86, 0x79, 0x9e, 0xf4, 0x91, 0x9e, 0x87, 0x07, - 0x7c, 0x3f, 0x9c, 0x84, 0x49, 0x05, 0xb7, 0xfe, 0xf6, 0x0f, 0xcb, 0x26, 0x00, 0x9b, 0xaa, 0xc4, - 0x92, 0xf2, 0x91, 0xb9, 0x87, 0xf9, 0x9e, 0x65, 0x44, 0x96, 0x5c, 0xef, 0xab, 0x35, 0x42, 0xbf, - 0x9b, 0x80, 0x7c, 0x78, 0x84, 0xfe, 0x4e, 0x3a, 0x2d, 0xb4, 0x1e, 0x98, 0x29, 0x76, 0x93, 0xe1, - 0x91, 0x41, 0x66, 0xaa, 0x4f, 0x9b, 0x87, 0xd8, 0xa7, 0xcf, 0x27, 0x21, 0xcd, 0x4f, 0x14, 0x6d, - 0xf4, 0xc5, 0xb6, 0x43, 0xaf, 0x73, 0x17, 0xc4, 0x8d, 0xf8, 0xd8, 0xd0, 0xf6, 0x21, 0x98, 0x20, - 0x6b, 0xe4, 0xc8, 0x31, 0x25, 0xe9, 0x62, 0x81, 0x2e, 0x75, 0x83, 0x63, 0xba, 0x68, 0x0e, 0x72, - 0x04, 0x2c, 0xb0, 0xc3, 0x04, 0x06, 0x3a, 0xda, 0x41, 0x8d, 0x95, 0xa0, 0xc7, 0x01, 0xed, 0xfb, - 0xb9, 0x0a, 0x35, 0x10, 0x04, 0x81, 0x9b, 0x0c, 0x6a, 0x04, 0xf8, 0xfd, 0x00, 0x84, 0x0b, 0x95, - 0xbd, 0xf1, 0xcd, 0x5f, 0x50, 0x27, 0x25, 0x4b, 0xf4, 0x9d, 0xef, 0x6f, 0x91, 0x58, 0x88, 0xdc, - 0xb3, 0x92, 0xe6, 0x2b, 0x94, 0xe6, 0x08, 0x93, 0xe2, 0x2f, 0xde, 0x9a, 0x9b, 0x3d, 0xd4, 0x3a, - 0xed, 0x72, 0x29, 0x86, 0x4e, 0x29, 0x6e, 0x71, 0x4f, 0x02, 0xe7, 0xe8, 0x4a, 0x1c, 0xd5, 0x41, - 0xbe, 0x85, 0x0f, 0x55, 0x87, 0xff, 0x44, 0xbc, 0xba, 0x8b, 0xc5, 0x8b, 0x0a, 0x67, 0x16, 0x62, - 0x5e, 0x5c, 0x5f, 0x58, 0xb4, 0x0c, 0x93, 0xef, 0x96, 0x4c, 0xdc, 0xc2, 0x87, 0x0a, 0xc7, 0x5b, - 0xc6, 0xb8, 0xfc, 0x20, 0x99, 0x29, 0x6f, 0x7e, 0xfe, 0x67, 0x2e, 0x9d, 0x0d, 0xbd, 0x1e, 0x7e, - 0xe0, 0x67, 0xec, 0xd8, 0xf0, 0x92, 0xa0, 0x17, 0x05, 0x0e, 0x28, 0x74, 0x2c, 0x0d, 0x42, 0xeb, - 0x04, 0xe9, 0xe8, 0xf5, 0x47, 0x80, 0x1f, 0x59, 0x7f, 0x84, 0xa6, 0xe7, 0x8b, 0x81, 0xfd, 0x4f, - 0x0c, 0xeb, 0x4d, 0x58, 0x33, 0x39, 0x12, 0x9d, 0xf5, 0x27, 0x4a, 0xff, 0x5e, 0x82, 0x33, 0x7d, - 0x9a, 0xec, 0xb3, 0xac, 0x03, 0x72, 0x42, 0x95, 0x54, 0x23, 0xc4, 0xce, 0xe4, 0xbd, 0x4d, 0x8c, - 0x49, 0xa7, 0xcf, 0x09, 0xbc, 0x33, 0x8e, 0x8c, 0x5b, 0xb1, 0x5f, 0x97, 0x60, 0x3a, 0xcc, 0x80, - 0xdf, 0x95, 0x06, 0xe4, 0xc3, 0x4d, 0xf3, 0x4e, 0x3c, 0x38, 0x4a, 0x27, 0xc2, 0xfc, 0x47, 0x88, - 0xa0, 0xed, 0xc0, 0x5a, 0xb0, 0x3c, 0xe1, 0x95, 0x91, 0x85, 0x22, 0x18, 0x8b, 0xb5, 0x1a, 0x6c, - 0x6c, 0xfe, 0x58, 0x82, 0xd4, 0xa6, 0x65, 0xb5, 0xd1, 0xfb, 0x60, 0xd2, 0xb4, 0x3c, 0x95, 0xcc, - 0x2c, 0xdc, 0x52, 0x79, 0xda, 0x80, 0x59, 0xe2, 0xda, 0x91, 0xb2, 0xfa, 0xa3, 0xb7, 0xe6, 0xfa, - 0x31, 0xe3, 0x5e, 0xf0, 0x2f, 0x9a, 0x96, 0x57, 0xa5, 0x40, 0x4d, 0x96, 0x59, 0xd8, 0x85, 0x42, - 0xb4, 0x39, 0x66, 0xad, 0x2b, 0xc3, 0x9a, 0x2b, 0x0c, 0x6d, 0x2a, 0xbf, 0x13, 0x6a, 0x87, 0xbd, - 0x55, 0xfe, 0x67, 0x64, 0xe4, 0xbe, 0x01, 0xe4, 0xed, 0xde, 0x73, 0x2f, 0xcb, 0x30, 0x2e, 0xce, - 0xb9, 0x48, 0xa3, 0x9e, 0xa1, 0x09, 0xcb, 0x93, 0x23, 0xd3, 0x44, 0xec, 0x67, 0x12, 0x70, 0x66, - 0xd1, 0x32, 0x5d, 0x9e, 0xe4, 0xe1, 0xb3, 0x9a, 0xa5, 0x66, 0x0f, 0xd1, 0x23, 0x03, 0x52, 0x50, - 0xf9, 0xfe, 0x44, 0xd3, 0x36, 0x14, 0x89, 0x7b, 0xd5, 0x2d, 0xf3, 0x6d, 0xe6, 0x99, 0x0a, 0x56, - 0xbb, 0xc5, 0x39, 0xba, 0x85, 0x0f, 0x09, 0x5d, 0x13, 0xdf, 0x89, 0xd0, 0x4d, 0xde, 0x1b, 0x5d, - 0x13, 0xdf, 0x09, 0xd1, 0x0d, 0xb6, 0x56, 0x53, 0x91, 0xad, 0xd5, 0xeb, 0x90, 0x24, 0xa6, 0x70, - 0xec, 0x18, 0xc6, 0x83, 0x20, 0x84, 0x5c, 0x5a, 0x03, 0xce, 0xf0, 0x2c, 0x81, 0xbb, 0xb1, 0x4b, - 0x25, 0x8a, 0x69, 0x87, 0x5e, 0xc6, 0x87, 0x31, 0x29, 0x83, 0xfc, 0x48, 0x29, 0x83, 0x4b, 0x3f, - 0x2f, 0x01, 0x04, 0xf9, 0x32, 0xf4, 0x18, 0x9c, 0xae, 0x6e, 0xac, 0x2f, 0x05, 0xbb, 0x4c, 0xa1, - 0x9f, 0x31, 0x12, 0x2f, 0x8a, 0xb9, 0x36, 0xd6, 0x8d, 0x5d, 0x03, 0xb7, 0xd0, 0xc3, 0x30, 0x1d, - 0x85, 0x26, 0x5f, 0xb5, 0x25, 0x59, 0x9a, 0xcd, 0xbf, 0x79, 0x77, 0x3e, 0xc3, 0xd6, 0x07, 0xb8, - 0x85, 0x2e, 0xc2, 0xc9, 0x7e, 0xb8, 0xfa, 0xfa, 0x8a, 0x9c, 0x98, 0x2d, 0xbc, 0x79, 0x77, 0x3e, - 0xeb, 0x2f, 0x24, 0x50, 0x09, 0x50, 0x18, 0x92, 0xd3, 0x4b, 0xce, 0xc2, 0x9b, 0x77, 0xe7, 0xd3, - 0x6c, 0xca, 0xf0, 0xed, 0xa9, 0xaf, 0x07, 0xa8, 0x9b, 0xbb, 0x8e, 0xa6, 0x53, 0xd3, 0x30, 0x0b, - 0xa7, 0xea, 0xeb, 0xcb, 0x4a, 0x65, 0xb1, 0x59, 0xdf, 0x58, 0xef, 0xf9, 0xf5, 0xa5, 0x68, 0xdd, - 0xd2, 0xc6, 0x56, 0x75, 0xb5, 0xa6, 0x36, 0xea, 0x2b, 0xeb, 0x6c, 0x2f, 0x39, 0x52, 0xf7, 0xde, - 0xf5, 0x66, 0x7d, 0xad, 0x26, 0x27, 0xaa, 0xd7, 0x07, 0x6e, 0x3b, 0xdd, 0x17, 0x99, 0x8c, 0x81, - 0x3b, 0x8a, 0xfc, 0xac, 0xc5, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xb3, 0xfa, 0x3d, 0x4f, 0xc1, - 0xa5, 0x00, 0x00, + 0x9b, 0xa2, 0xbf, 0x60, 0xde, 0xa4, 0x4d, 0x40, 0x4f, 0x86, 0xb3, 0x3b, 0xb9, 0xc1, 0x71, 0x08, + 0x23, 0x17, 0xd9, 0x9f, 0x17, 0x20, 0x23, 0x16, 0x5e, 0xdc, 0x36, 0x9f, 0x8f, 0x8b, 0x96, 0x38, + 0x09, 0xe7, 0xf5, 0x59, 0xd0, 0xd7, 0x40, 0xd6, 0xb7, 0xd4, 0xdc, 0x34, 0x95, 0x8e, 0xb2, 0xed, + 0x1c, 0x20, 0x60, 0x42, 0xe5, 0x20, 0x3d, 0x90, 0x1a, 0x98, 0x71, 0xd8, 0x66, 0x14, 0x9c, 0xdb, + 0x4f, 0x0d, 0x3c, 0x05, 0x29, 0x6d, 0x47, 0x37, 0xb8, 0x3b, 0xbf, 0x3f, 0x86, 0xb1, 0x52, 0x5d, + 0xac, 0x33, 0x2e, 0x7a, 0x21, 0x07, 0x25, 0x27, 0x8d, 0x76, 0x0f, 0x4d, 0x7d, 0xdf, 0xb1, 0xcc, + 0x43, 0xee, 0xc1, 0xe3, 0x1a, 0xdd, 0x10, 0x34, 0xa2, 0xd1, 0x3e, 0x13, 0x69, 0xf4, 0x2e, 0x0e, + 0xbc, 0x77, 0x7c, 0xa3, 0x97, 0x19, 0x85, 0x68, 0x34, 0x67, 0x28, 0xd5, 0x79, 0x3e, 0x95, 0x0f, + 0x1b, 0xbd, 0x56, 0xea, 0x40, 0x65, 0x99, 0x1e, 0x36, 0xe1, 0x33, 0x1d, 0xed, 0x80, 0x4e, 0x1a, + 0xe2, 0x4a, 0x48, 0xe5, 0x1e, 0xbf, 0xb8, 0x24, 0xa9, 0xa4, 0x3b, 0xda, 0xc1, 0x8a, 0xe6, 0xde, + 0x4c, 0x65, 0x92, 0x72, 0xaa, 0xf4, 0x49, 0x12, 0x7e, 0x47, 0x86, 0x06, 0x3d, 0x02, 0x88, 0x70, + 0x68, 0x7b, 0x58, 0x25, 0x4e, 0x88, 0x0e, 0xb2, 0xc0, 0x2d, 0x76, 0xb4, 0x83, 0xca, 0x1e, 0x5e, + 0xef, 0x76, 0x68, 0x03, 0x5c, 0xb4, 0x06, 0xb2, 0x20, 0x16, 0x0a, 0xe8, 0xc7, 0x0b, 0x7d, 0x17, + 0x25, 0x73, 0x02, 0x16, 0xd0, 0x7c, 0x90, 0x04, 0x34, 0x13, 0x0c, 0xcf, 0x3f, 0xf2, 0x15, 0xe9, + 0x4a, 0x32, 0xda, 0x95, 0xd2, 0x4b, 0x50, 0xec, 0xd1, 0x02, 0x54, 0x82, 0x02, 0xcf, 0x5a, 0xd3, + 0xe3, 0x34, 0x6c, 0xed, 0x9e, 0x55, 0x72, 0x2c, 0x39, 0x4d, 0x67, 0x5f, 0x39, 0xf3, 0x8b, 0x1f, + 0x9b, 0x93, 0xe8, 0xd6, 0xe5, 0x23, 0x50, 0x88, 0xa8, 0x81, 0x48, 0x5c, 0x4a, 0x41, 0xe2, 0x32, + 0x20, 0x7e, 0x0d, 0xf2, 0xc4, 0x95, 0xe2, 0x16, 0xa7, 0x7d, 0x08, 0x8a, 0xcc, 0xd7, 0xf7, 0xca, + 0x9a, 0xc5, 0xf0, 0x6b, 0x42, 0xe0, 0x25, 0x11, 0xd4, 0x47, 0xc5, 0x9e, 0x13, 0x54, 0x2b, 0x9a, + 0x5b, 0xfa, 0x01, 0x09, 0x8a, 0x3d, 0xba, 0x81, 0x5e, 0x80, 0xac, 0xed, 0x60, 0xdd, 0x08, 0xa5, + 0xb9, 0x8e, 0x10, 0x61, 0x8a, 0x8a, 0x2f, 0xe0, 0x20, 0x61, 0x92, 0x38, 0x27, 0xd0, 0xc2, 0x6d, + 0xed, 0x70, 0xf8, 0x28, 0x30, 0x08, 0x71, 0x6b, 0xfd, 0x12, 0x61, 0x2a, 0xfd, 0xaa, 0x04, 0x85, + 0x88, 0xd2, 0xa1, 0x16, 0xdc, 0x4f, 0x5c, 0x74, 0xf8, 0x6c, 0x3a, 0xbf, 0x7f, 0x2f, 0xb4, 0x46, + 0xcb, 0x5d, 0x3b, 0xdb, 0xf7, 0x9e, 0xc0, 0xd1, 0xd0, 0xe0, 0x46, 0x52, 0x66, 0x09, 0x4e, 0x70, + 0x44, 0x9d, 0x5d, 0xd4, 0x77, 0x83, 0x05, 0xe3, 0x1b, 0x80, 0xec, 0x1d, 0xaf, 0x17, 0x3a, 0x31, + 0x2a, 0xb4, 0x4c, 0x98, 0xc3, 0x80, 0xa5, 0x06, 0x40, 0x30, 0x71, 0x51, 0x65, 0x94, 0x4e, 0x24, + 0x8f, 0x6a, 0x61, 0x39, 0x31, 0x23, 0x55, 0x37, 0x3f, 0xf1, 0xd9, 0x73, 0xd2, 0xbb, 0x12, 0x3a, + 0xfc, 0x5e, 0x03, 0xee, 0x0b, 0x48, 0x77, 0x74, 0xa3, 0x37, 0xa1, 0x2d, 0xfb, 0xc6, 0x81, 0xd4, + 0x12, 0xb7, 0x70, 0xf4, 0x7e, 0xda, 0xd0, 0x74, 0xf7, 0x10, 0x47, 0x34, 0x4a, 0x3a, 0xfc, 0x1e, + 0xb3, 0xdd, 0xff, 0x21, 0x0b, 0xe3, 0x0a, 0x7e, 0x5f, 0x17, 0xbb, 0x1e, 0x7a, 0x02, 0x52, 0x58, + 0xdf, 0xb7, 0xfa, 0xb7, 0x9c, 0x78, 0x2f, 0x17, 0x6a, 0xfa, 0xbe, 0xc5, 0x89, 0x6f, 0x9c, 0x50, + 0x28, 0x31, 0xba, 0x0e, 0x63, 0xbb, 0xed, 0x2e, 0x4f, 0x84, 0x47, 0xdc, 0x94, 0xe0, 0x5a, 0x26, + 0xd5, 0x01, 0x1b, 0x23, 0x27, 0x2f, 0xa3, 0x3f, 0x27, 0x90, 0x1c, 0xf4, 0x32, 0xfa, 0x2b, 0x02, + 0xc1, 0xcb, 0x08, 0x31, 0x5a, 0x04, 0x30, 0x4c, 0xc3, 0x53, 0x69, 0x8e, 0x98, 0xbb, 0x89, 0x52, + 0x1c, 0xab, 0xe1, 0xd1, 0x7c, 0x72, 0xc0, 0x9f, 0x35, 0x44, 0x19, 0x69, 0xf1, 0xfb, 0xba, 0xd8, + 0x11, 0xae, 0x22, 0xa6, 0xc5, 0xef, 0x21, 0xd5, 0xa1, 0x16, 0x53, 0x72, 0xe2, 0x5a, 0xd9, 0xe5, + 0xa4, 0xde, 0x01, 0xbf, 0x72, 0x7b, 0xbe, 0x9f, 0x95, 0xde, 0x4d, 0xda, 0x3c, 0x08, 0x98, 0xc7, + 0x75, 0x56, 0x82, 0x9e, 0xf5, 0x97, 0x70, 0xb9, 0xde, 0x35, 0x93, 0xcf, 0xcc, 0x56, 0x70, 0x3e, + 0x2f, 0x67, 0x40, 0x1b, 0x30, 0xd1, 0x36, 0x5c, 0x4f, 0x75, 0x4d, 0xcd, 0x76, 0xf7, 0x2d, 0xcf, + 0xa5, 0xb9, 0xd8, 0xdc, 0xb5, 0x87, 0xfa, 0x21, 0x56, 0x0d, 0xd7, 0x6b, 0x08, 0xb2, 0x00, 0xa9, + 0xd0, 0x0e, 0x97, 0x13, 0x40, 0x6b, 0x77, 0x17, 0x3b, 0x3e, 0x22, 0x4d, 0xda, 0xc6, 0x02, 0x6e, + 0x10, 0x3a, 0xc1, 0x19, 0x02, 0xb4, 0xc2, 0xe5, 0xe8, 0xeb, 0x60, 0xaa, 0x6d, 0x69, 0x2d, 0x1f, + 0x4f, 0xd5, 0xf7, 0xbb, 0xe6, 0x2d, 0x9a, 0xe2, 0xcd, 0x5d, 0xbb, 0x1c, 0xd3, 0x4c, 0x4b, 0x6b, + 0x09, 0xe6, 0x45, 0x42, 0x1a, 0x20, 0x4f, 0xb6, 0x7b, 0xeb, 0x90, 0x0a, 0xd3, 0x9a, 0x6d, 0xb7, + 0x0f, 0x7b, 0xe1, 0x8b, 0x14, 0xfe, 0x91, 0x7e, 0xf8, 0x0a, 0xa1, 0x1e, 0x80, 0x8f, 0xb4, 0xbe, + 0x4a, 0xb4, 0x05, 0xb2, 0xed, 0x60, 0xfa, 0xdd, 0xaa, 0xcd, 0x17, 0x29, 0xf4, 0x56, 0xbf, 0xdc, + 0xb5, 0x4b, 0xfd, 0xe0, 0x9b, 0x8c, 0x52, 0xac, 0x66, 0x02, 0xe4, 0xa2, 0x1d, 0xad, 0x61, 0xb0, + 0x96, 0x8e, 0xe9, 0xad, 0xa3, 0x1c, 0x76, 0x72, 0x30, 0x2c, 0xa5, 0x8c, 0x85, 0x8d, 0xd4, 0xa0, + 0x65, 0xc8, 0xb1, 0xac, 0x96, 0x4a, 0x4c, 0x24, 0xbd, 0x0d, 0x30, 0x77, 0xed, 0x42, 0xcc, 0x74, + 0xa5, 0x44, 0xdb, 0x96, 0x87, 0x03, 0x30, 0xc0, 0x7e, 0x21, 0xda, 0x81, 0x93, 0xf4, 0x66, 0xc4, + 0x43, 0x35, 0x6a, 0x8f, 0x67, 0xa6, 0x28, 0xe2, 0xa3, 0xfd, 0x88, 0xdb, 0x94, 0x7c, 0x3b, 0x6c, + 0x98, 0x03, 0xe8, 0xa9, 0xdb, 0xfd, 0xb5, 0x44, 0xd3, 0x76, 0x0d, 0x53, 0x6b, 0x1b, 0x6f, 0x60, + 0x16, 0xbc, 0xd0, 0x4b, 0x81, 0x63, 0x35, 0x6d, 0x99, 0xd3, 0xd1, 0x60, 0x26, 0xa4, 0x69, 0xbb, + 0xe1, 0xf2, 0xea, 0x38, 0x5f, 0x72, 0xf8, 0xb7, 0x5c, 0x8e, 0xcb, 0x19, 0x76, 0xb3, 0xe5, 0xcd, + 0x54, 0x06, 0xe4, 0x5c, 0xe9, 0x22, 0xe4, 0x42, 0x76, 0x0a, 0xcd, 0xc0, 0x38, 0x77, 0xaa, 0xe2, + 0x00, 0x3f, 0x7f, 0x2c, 0x4d, 0x40, 0x3e, 0x6c, 0x9a, 0x4a, 0x1f, 0x90, 0x20, 0x17, 0x32, 0x3a, + 0x84, 0x33, 0xbc, 0xd1, 0x95, 0x0d, 0xe2, 0xd4, 0x0b, 0x22, 0xaa, 0x10, 0xf5, 0x6c, 0xb3, 0x35, + 0x4f, 0x0b, 0x79, 0x50, 0x83, 0xe6, 0x20, 0x67, 0x5f, 0xb3, 0x7d, 0x92, 0x24, 0x25, 0x01, 0xfb, + 0x9a, 0x2d, 0x08, 0xce, 0x43, 0x9e, 0x74, 0x5d, 0x0d, 0x87, 0xcb, 0x59, 0x25, 0x47, 0xca, 0x38, + 0x49, 0xe9, 0x37, 0x13, 0x20, 0xf7, 0x1a, 0x33, 0x7f, 0x03, 0x4c, 0x3a, 0xf6, 0x06, 0xd8, 0x99, + 0xde, 0xad, 0xb7, 0x60, 0xb7, 0x6d, 0x0d, 0xe4, 0x60, 0xcf, 0x88, 0xf9, 0x9e, 0x23, 0xe2, 0xff, + 0x9e, 0xb5, 0x8a, 0x52, 0xd4, 0x7b, 0x16, 0x2f, 0x2b, 0x91, 0xf3, 0x22, 0x29, 0xff, 0x88, 0x6b, + 0xaf, 0x3e, 0x09, 0x9a, 0x2d, 0xbb, 0xa5, 0x79, 0x58, 0xa4, 0xdc, 0x43, 0x47, 0x47, 0x1e, 0x82, + 0xa2, 0x66, 0xdb, 0xaa, 0xeb, 0x69, 0x1e, 0xe6, 0x81, 0x1e, 0x4b, 0x64, 0x16, 0x34, 0xdb, 0x6e, + 0x90, 0x52, 0x16, 0xe8, 0x3d, 0x08, 0x13, 0xc4, 0xc2, 0x1b, 0x5a, 0x5b, 0x44, 0x11, 0x69, 0x16, + 0x0f, 0xf2, 0x52, 0x1e, 0x89, 0xb4, 0x20, 0x1f, 0x36, 0xee, 0x7e, 0x6a, 0x46, 0x0a, 0xa5, 0x66, + 0x10, 0xbf, 0x78, 0x89, 0x49, 0x48, 0x5c, 0x56, 0x15, 0xbf, 0x19, 0x39, 0x4d, 0xd3, 0x38, 0xb7, + 0x59, 0xee, 0x35, 0xa3, 0xb0, 0x87, 0xd2, 0xab, 0x30, 0x11, 0xf5, 0x03, 0x68, 0x02, 0x12, 0xde, + 0x01, 0x7f, 0x4b, 0xc2, 0x3b, 0x40, 0x57, 0x79, 0xf6, 0x34, 0x49, 0xb3, 0xa7, 0xf7, 0x0f, 0xf4, + 0x23, 0x41, 0xea, 0xf4, 0x66, 0x2a, 0x93, 0x90, 0x93, 0xa5, 0x22, 0x14, 0x22, 0x5e, 0xa2, 0x74, + 0x0a, 0xa6, 0xe3, 0x6c, 0x7e, 0xc9, 0x80, 0xe9, 0x38, 0xd3, 0x8d, 0xae, 0x43, 0xc6, 0x37, 0xfa, + 0x7d, 0xd9, 0x36, 0xf1, 0x76, 0x9f, 0xc9, 0xa7, 0x8d, 0xec, 0x16, 0x26, 0x22, 0xbb, 0x85, 0xa5, + 0x6f, 0x84, 0x99, 0x41, 0xf6, 0xbc, 0x67, 0xfb, 0x20, 0xe5, 0x0b, 0xee, 0x14, 0xa4, 0xf9, 0xfd, + 0xc0, 0x09, 0x9a, 0xa6, 0xe0, 0x4f, 0x44, 0xa0, 0xcc, 0xb6, 0x27, 0x59, 0xf6, 0x82, 0x3e, 0x94, + 0x54, 0x38, 0x33, 0xd0, 0xa4, 0x0f, 0xde, 0x6d, 0x67, 0x40, 0x7c, 0xb7, 0x9d, 0x3e, 0xd0, 0x5f, + 0x21, 0xc2, 0xa6, 0x48, 0x02, 0x66, 0x15, 0xfe, 0x54, 0xfa, 0x50, 0x12, 0x4e, 0xc5, 0xdb, 0x75, + 0x34, 0x0f, 0x79, 0xb2, 0x78, 0xf0, 0xa2, 0xeb, 0x0c, 0xe8, 0x68, 0x07, 0x4d, 0xbe, 0xc8, 0xe0, + 0x3b, 0x95, 0x09, 0x7f, 0xa7, 0x12, 0x6d, 0xc3, 0x64, 0xdb, 0xd2, 0xb5, 0xb6, 0x1a, 0xda, 0x29, + 0xe6, 0xd3, 0xe9, 0x81, 0x41, 0x76, 0x5a, 0xec, 0x45, 0x10, 0x13, 0xc4, 0x27, 0x42, 0x91, 0x82, + 0xac, 0xfa, 0xbb, 0xca, 0xa8, 0x06, 0xb9, 0x8e, 0xe1, 0xee, 0xe0, 0x7d, 0xed, 0xb6, 0x61, 0x39, + 0x7c, 0x5e, 0xc5, 0x68, 0xcf, 0x5a, 0x40, 0x24, 0xb6, 0xb0, 0x43, 0x7c, 0xa1, 0x41, 0x19, 0x8b, + 0xdd, 0x5a, 0x4f, 0x1f, 0xdb, 0xb2, 0x0c, 0xda, 0xa4, 0x1e, 0x1f, 0xb8, 0x49, 0x1d, 0xb7, 0x23, + 0x9c, 0x89, 0xdf, 0x11, 0x7e, 0x93, 0x0e, 0x4e, 0x9c, 0x77, 0xec, 0xdf, 0x24, 0x46, 0x4d, 0x98, + 0xe6, 0xfc, 0xad, 0x88, 0xf4, 0xfb, 0xce, 0x9d, 0x45, 0x83, 0xae, 0x90, 0xd4, 0x91, 0xe0, 0x1f, + 0x2c, 0xf8, 0xe4, 0x3d, 0x0a, 0x5e, 0x1c, 0xd5, 0x48, 0x85, 0x8e, 0x6a, 0xfc, 0x6f, 0x36, 0x18, + 0xdf, 0x9a, 0x14, 0x9b, 0x67, 0xa1, 0xc0, 0x22, 0xf6, 0x0c, 0xca, 0xa0, 0xbd, 0x1e, 0xd1, 0xb1, + 0xe4, 0xb1, 0x3b, 0xc6, 0x47, 0x3b, 0x35, 0x7c, 0xb4, 0xc7, 0xde, 0xc9, 0xd1, 0x4e, 0xdf, 0xe3, + 0x68, 0xbf, 0xab, 0xe3, 0xf0, 0x11, 0x09, 0x66, 0x07, 0x87, 0x63, 0xb1, 0x03, 0x72, 0xac, 0xdd, + 0xc9, 0x41, 0x1e, 0xef, 0x41, 0x98, 0xe8, 0x89, 0x16, 0x99, 0x32, 0x17, 0x22, 0xcb, 0xf5, 0xd2, + 0xb7, 0x25, 0x61, 0x3a, 0x2e, 0xa0, 0x8b, 0x99, 0xb1, 0x0a, 0x4c, 0xb5, 0xb0, 0x6e, 0xb4, 0xee, + 0x79, 0xc2, 0x4e, 0x72, 0xf6, 0xff, 0x33, 0x5f, 0x63, 0xf4, 0xe4, 0xc7, 0x01, 0x32, 0x0a, 0x76, + 0x6d, 0x12, 0xa0, 0xb1, 0x5f, 0xbb, 0xd3, 0xb1, 0xed, 0x05, 0x69, 0xad, 0xd8, 0x75, 0x03, 0x27, + 0x11, 0x7c, 0x64, 0xfd, 0xec, 0xf3, 0xa1, 0x27, 0x79, 0x9a, 0x60, 0xe0, 0x82, 0x9f, 0x85, 0xdf, + 0x3e, 0x2b, 0xcb, 0x13, 0x3c, 0x2d, 0xf2, 0x04, 0xc9, 0x41, 0xab, 0x5f, 0x1e, 0x8c, 0xfb, 0x7c, + 0x3c, 0x51, 0xf0, 0x24, 0x4f, 0x14, 0xa4, 0x06, 0xbd, 0x8e, 0xc5, 0xec, 0xc1, 0xeb, 0x0c, 0x76, + 0x91, 0x69, 0x38, 0x53, 0x90, 0x1e, 0xd4, 0xd5, 0x50, 0x70, 0x1d, 0x74, 0x35, 0x48, 0x15, 0x3c, + 0x2d, 0x52, 0x05, 0xe3, 0x83, 0x1a, 0xcd, 0xa3, 0xc9, 0xa0, 0xd1, 0x2c, 0x57, 0xf0, 0x62, 0x28, + 0x57, 0x90, 0xed, 0x4d, 0xc3, 0xf7, 0xe5, 0x0a, 0x7c, 0x6e, 0x3f, 0x59, 0x50, 0xf6, 0x93, 0x05, + 0xf9, 0x81, 0x99, 0x06, 0x1e, 0x06, 0xfa, 0xcc, 0x22, 0x5b, 0xb0, 0xd9, 0x97, 0x2d, 0x60, 0x8b, + 0xfb, 0x8b, 0x43, 0xb3, 0x05, 0x3e, 0x54, 0x4f, 0xba, 0x60, 0xb3, 0x2f, 0x5d, 0x30, 0x31, 0x08, + 0xb1, 0x27, 0xe6, 0x0c, 0x10, 0xa3, 0xf9, 0x82, 0xaf, 0x8f, 0xcf, 0x17, 0x0c, 0x5c, 0xd0, 0xc7, + 0xc4, 0x97, 0x3e, 0x74, 0x4c, 0xc2, 0xe0, 0x1b, 0x07, 0x24, 0x0c, 0xe4, 0x41, 0x0b, 0xdb, 0xb8, + 0xe8, 0xd2, 0x7f, 0x41, 0x5c, 0xc6, 0x60, 0x3b, 0x26, 0x63, 0xc0, 0x96, 0xf6, 0x0f, 0x8f, 0x90, + 0x31, 0xf0, 0xa1, 0xfb, 0x52, 0x06, 0xdb, 0x31, 0x29, 0x03, 0x34, 0x18, 0xb7, 0x27, 0x28, 0x0a, + 0xe3, 0x46, 0x73, 0x06, 0x2b, 0xd1, 0x9c, 0xc1, 0xd4, 0xd1, 0xb1, 0x28, 0x73, 0xed, 0x3e, 0x5a, + 0x38, 0x69, 0xa0, 0x0f, 0x4a, 0x1a, 0xb0, 0x75, 0xfd, 0x63, 0x23, 0x26, 0x0d, 0x7c, 0xec, 0xd8, + 0xac, 0xc1, 0x66, 0x5f, 0xd6, 0xe0, 0xe4, 0x20, 0x85, 0xeb, 0x71, 0x32, 0x81, 0xc2, 0x0d, 0x4c, + 0x1b, 0xb0, 0x9f, 0xc5, 0x60, 0x3f, 0x88, 0x01, 0x72, 0xee, 0x66, 0x2a, 0x93, 0x93, 0xf3, 0xa5, + 0x87, 0x49, 0x58, 0xd3, 0x63, 0xf7, 0xc8, 0x22, 0x02, 0x3b, 0x8e, 0xe5, 0x88, 0x3d, 0x50, 0xfa, + 0x50, 0xba, 0x04, 0xf9, 0xb0, 0x89, 0x3b, 0x22, 0xc5, 0x50, 0x84, 0x42, 0xc4, 0xaa, 0x95, 0x7e, + 0x51, 0x82, 0x7c, 0xd8, 0x5e, 0x45, 0x16, 0xa0, 0x59, 0xbe, 0x00, 0x0d, 0x25, 0x1e, 0x12, 0xd1, + 0xc4, 0xc3, 0x1c, 0xe4, 0xc8, 0x22, 0xac, 0x27, 0xa7, 0xa0, 0xd9, 0x7e, 0x4e, 0x41, 0x1c, 0xdc, + 0x64, 0xe9, 0x09, 0xee, 0xa7, 0xd8, 0xa9, 0x85, 0xa2, 0x7f, 0x88, 0x95, 0xa7, 0xf9, 0x1f, 0x83, + 0xa9, 0x10, 0xad, 0xbf, 0xb8, 0x63, 0xcb, 0x6b, 0xd9, 0xa7, 0xae, 0xf0, 0x55, 0xde, 0xaf, 0x4a, + 0x30, 0xd9, 0x67, 0x2e, 0x63, 0xf3, 0x06, 0xd2, 0x3b, 0x95, 0x37, 0x48, 0xdc, 0x7b, 0xde, 0x20, + 0xbc, 0x5c, 0x4d, 0x46, 0x97, 0xab, 0x7f, 0x25, 0x41, 0x21, 0x62, 0xb6, 0xc9, 0x20, 0xe8, 0x56, + 0x4b, 0xec, 0x98, 0xd3, 0xbf, 0x49, 0x9c, 0xd2, 0xb6, 0xf6, 0xf8, 0x32, 0x91, 0xfc, 0x49, 0xa8, + 0x7c, 0x47, 0x94, 0xe5, 0x6e, 0xc6, 0x5f, 0x7b, 0x8e, 0x85, 0xbf, 0x29, 0xe3, 0xdf, 0x59, 0xa5, + 0x83, 0xef, 0xac, 0xfc, 0x8d, 0xf2, 0xf1, 0xd0, 0x46, 0x39, 0x7a, 0x16, 0xb2, 0x74, 0x17, 0x40, + 0xb5, 0xec, 0xe0, 0x87, 0x79, 0x07, 0x7f, 0x63, 0xe5, 0xd2, 0x8f, 0x04, 0xd8, 0x87, 0x59, 0x41, + 0x14, 0x92, 0x8d, 0x44, 0x21, 0xf7, 0x41, 0x96, 0x34, 0x9f, 0xfd, 0x1c, 0x11, 0xf0, 0xab, 0x46, + 0x44, 0x41, 0xe9, 0xa7, 0x12, 0x50, 0xec, 0xf1, 0x3a, 0xb1, 0x9d, 0x8f, 0x3b, 0xb1, 0x32, 0x9a, + 0x40, 0xce, 0x01, 0xec, 0x69, 0xae, 0x7a, 0x47, 0x33, 0x3d, 0xdc, 0xe2, 0x52, 0x09, 0x95, 0xa0, + 0x59, 0xc8, 0x90, 0xa7, 0xae, 0x8b, 0x5b, 0x3c, 0x43, 0xe3, 0x3f, 0xa3, 0x3a, 0xa4, 0xf1, 0x6d, + 0x7a, 0x1d, 0x37, 0xbb, 0xd4, 0xfe, 0x74, 0x8c, 0x79, 0x22, 0xf5, 0xd5, 0x19, 0x32, 0xdc, 0x7f, + 0xf4, 0xd6, 0x9c, 0xcc, 0xc8, 0x1f, 0xf5, 0x3f, 0x60, 0x55, 0x38, 0x40, 0x54, 0x0c, 0x99, 0x1e, + 0x31, 0xd0, 0x74, 0x61, 0x5e, 0xac, 0xfd, 0x89, 0x50, 0xd9, 0x97, 0x38, 0x4a, 0xa1, 0x83, 0x3b, + 0xb6, 0x65, 0xb5, 0x55, 0x36, 0xcf, 0x2b, 0x30, 0x11, 0x75, 0xb2, 0xec, 0xb7, 0x02, 0x3d, 0xcd, + 0x30, 0xd5, 0x48, 0x6c, 0x9c, 0x67, 0x85, 0x6c, 0x5e, 0xdd, 0x4c, 0x65, 0x24, 0x39, 0xc1, 0xd3, + 0x35, 0xef, 0x81, 0x93, 0xb1, 0x3e, 0x16, 0x3d, 0x03, 0xd9, 0xc0, 0x3f, 0xb3, 0xef, 0xa9, 0x8e, + 0xca, 0xc3, 0x04, 0xc4, 0xa5, 0x6d, 0x38, 0x19, 0xeb, 0x64, 0xd1, 0x0b, 0x90, 0x66, 0xe7, 0xb5, + 0xf9, 0x99, 0xbc, 0x07, 0x87, 0x7b, 0xe7, 0x6e, 0xdb, 0x53, 0x38, 0x53, 0xe9, 0x2a, 0x9c, 0x19, + 0xe8, 0x65, 0x83, 0x6c, 0x8a, 0x14, 0xca, 0xa6, 0x94, 0x7e, 0x5a, 0x82, 0xd9, 0xc1, 0x9e, 0x13, + 0x55, 0x7b, 0x1a, 0x74, 0x79, 0x44, 0xbf, 0x1b, 0x6a, 0x15, 0x59, 0x6e, 0x38, 0x78, 0x17, 0x7b, + 0xfa, 0x3e, 0x73, 0xe1, 0xcc, 0x28, 0x14, 0x94, 0x02, 0x2f, 0xa5, 0x3c, 0x2e, 0x23, 0x7b, 0x1d, + 0xeb, 0x9e, 0xca, 0x06, 0xd5, 0xe5, 0x3f, 0x35, 0x5e, 0x60, 0xa5, 0x0d, 0x56, 0x58, 0x7a, 0x04, + 0x4e, 0x0f, 0xf0, 0xc5, 0x31, 0xc7, 0xcd, 0x5f, 0x23, 0xc4, 0xb1, 0x0e, 0x16, 0xbd, 0x04, 0x69, + 0xd7, 0xd3, 0xbc, 0xae, 0xcb, 0x7b, 0x76, 0x71, 0xa8, 0x6f, 0x6e, 0x50, 0x72, 0x85, 0xb3, 0x95, + 0x9e, 0x03, 0xd4, 0xef, 0x69, 0x63, 0xd6, 0x56, 0x52, 0xdc, 0xda, 0x6a, 0x07, 0xce, 0x1e, 0xe1, + 0x53, 0xd1, 0x62, 0x4f, 0xe3, 0x1e, 0x19, 0xc9, 0x25, 0xf7, 0x34, 0xf0, 0x4f, 0x13, 0x70, 0x32, + 0xd6, 0xb5, 0x86, 0x66, 0xa9, 0xf4, 0x76, 0x67, 0xe9, 0x0b, 0x00, 0xde, 0x81, 0xf8, 0xc8, 0x80, + 0x5b, 0xfb, 0xb8, 0xf5, 0xc4, 0x01, 0xd6, 0xa9, 0xc1, 0x22, 0x8a, 0x91, 0xf5, 0xf8, 0x5f, 0x64, + 0xf1, 0x1f, 0x5a, 0xcf, 0x76, 0xa9, 0x27, 0x70, 0xf9, 0x52, 0x6f, 0x64, 0x9f, 0x11, 0x2c, 0x7c, + 0x59, 0xb1, 0x8b, 0x5e, 0x83, 0xd3, 0x3d, 0x1e, 0xcd, 0xc7, 0x4e, 0x8d, 0xec, 0xd8, 0x4e, 0x46, + 0x1d, 0x9b, 0xc0, 0x0e, 0x7b, 0xa5, 0xb1, 0xa8, 0x57, 0x7a, 0x0d, 0x20, 0x58, 0xd8, 0x06, 0xe7, + 0x61, 0xa5, 0xf0, 0x79, 0xd8, 0xeb, 0x30, 0x46, 0x34, 0x41, 0x88, 0x2a, 0xc6, 0x60, 0x90, 0x21, + 0x0d, 0xad, 0x8c, 0x19, 0x79, 0xe9, 0x75, 0xa1, 0x6d, 0xe1, 0x1c, 0xe3, 0x80, 0x77, 0xbc, 0x18, + 0x7d, 0x47, 0x69, 0x70, 0xba, 0x32, 0xfe, 0x5d, 0xff, 0x17, 0x8c, 0xd1, 0xe1, 0x8f, 0xfd, 0x00, + 0xf9, 0x1b, 0x00, 0x34, 0xcf, 0x73, 0x8c, 0x9d, 0x6e, 0xf0, 0x86, 0xf9, 0x01, 0xfa, 0x53, 0x11, + 0x84, 0xd5, 0xfb, 0xb8, 0x22, 0x4d, 0x07, 0xbc, 0x21, 0x65, 0x0a, 0x21, 0x96, 0xd6, 0x61, 0x22, + 0xca, 0x1b, 0xff, 0x45, 0x75, 0x70, 0x6f, 0x93, 0x38, 0xd7, 0x16, 0x38, 0x72, 0x7e, 0x97, 0x1a, + 0x7d, 0x28, 0x7d, 0x53, 0x02, 0xf2, 0x61, 0xed, 0xfb, 0x3b, 0xe8, 0x2c, 0x4b, 0xdf, 0x26, 0x41, + 0xc6, 0xef, 0xff, 0x11, 0x5f, 0x03, 0x04, 0xdf, 0xd6, 0xfb, 0x39, 0x78, 0xb6, 0xeb, 0x91, 0xf4, + 0x77, 0x3d, 0x9e, 0xf7, 0x1d, 0xc2, 0xc0, 0xc5, 0x7c, 0x58, 0xda, 0xe2, 0x1c, 0x2e, 0x77, 0x50, + 0xcf, 0x8d, 0xf6, 0x71, 0xef, 0x34, 0x8c, 0x85, 0xbf, 0xcb, 0x65, 0x0f, 0x25, 0x1c, 0x3a, 0xae, + 0xc4, 0x66, 0x63, 0xf8, 0x2b, 0x60, 0xe9, 0xf8, 0x5f, 0x01, 0xfb, 0xaf, 0x49, 0x84, 0x5f, 0xf3, + 0xf7, 0x25, 0xc8, 0x88, 0x79, 0x81, 0x5e, 0x0a, 0x1f, 0xa6, 0x13, 0x27, 0x73, 0x06, 0xdb, 0x25, + 0xfe, 0x82, 0xd0, 0x59, 0xba, 0xbe, 0x4f, 0x12, 0x92, 0xc7, 0xfe, 0x24, 0x81, 0xc7, 0x21, 0x5f, + 0x96, 0x40, 0xee, 0x9d, 0xb7, 0x6f, 0xbf, 0x7d, 0xfd, 0xfe, 0x2a, 0x19, 0xe3, 0xaf, 0x06, 0x7d, + 0x68, 0x90, 0x1a, 0xf4, 0xa1, 0x41, 0x7f, 0xbf, 0xc7, 0xee, 0xb5, 0xdf, 0xdf, 0x9a, 0x80, 0x5c, + 0x28, 0xc7, 0x87, 0x9e, 0x8a, 0x7c, 0xb5, 0x70, 0xfe, 0xc8, 0x84, 0x60, 0xe8, 0xb3, 0x85, 0x88, + 0xa4, 0x12, 0xf7, 0x20, 0xa9, 0x77, 0xfe, 0x63, 0xc6, 0xf8, 0x2f, 0xe3, 0xc7, 0x06, 0x7c, 0x19, + 0xff, 0xff, 0x4a, 0x90, 0xf1, 0x93, 0x2f, 0xc7, 0xdd, 0x93, 0x3b, 0x05, 0x69, 0x1e, 0x7b, 0xb1, + 0x4d, 0x39, 0xfe, 0x14, 0x9b, 0x1d, 0x9d, 0x85, 0x8c, 0xf8, 0x5d, 0x54, 0xee, 0xe1, 0xfc, 0xe7, + 0xcb, 0x3b, 0x90, 0x0b, 0x6d, 0x6b, 0xa2, 0x33, 0x70, 0x72, 0xf1, 0x46, 0x6d, 0xf1, 0x65, 0xb5, + 0xf9, 0x4a, 0xef, 0x6f, 0xeb, 0xf5, 0x55, 0x29, 0x35, 0xfa, 0x2c, 0x4b, 0xe8, 0x34, 0x4c, 0x45, + 0xab, 0x58, 0x45, 0x62, 0x36, 0xf5, 0xed, 0x3f, 0x76, 0xee, 0xc4, 0xe5, 0x2f, 0x4b, 0x30, 0x15, + 0x13, 0xe5, 0xa2, 0xf3, 0x70, 0xff, 0xc6, 0xf2, 0x72, 0x4d, 0x51, 0x1b, 0xeb, 0x95, 0xcd, 0xc6, + 0x8d, 0x8d, 0xa6, 0xaa, 0xd4, 0x1a, 0x5b, 0xab, 0xcd, 0xd0, 0x4b, 0xe7, 0xe1, 0xbe, 0x78, 0x92, + 0xca, 0xe2, 0x62, 0x6d, 0xb3, 0xc9, 0x7e, 0xdc, 0x6f, 0x00, 0x45, 0x75, 0x43, 0x69, 0xca, 0x89, + 0xc1, 0x10, 0x4a, 0xed, 0x66, 0x6d, 0xb1, 0x29, 0x27, 0xd1, 0x45, 0xb8, 0x70, 0x14, 0x85, 0xba, + 0xbc, 0xa1, 0xac, 0x55, 0x9a, 0x72, 0x6a, 0x28, 0x61, 0xa3, 0xb6, 0xbe, 0x54, 0x53, 0xe4, 0x31, + 0xde, 0xef, 0x8f, 0x25, 0x60, 0x66, 0x50, 0x30, 0x4d, 0xb0, 0x2a, 0x9b, 0x9b, 0xab, 0xaf, 0x06, + 0x58, 0x8b, 0x37, 0xb6, 0xd6, 0x5f, 0xee, 0x17, 0xc1, 0x43, 0x50, 0x3a, 0x8a, 0xd0, 0x17, 0xc4, + 0x83, 0x70, 0xfe, 0x48, 0x3a, 0x2e, 0x8e, 0x21, 0x64, 0x4a, 0xad, 0xa9, 0xbc, 0x2a, 0x27, 0xd1, + 0x02, 0x5c, 0x1e, 0x4a, 0xe6, 0xd7, 0xc9, 0x29, 0x74, 0x05, 0x1e, 0x39, 0x9a, 0x9e, 0x09, 0x48, + 0x30, 0x08, 0x11, 0xbd, 0x29, 0xc1, 0xc9, 0xd8, 0xa8, 0x1c, 0x5d, 0x80, 0xb9, 0x4d, 0x65, 0x63, + 0xb1, 0xd6, 0x68, 0xf8, 0xdf, 0x2c, 0xa8, 0x8d, 0x66, 0xa5, 0xb9, 0xd5, 0x08, 0xc9, 0xa6, 0x04, + 0xe7, 0x06, 0x11, 0xf9, 0x72, 0x39, 0x82, 0x86, 0x6b, 0x80, 0xd0, 0xd3, 0xbb, 0x12, 0x9c, 0x19, + 0x18, 0x85, 0xa3, 0x4b, 0xf0, 0xc0, 0x76, 0x4d, 0xa9, 0x2f, 0xbf, 0xaa, 0x6e, 0x6f, 0x34, 0xc3, + 0xbf, 0x22, 0xd9, 0xd7, 0xaa, 0x8b, 0x70, 0xe1, 0x48, 0x4a, 0xbf, 0x69, 0xc3, 0x08, 0x7b, 0xda, + 0xf7, 0x2d, 0x12, 0x14, 0x7b, 0x6c, 0x21, 0xba, 0x0f, 0x66, 0xd6, 0xea, 0x8d, 0x6a, 0xed, 0x46, + 0x65, 0xbb, 0xbe, 0xa1, 0xf4, 0xce, 0xd9, 0x0b, 0x30, 0xd7, 0x57, 0xbb, 0xb4, 0xb5, 0xb9, 0x5a, + 0x5f, 0xac, 0x34, 0x6b, 0x2a, 0xfb, 0xd0, 0x84, 0x74, 0xac, 0x8f, 0x68, 0xb5, 0xbe, 0x72, 0xa3, + 0xa9, 0x2e, 0xae, 0xd6, 0x6b, 0xeb, 0x4d, 0xb5, 0xd2, 0x6c, 0x56, 0x82, 0xe9, 0x5c, 0x7d, 0x79, + 0xe0, 0x01, 0xcf, 0xab, 0xa3, 0x1f, 0xf0, 0xe4, 0x47, 0x38, 0xfd, 0xf3, 0x9d, 0xbf, 0xf5, 0x04, + 0x3c, 0xc0, 0x2f, 0x26, 0x72, 0x3d, 0xed, 0x96, 0x61, 0xee, 0xf9, 0x37, 0x44, 0xf1, 0x67, 0x7e, + 0xce, 0xf3, 0x14, 0xbf, 0x05, 0x49, 0x94, 0x0e, 0xb9, 0x27, 0x6a, 0xe0, 0xf5, 0xa2, 0x43, 0xbf, + 0x0f, 0x18, 0x76, 0x4c, 0xf3, 0xa8, 0x3b, 0xa8, 0x86, 0xdc, 0x74, 0x15, 0x73, 0x47, 0xd5, 0xec, + 0xd1, 0xf7, 0x35, 0xcc, 0x1e, 0x79, 0xf8, 0xb5, 0xf4, 0x41, 0x09, 0x26, 0x6e, 0x18, 0xae, 0x67, + 0x39, 0x86, 0xae, 0xb5, 0x69, 0x20, 0xf1, 0xfc, 0xc8, 0x1f, 0xb4, 0x55, 0xb3, 0xc4, 0x8d, 0xf1, + 0x9b, 0xac, 0xf6, 0xc5, 0x37, 0x65, 0xe9, 0xdb, 0x5a, 0x9b, 0x7d, 0x4c, 0x16, 0xbe, 0x0a, 0xaf, + 0x57, 0xec, 0x21, 0xff, 0x1a, 0x46, 0x61, 0xbc, 0xe5, 0xc4, 0x8c, 0x54, 0xfa, 0x81, 0x04, 0x14, + 0xe9, 0x02, 0xc7, 0xa5, 0x0b, 0x62, 0xba, 0xe4, 0xba, 0x09, 0x29, 0x47, 0xf3, 0xf8, 0x32, 0xa4, + 0x7a, 0xfd, 0xd8, 0xd7, 0x5f, 0xb1, 0xb7, 0x50, 0x0c, 0xf4, 0x1e, 0xc8, 0x74, 0xb4, 0x03, 0x95, + 0xe2, 0x25, 0xde, 0x16, 0xde, 0x78, 0x47, 0x3b, 0x20, 0xed, 0x43, 0xdf, 0x00, 0x45, 0x02, 0xa9, + 0xef, 0x6b, 0xe6, 0x1e, 0x66, 0xc8, 0xc9, 0xb7, 0x85, 0x5c, 0xe8, 0x68, 0x07, 0x8b, 0x14, 0x8d, + 0xe0, 0xf3, 0x6b, 0xc2, 0x7e, 0x45, 0xe2, 0xab, 0x4b, 0x2a, 0x18, 0xa4, 0x81, 0xac, 0xfb, 0x4f, + 0xf4, 0xa5, 0x22, 0x69, 0x7b, 0x71, 0x90, 0xec, 0x7b, 0xc4, 0x5a, 0x2d, 0x90, 0xe6, 0x7d, 0xe6, + 0xad, 0x39, 0x89, 0xbd, 0xb5, 0xa8, 0xf7, 0x89, 0x3d, 0xc7, 0x56, 0xcd, 0x2a, 0x8d, 0x6f, 0x12, + 0x43, 0xe3, 0x9b, 0x82, 0x88, 0x6f, 0x18, 0x20, 0x30, 0x6e, 0x52, 0xcf, 0xfb, 0xf0, 0x09, 0x09, + 0x72, 0x4b, 0xa1, 0xab, 0x3b, 0x67, 0x60, 0xbc, 0x63, 0x99, 0xc6, 0x2d, 0xec, 0xf8, 0x59, 0x77, + 0xf6, 0x48, 0x62, 0x10, 0xf6, 0x0b, 0x90, 0xde, 0xa1, 0xb8, 0x40, 0x45, 0x3c, 0x13, 0xae, 0x3b, + 0x78, 0xc7, 0x35, 0x84, 0x9c, 0x15, 0xf1, 0x88, 0x1e, 0x06, 0xd9, 0xc5, 0x7a, 0xd7, 0x31, 0xbc, + 0x43, 0x55, 0xb7, 0x4c, 0x4f, 0xd3, 0x3d, 0xbe, 0x58, 0x2b, 0x8a, 0xf2, 0x45, 0x56, 0x4c, 0x40, + 0x5a, 0xd8, 0xd3, 0x8c, 0x36, 0x3b, 0x8c, 0x96, 0x55, 0xc4, 0x23, 0x6f, 0xea, 0xdd, 0xf1, 0xf0, + 0x52, 0x65, 0x11, 0x64, 0xcb, 0xc6, 0x4e, 0x64, 0xd7, 0x9d, 0x69, 0xe3, 0xcc, 0x6f, 0x7f, 0xfa, + 0xb1, 0x69, 0x2e, 0x70, 0xbe, 0x5f, 0xcb, 0xbe, 0xc0, 0x52, 0x8a, 0x82, 0x43, 0x6c, 0xc7, 0xbf, + 0x1a, 0xc9, 0xb3, 0x77, 0x77, 0x82, 0xbb, 0x8b, 0xa6, 0xfb, 0x84, 0x5a, 0x31, 0x0f, 0xab, 0x33, + 0xbf, 0x11, 0x40, 0xf3, 0xc5, 0xcc, 0x26, 0x5d, 0xb8, 0x84, 0x73, 0xee, 0x14, 0x86, 0x84, 0x77, + 0xaf, 0x6b, 0x46, 0x5b, 0xfc, 0x58, 0xae, 0xc2, 0x9f, 0x50, 0xd9, 0xcf, 0x23, 0xa5, 0x68, 0xb4, + 0x5c, 0x1a, 0xa4, 0x1b, 0x55, 0xcb, 0x6c, 0x45, 0xd3, 0x47, 0x68, 0x11, 0xd2, 0x9e, 0x75, 0x0b, + 0x9b, 0x5c, 0x40, 0xd5, 0x47, 0x8e, 0x71, 0xcf, 0x9d, 0xc2, 0x59, 0xd1, 0xd7, 0x81, 0xdc, 0xc2, + 0x6d, 0xbc, 0xc7, 0x3e, 0x36, 0xdd, 0xd7, 0x1c, 0xcc, 0x6e, 0x3d, 0xb8, 0xa7, 0x5b, 0xec, 0x8a, + 0x3e, 0x54, 0x83, 0x22, 0xa1, 0xcd, 0xe8, 0xe5, 0xb0, 0xe3, 0xfe, 0x16, 0x71, 0x6c, 0x1f, 0x43, + 0x9a, 0x17, 0xb6, 0x3e, 0x91, 0xcb, 0x64, 0x1f, 0x06, 0xb9, 0x6b, 0xee, 0x58, 0x26, 0xfd, 0x8d, + 0x49, 0x1e, 0x61, 0x67, 0xd8, 0xde, 0x8b, 0x5f, 0xce, 0xf7, 0x5e, 0x36, 0x61, 0x22, 0x20, 0xa5, + 0x33, 0x24, 0x7b, 0xdc, 0x19, 0x52, 0xf0, 0x01, 0x08, 0x09, 0x5a, 0x03, 0x08, 0xe6, 0x20, 0xcd, + 0xfc, 0xe7, 0x06, 0x8f, 0x58, 0x30, 0x9b, 0xc3, 0x9d, 0x09, 0x01, 0x20, 0x13, 0xa6, 0x3a, 0x86, + 0xa9, 0xba, 0xb8, 0xbd, 0xab, 0x72, 0xc9, 0x11, 0xdc, 0x1c, 0x15, 0xff, 0x8b, 0xc7, 0x18, 0xcd, + 0xdf, 0xfd, 0xf4, 0x63, 0xc5, 0xe0, 0xfa, 0xbf, 0xf9, 0xc7, 0x17, 0x9e, 0x7c, 0x5a, 0x99, 0xec, + 0x18, 0x66, 0x03, 0xb7, 0x77, 0x97, 0x7c, 0x60, 0xf4, 0x3c, 0x9c, 0x0d, 0x04, 0x62, 0x99, 0xea, + 0xbe, 0xd5, 0x6e, 0xa9, 0x0e, 0xde, 0x55, 0x75, 0x7a, 0x79, 0x61, 0x9e, 0x8a, 0xf1, 0xb4, 0x4f, + 0xb2, 0x61, 0xde, 0xb0, 0xda, 0x2d, 0x05, 0xef, 0x2e, 0x92, 0x6a, 0x74, 0x01, 0x02, 0x69, 0xa8, + 0x46, 0xcb, 0x9d, 0x29, 0xcc, 0x27, 0x2f, 0xa5, 0x94, 0xbc, 0x5f, 0x58, 0x6f, 0xb9, 0xe5, 0xcc, + 0xb7, 0x7f, 0x6c, 0xee, 0xc4, 0x17, 0x3e, 0x36, 0x77, 0xa2, 0xb4, 0x4c, 0x6f, 0x37, 0xe3, 0x53, + 0x0b, 0xbb, 0xe8, 0x3a, 0x64, 0x35, 0xf1, 0xc0, 0x3e, 0x5a, 0x3a, 0x62, 0x6a, 0x06, 0xa4, 0xa5, + 0x4f, 0x4a, 0x90, 0x5e, 0xda, 0xde, 0xd4, 0x0c, 0x07, 0xd5, 0x60, 0x32, 0xd0, 0xd5, 0x51, 0x67, + 0x79, 0xa0, 0xde, 0x62, 0x9a, 0xaf, 0x0f, 0x3a, 0xa2, 0x93, 0xad, 0x9e, 0xff, 0xed, 0x4f, 0x3f, + 0x76, 0x3f, 0x87, 0xd9, 0xee, 0x39, 0xad, 0x23, 0xf0, 0x7a, 0x4f, 0xf1, 0x84, 0xfa, 0x7c, 0x13, + 0xc6, 0x59, 0x53, 0x5d, 0xf4, 0x12, 0x8c, 0xd9, 0xe4, 0x0f, 0x9e, 0xc0, 0x3d, 0x37, 0x50, 0xe7, + 0x29, 0x7d, 0x58, 0x43, 0x18, 0x5f, 0xe9, 0x3b, 0x13, 0x00, 0x4b, 0xdb, 0xdb, 0x4d, 0xc7, 0xb0, + 0xdb, 0xd8, 0x7b, 0xa7, 0xfa, 0xbe, 0x05, 0x27, 0x43, 0xdf, 0x96, 0x3b, 0xfa, 0xf1, 0xfb, 0x3f, + 0x15, 0x7c, 0x65, 0xee, 0xe8, 0xb1, 0xb0, 0x2d, 0xd7, 0xf3, 0x61, 0x93, 0xc7, 0x87, 0x5d, 0x72, + 0xbd, 0x7e, 0xc9, 0xbe, 0x02, 0xb9, 0x40, 0x18, 0x2e, 0xaa, 0x43, 0xc6, 0xe3, 0x7f, 0x73, 0x01, + 0x97, 0x06, 0x0b, 0x58, 0xb0, 0x85, 0x85, 0xec, 0xb3, 0x97, 0xfe, 0x4a, 0x02, 0x08, 0xcd, 0x91, + 0xbf, 0x99, 0x3a, 0x86, 0xea, 0x90, 0xe6, 0xc6, 0x39, 0x79, 0xcf, 0x57, 0x8c, 0x32, 0x80, 0x90, + 0x50, 0xbf, 0x3b, 0x01, 0x53, 0x5b, 0x62, 0xf6, 0xfe, 0xcd, 0x97, 0xc1, 0x16, 0x8c, 0x63, 0xd3, + 0x73, 0x0c, 0x7f, 0x03, 0xe2, 0xf1, 0x41, 0x63, 0x1e, 0xd3, 0xa9, 0x9a, 0xe9, 0x39, 0x87, 0x61, + 0x0d, 0x10, 0x58, 0x21, 0x79, 0x7c, 0x38, 0x09, 0x33, 0x83, 0x58, 0xd1, 0x45, 0x28, 0xea, 0x0e, + 0xa6, 0x05, 0xd1, 0x6f, 0xe8, 0x26, 0x44, 0x31, 0x77, 0x3b, 0x0a, 0x90, 0x40, 0x8d, 0x28, 0x17, + 0x21, 0xbd, 0xb7, 0xc8, 0x6c, 0x22, 0x40, 0xa0, 0x8e, 0xa7, 0x09, 0x45, 0x71, 0xf2, 0x7e, 0x47, + 0x6b, 0x6b, 0xa6, 0x2e, 0x22, 0xd8, 0x63, 0xf9, 0x7c, 0x71, 0x7a, 0xbf, 0xca, 0x20, 0x50, 0x0d, + 0xc6, 0x05, 0x5a, 0xea, 0xf8, 0x68, 0x82, 0x17, 0x9d, 0x87, 0x7c, 0xd8, 0x31, 0xd0, 0x68, 0x24, + 0xa5, 0xe4, 0x42, 0x7e, 0x61, 0x98, 0xe7, 0x49, 0x1f, 0xe9, 0x79, 0x78, 0xc0, 0xf7, 0xc3, 0x49, + 0x98, 0x54, 0x70, 0xeb, 0x6f, 0xff, 0xb0, 0x6c, 0x02, 0xb0, 0xa9, 0x4a, 0x2c, 0x29, 0x1f, 0x99, + 0x7b, 0x98, 0xef, 0x59, 0x06, 0xb2, 0xe4, 0x7a, 0x5f, 0xad, 0x11, 0xfa, 0xbd, 0x04, 0xe4, 0xc3, + 0x23, 0xf4, 0x77, 0xd2, 0x69, 0xa1, 0xf5, 0xc0, 0x4c, 0xb1, 0x6f, 0x07, 0x1e, 0x1e, 0x64, 0xa6, + 0xfa, 0xb4, 0x79, 0x88, 0x7d, 0xfa, 0x7c, 0x12, 0xd2, 0xfc, 0x0c, 0xcf, 0x46, 0x5f, 0x6c, 0x3b, + 0xf4, 0x03, 0xea, 0x82, 0xf8, 0x06, 0x3d, 0x36, 0xb4, 0x7d, 0x10, 0x26, 0xc8, 0x1a, 0x39, 0x72, + 0x30, 0x48, 0xba, 0x54, 0xa0, 0x4b, 0xdd, 0xe0, 0x60, 0x2c, 0x9a, 0x83, 0x1c, 0x21, 0x0b, 0xec, + 0x30, 0xa1, 0x81, 0x8e, 0x76, 0x50, 0x63, 0x25, 0xe8, 0x31, 0x40, 0xfb, 0x7e, 0xe2, 0x42, 0x0d, + 0x04, 0x41, 0xe8, 0x26, 0x83, 0x1a, 0x41, 0x7e, 0x3f, 0x00, 0x69, 0x85, 0xca, 0x6e, 0xd5, 0xe6, + 0x77, 0x96, 0x93, 0x92, 0x25, 0x7a, 0xb3, 0xf6, 0xb7, 0x48, 0x2c, 0x44, 0xee, 0x59, 0x49, 0xf3, + 0x15, 0x4a, 0x73, 0x84, 0x49, 0xf1, 0x17, 0x6f, 0xcd, 0xcd, 0x1e, 0x6a, 0x9d, 0x76, 0xb9, 0x14, + 0x83, 0x53, 0x8a, 0x5b, 0xdc, 0x93, 0xc0, 0x39, 0xba, 0x12, 0x47, 0x75, 0x90, 0x6f, 0xe1, 0x43, + 0xd5, 0xe1, 0x3f, 0xca, 0xae, 0xee, 0x62, 0x71, 0x87, 0xc1, 0x99, 0x85, 0x98, 0x3b, 0xce, 0x17, + 0x16, 0x2d, 0xc3, 0xe4, 0xfb, 0x13, 0x13, 0xb7, 0xf0, 0xa1, 0xc2, 0xf9, 0x96, 0x31, 0x2e, 0x3f, + 0x40, 0x66, 0xca, 0x9b, 0x9f, 0xff, 0x99, 0xcb, 0x67, 0x43, 0xf7, 0x75, 0x1f, 0xf8, 0x39, 0x32, + 0x36, 0xbc, 0x24, 0xe8, 0x45, 0x81, 0x03, 0x0a, 0x1d, 0x04, 0x83, 0xd0, 0x3a, 0x41, 0x3a, 0x7a, + 0xfd, 0x11, 0xf0, 0x47, 0xd6, 0x1f, 0xa1, 0xe9, 0xf9, 0x62, 0x60, 0xff, 0x13, 0xc3, 0x7a, 0x13, + 0xd6, 0x4c, 0xce, 0x44, 0x67, 0xfd, 0x89, 0xd2, 0xbf, 0x97, 0xe0, 0x4c, 0x9f, 0x26, 0xfb, 0x4d, + 0xd6, 0x01, 0x39, 0xa1, 0x4a, 0xaa, 0x11, 0x62, 0x2f, 0xf0, 0xde, 0x26, 0xc6, 0xa4, 0xd3, 0xe7, + 0x04, 0xde, 0x19, 0x47, 0xc6, 0xad, 0xd8, 0xaf, 0x4b, 0x30, 0x1d, 0x6e, 0x80, 0xdf, 0x95, 0x06, + 0xe4, 0xc3, 0xaf, 0xe6, 0x9d, 0x78, 0x60, 0x94, 0x4e, 0x84, 0xdb, 0x1f, 0x01, 0x41, 0xdb, 0x81, + 0xb5, 0x60, 0x99, 0xb9, 0xab, 0x23, 0x0b, 0x45, 0x34, 0x2c, 0xd6, 0x6a, 0xb0, 0xb1, 0xf9, 0x63, + 0x09, 0x52, 0x9b, 0x96, 0xd5, 0x46, 0xef, 0x83, 0x49, 0xd3, 0xf2, 0x54, 0x32, 0xb3, 0x70, 0x4b, + 0xe5, 0x69, 0x03, 0x66, 0x89, 0x6b, 0x47, 0xca, 0xea, 0x8f, 0xde, 0x9a, 0xeb, 0xe7, 0x8c, 0xbb, + 0x33, 0xbf, 0x68, 0x5a, 0x5e, 0x95, 0x12, 0x35, 0x59, 0x66, 0x61, 0x17, 0x0a, 0xd1, 0xd7, 0x31, + 0x6b, 0x5d, 0x19, 0xf6, 0xba, 0xc2, 0xd0, 0x57, 0xe5, 0x77, 0x42, 0xef, 0x61, 0xb7, 0x83, 0xff, + 0x19, 0x19, 0xb9, 0x6f, 0x00, 0x79, 0xbb, 0xf7, 0xa4, 0xc9, 0x32, 0x8c, 0x8b, 0x93, 0x25, 0xd2, + 0xa8, 0xa7, 0x56, 0xc2, 0xf2, 0xe4, 0xcc, 0x34, 0xf5, 0xf9, 0x99, 0x04, 0x9c, 0x59, 0xb4, 0x4c, + 0x97, 0x27, 0x79, 0xf8, 0xac, 0x66, 0x79, 0xda, 0x43, 0xf4, 0xf0, 0x80, 0x14, 0x54, 0xbe, 0x3f, + 0xd1, 0xb4, 0x0d, 0x45, 0xe2, 0x5e, 0x75, 0xcb, 0x7c, 0x9b, 0x79, 0xa6, 0x82, 0xd5, 0x6e, 0xf1, + 0x16, 0xdd, 0xc2, 0x87, 0x04, 0xd7, 0xc4, 0x77, 0x22, 0xb8, 0xc9, 0x7b, 0xc3, 0x35, 0xf1, 0x9d, + 0x10, 0x6e, 0xb0, 0x99, 0x99, 0x8a, 0x6c, 0x66, 0x5e, 0x87, 0x24, 0x31, 0x85, 0x63, 0xc7, 0x30, + 0x1e, 0x84, 0x21, 0xe4, 0xd2, 0x1a, 0x70, 0x86, 0x67, 0x09, 0xdc, 0x8d, 0x5d, 0x2a, 0x51, 0x4c, + 0x3b, 0xf4, 0x32, 0x3e, 0x8c, 0x49, 0x19, 0xe4, 0x47, 0x4a, 0x19, 0x5c, 0xfe, 0x79, 0x09, 0x20, + 0xc8, 0x97, 0xa1, 0x47, 0xe1, 0x74, 0x75, 0x63, 0x7d, 0x29, 0xd8, 0xd7, 0x09, 0xfd, 0x70, 0x90, + 0xb8, 0xc3, 0xcb, 0xb5, 0xb1, 0x6e, 0xec, 0x1a, 0xb8, 0x85, 0x1e, 0x82, 0xe9, 0x28, 0x35, 0x79, + 0xaa, 0x2d, 0xc9, 0xd2, 0x6c, 0xfe, 0xcd, 0xbb, 0xf3, 0x19, 0xb6, 0x3e, 0xc0, 0x2d, 0x74, 0x09, + 0x4e, 0xf6, 0xd3, 0xd5, 0xd7, 0x57, 0xe4, 0xc4, 0x6c, 0xe1, 0xcd, 0xbb, 0xf3, 0x59, 0x7f, 0x21, + 0x81, 0x4a, 0x80, 0xc2, 0x94, 0x1c, 0x2f, 0x39, 0x0b, 0x6f, 0xde, 0x9d, 0x4f, 0xb3, 0x29, 0xc3, + 0x37, 0x84, 0xbe, 0x1e, 0xa0, 0x6e, 0xee, 0x3a, 0x9a, 0x4e, 0x4d, 0xc3, 0x2c, 0x9c, 0xaa, 0xaf, + 0x2f, 0x2b, 0x95, 0xc5, 0x66, 0x7d, 0x63, 0xbd, 0xe7, 0xf7, 0x8e, 0xa2, 0x75, 0x4b, 0x1b, 0x5b, + 0xd5, 0xd5, 0x9a, 0xda, 0xa8, 0xaf, 0xac, 0xb3, 0xdd, 0xdb, 0x48, 0xdd, 0x7b, 0xd7, 0x9b, 0xf5, + 0xb5, 0x9a, 0x9c, 0xa8, 0x5e, 0x1f, 0xb8, 0xd1, 0x73, 0x5f, 0x64, 0x32, 0x06, 0xee, 0x28, 0xf2, + 0x43, 0x12, 0xff, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x8c, 0x47, 0x9f, 0x20, 0x33, 0xa5, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -2648,53 +2576,6 @@ func (m *HistoricalInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *HistoricalRecord) 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 *HistoricalRecord) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *HistoricalRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.ValidatorsHash) > 0 { - i -= len(m.ValidatorsHash) - copy(dAtA[i:], m.ValidatorsHash) - i = encodeVarintStaking(dAtA, i, uint64(len(m.ValidatorsHash))) - i-- - dAtA[i] = 0x1a - } - if m.Time != nil { - n2, err2 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(*m.Time, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(*m.Time):]) - if err2 != nil { - return 0, err2 - } - i -= n2 - i = encodeVarintStaking(dAtA, i, uint64(n2)) - i-- - dAtA[i] = 0x12 - } - if len(m.Apphash) > 0 { - i -= len(m.Apphash) - copy(dAtA[i:], m.Apphash) - i = encodeVarintStaking(dAtA, i, uint64(len(m.Apphash))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *CommissionRates) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2768,12 +2649,12 @@ func (m *Commission) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - n3, err3 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UpdateTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UpdateTime):]) - if err3 != nil { - return 0, err3 + n2, err2 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UpdateTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UpdateTime):]) + if err2 != nil { + return 0, err2 } - i -= n3 - i = encodeVarintStaking(dAtA, i, uint64(n3)) + i -= n2 + i = encodeVarintStaking(dAtA, i, uint64(n2)) i-- dAtA[i] = 0x12 { @@ -2868,20 +2749,20 @@ func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.UnbondingIds) > 0 { - dAtA6 := make([]byte, len(m.UnbondingIds)*10) - var j5 int + dAtA5 := make([]byte, len(m.UnbondingIds)*10) + var j4 int for _, num := range m.UnbondingIds { for num >= 1<<7 { - dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80) + dAtA5[j4] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j5++ + j4++ } - dAtA6[j5] = uint8(num) - j5++ + dAtA5[j4] = uint8(num) + j4++ } - i -= j5 - copy(dAtA[i:], dAtA6[:j5]) - i = encodeVarintStaking(dAtA, i, uint64(j5)) + i -= j4 + copy(dAtA[i:], dAtA5[:j4]) + i = encodeVarintStaking(dAtA, i, uint64(j4)) i-- dAtA[i] = 0x6a } @@ -2910,12 +2791,12 @@ func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x52 - n8, err8 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingTime):]) - if err8 != nil { - return 0, err8 + n7, err7 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingTime):]) + if err7 != nil { + return 0, err7 } - i -= n8 - i = encodeVarintStaking(dAtA, i, uint64(n8)) + i -= n7 + i = encodeVarintStaking(dAtA, i, uint64(n7)) i-- dAtA[i] = 0x4a if m.UnbondingHeight != 0 { @@ -3325,12 +3206,12 @@ func (m *UnbondingDelegationEntry) MarshalToSizedBuffer(dAtA []byte) (int, error } i-- dAtA[i] = 0x1a - n11, err11 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) - if err11 != nil { - return 0, err11 + n10, err10 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) + if err10 != nil { + return 0, err10 } - i -= n11 - i = encodeVarintStaking(dAtA, i, uint64(n11)) + i -= n10 + i = encodeVarintStaking(dAtA, i, uint64(n10)) i-- dAtA[i] = 0x12 if m.CreationHeight != 0 { @@ -3391,12 +3272,12 @@ func (m *RedelegationEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x1a - n12, err12 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) - if err12 != nil { - return 0, err12 + n11, err11 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) + if err11 != nil { + return 0, err11 } - i -= n12 - i = encodeVarintStaking(dAtA, i, uint64(n12)) + i -= n11 + i = encodeVarintStaking(dAtA, i, uint64(n11)) i-- dAtA[i] = 0x12 if m.CreationHeight != 0 { @@ -3527,12 +3408,12 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x10 } - n14, err14 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingTime):]) - if err14 != nil { - return 0, err14 + n13, err13 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingTime):]) + if err13 != nil { + return 0, err13 } - i -= n14 - i = encodeVarintStaking(dAtA, i, uint64(n14)) + i -= n13 + i = encodeVarintStaking(dAtA, i, uint64(n13)) i-- dAtA[i] = 0xa return len(dAtA) - i, nil @@ -3880,27 +3761,6 @@ func (m *HistoricalInfo) Size() (n int) { return n } -func (m *HistoricalRecord) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Apphash) - if l > 0 { - n += 1 + l + sovStaking(uint64(l)) - } - if m.Time != nil { - l = github_com_cosmos_gogoproto_types.SizeOfStdTime(*m.Time) - n += 1 + l + sovStaking(uint64(l)) - } - l = len(m.ValidatorsHash) - if l > 0 { - n += 1 + l + sovStaking(uint64(l)) - } - return n -} - func (m *CommissionRates) Size() (n int) { if m == nil { return 0 @@ -4469,160 +4329,6 @@ func (m *HistoricalInfo) Unmarshal(dAtA []byte) error { } return nil } -func (m *HistoricalRecord) 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 ErrIntOverflowStaking - } - 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: HistoricalRecord: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: HistoricalRecord: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Apphash", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowStaking - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthStaking - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthStaking - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Apphash = append(m.Apphash[:0], dAtA[iNdEx:postIndex]...) - if m.Apphash == nil { - m.Apphash = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowStaking - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthStaking - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthStaking - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Time == nil { - m.Time = new(time.Time) - } - if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(m.Time, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ValidatorsHash", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowStaking - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthStaking - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthStaking - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ValidatorsHash = append(m.ValidatorsHash[:0], dAtA[iNdEx:postIndex]...) - if m.ValidatorsHash == nil { - m.ValidatorsHash = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipStaking(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthStaking - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *CommissionRates) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 From b1cede0412b61e923095cac8b9554357d3079f0c Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Wed, 3 Jul 2024 12:24:17 +0200 Subject: [PATCH 06/13] remove extra --- client/docs/swagger-ui/swagger.yaml | 1055 +++++++++++++++-- x/staking/README.md | 211 ---- .../cosmos/staking/v1beta1/staking.proto | 6 +- x/staking/simulation/genesis.go | 4 +- x/staking/simulation/proposals.go | 2 +- x/staking/simulation/proposals_test.go | 2 +- x/staking/types/errors.go | 1 - x/staking/types/params.go | 8 +- 8 files changed, 990 insertions(+), 299 deletions(-) diff --git a/client/docs/swagger-ui/swagger.yaml b/client/docs/swagger-ui/swagger.yaml index 29df67ba00b7..f949019cfdd8 100644 --- a/client/docs/swagger-ui/swagger.yaml +++ b/client/docs/swagger-ui/swagger.yaml @@ -13941,6 +13941,9 @@ paths: result to be considered valid for an expedited proposal. + proposal_execution_gas: + type: string + format: uint64 description: >- QueryParamsResponse is the response type for the Query/Params RPC method. @@ -17345,7 +17348,177 @@ paths: properties: '@type': type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. additionalProperties: {} + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } tags: - Query /cosmos/mint/v1beta1/inflation: @@ -17384,7 +17557,177 @@ paths: properties: '@type': type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. additionalProperties: {} + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } tags: - Query /cosmos/mint/v1beta1/params: @@ -17443,7 +17786,177 @@ paths: properties: '@type': type: string + description: >- + A URL/resource name that uniquely identifies the type of + the serialized + + protocol buffer message. This string must contain at + least + + one "/" character. The last segment of the URL's path + must represent + + the fully qualified name of the type (as in + + `path/google.protobuf.Duration`). The name should be in + a canonical form + + (e.g., leading "." is not accepted). + + + In practice, teams usually precompile into the binary + all types that they + + expect it to use in the context of Any. However, for + URLs which use the + + scheme `http`, `https`, or no scheme, one can optionally + set up a type + + server that maps type URLs to message definitions as + follows: + + + * If no scheme is provided, `https` is assumed. + + * An HTTP GET on the URL must yield a + [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based + on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in + the official + + protobuf release, and it is not used for type URLs + beginning with + + type.googleapis.com. + + + Schemes other than `http`, `https` (or the empty scheme) + might be + + used with implementation specific semantics. additionalProperties: {} + description: >- + `Any` contains an arbitrary serialized protocol buffer + message along with a + + URL that describes the type of the serialized message. + + + Protobuf library provides support to pack/unpack Any values + in the form + + of utility functions or additional generated methods of the + Any type. + + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by + default use + + 'type.googleapis.com/full.type.name' as the type URL and the + unpack + + methods only use the fully qualified type name after the + last '/' + + in the type URL, for example "foo.bar.com/x/y.z" will yield + type + + name "y.z". + + + JSON + + ==== + + The JSON representation of an `Any` value uses the regular + + representation of the deserialized, embedded message, with + an + + additional field `@type` which contains the type URL. + Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom + JSON + + representation, that representation will be embedded adding + a field + + `value` which holds the custom JSON in addition to the + `@type` + + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } tags: - Query /cosmos/params/v1beta1/params: @@ -20236,29 +20749,6 @@ paths: bonded shares multiplied by exchange rate. - historical_record: - type: object - properties: - apphash: - type: string - format: byte - time: - type: string - format: date-time - validators_hash: - type: string - format: byte - description: >- - Historical contains a set of minimum values needed for - evaluating historical validator sets and blocks. - - It is stored as part of staking module's state, which persists - the `n` most - - recent HistoricalInfo - - (`n` is set by the staking module's `historical_entries` - parameter). description: >- QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC @@ -21150,9 +21640,32 @@ paths: bonded shares multiplied by exchange rate. - description: validators contains all the queried validators. + validator_info: + type: array + items: + type: object + properties: + consensus_address: + type: string + description: >- + consensus_address is the consensus address of the + validator. + description: >- + ValidatorInfo contains the validator's address and public + key. + description: >- + validator_info contains additional information for each + validator. + + The order of the elements in this list corresponds to the + order of the elements in the validators list. + + For example, if you want the ValidatorInfo for the third + validator in the validators list, + + you should look at the third element in the validator_info + list. pagination: - description: pagination defines the pagination in the response. type: object properties: next_key: @@ -21170,6 +21683,16 @@ paths: PageRequest.count_total was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } title: >- QueryValidatorsResponse is response type for the Query/Validators RPC method @@ -21884,7 +22407,6 @@ paths: balance in addition to shares which is more suitable for client responses. pagination: - description: pagination defines the pagination in the response. type: object properties: next_key: @@ -21902,6 +22424,16 @@ paths: PageRequest.count_total was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } title: |- QueryValidatorDelegationsResponse is response type for the Query/ValidatorDelegations RPC method @@ -22764,7 +23296,6 @@ paths: for a single validator in an time-ordered list. pagination: - description: pagination defines the pagination in the response. type: object properties: next_key: @@ -22782,6 +23313,16 @@ paths: PageRequest.count_total was set, its value is undefined otherwise + description: >- + PageResponse is to be embedded in gRPC response messages where + the + + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } description: >- QueryValidatorUnbondingDelegationsResponse is response type for the @@ -49952,6 +50493,9 @@ definitions: description: |- Minimum percentage of total stake needed to vote for a result to be considered valid for an expedited proposal. + proposal_execution_gas: + type: string + format: uint64 description: Params defines the parameters for the x/gov module. cosmos.gov.v1.Proposal: type: object @@ -50711,6 +51255,9 @@ definitions: be considered valid for an expedited proposal. + proposal_execution_gas: + type: string + format: uint64 description: QueryParamsResponse is the response type for the Query/Params RPC method. cosmos.gov.v1.QueryProposalResponse: type: object @@ -52621,28 +53168,6 @@ definitions: recent HistoricalInfo - (`n` is set by the staking module's `historical_entries` parameter). - cosmos.staking.v1beta1.HistoricalRecord: - type: object - properties: - apphash: - type: string - format: byte - time: - type: string - format: date-time - validators_hash: - type: string - format: byte - description: >- - Historical contains a set of minimum values needed for evaluating - historical validator sets and blocks. - - It is stored as part of staking module's state, which persists the `n` - most - - recent HistoricalInfo - (`n` is set by the staking module's `historical_entries` parameter). cosmos.staking.v1beta1.Params: type: object @@ -53607,28 +54132,6 @@ definitions: shares multiplied by exchange rate. - historical_record: - type: object - properties: - apphash: - type: string - format: byte - time: - type: string - format: date-time - validators_hash: - type: string - format: byte - description: >- - Historical contains a set of minimum values needed for evaluating - historical validator sets and blocks. - - It is stored as part of staking module's state, which persists the `n` - most - - recent HistoricalInfo - - (`n` is set by the staking module's `historical_entries` parameter). description: >- QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC @@ -53964,7 +54467,6 @@ definitions: balance in addition to shares which is more suitable for client responses. pagination: - description: pagination defines the pagination in the response. type: object properties: next_key: @@ -53982,6 +54484,14 @@ definitions: PageRequest.count_total was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } title: |- QueryValidatorDelegationsResponse is response type for the Query/ValidatorDelegations RPC method @@ -54225,7 +54735,6 @@ definitions: for a single validator in an time-ordered list. pagination: - description: pagination defines the pagination in the response. type: object properties: next_key: @@ -54243,6 +54752,14 @@ definitions: PageRequest.count_total was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } description: |- QueryValidatorUnbondingDelegationsResponse is response type for the Query/ValidatorUnbondingDelegations RPC method. @@ -54451,9 +54968,26 @@ definitions: exchange rate. Voting power can be calculated as total bonded shares multiplied by exchange rate. - description: validators contains all the queried validators. + validator_info: + type: array + items: + type: object + properties: + consensus_address: + type: string + description: consensus_address is the consensus address of the validator. + description: ValidatorInfo contains the validator's address and public key. + description: >- + validator_info contains additional information for each validator. + + The order of the elements in this list corresponds to the order of the + elements in the validators list. + + For example, if you want the ValidatorInfo for the third validator in + the validators list, + + you should look at the third element in the validator_info list. pagination: - description: pagination defines the pagination in the response. type: object properties: next_key: @@ -54471,6 +55005,14 @@ definitions: PageRequest.count_total was set, its value is undefined otherwise + description: |- + PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } title: >- QueryValidatorsResponse is response type for the Query/Validators RPC method @@ -55018,6 +55560,13 @@ definitions: exchange rate. Voting power can be calculated as total bonded shares multiplied by exchange rate. + cosmos.staking.v1beta1.ValidatorInfo: + type: object + properties: + consensus_address: + type: string + description: consensus_address is the consensus address of the validator. + description: ValidatorInfo contains the validator's address and public key. cometbft.abci.v1.Event: type: object properties: @@ -64643,6 +65192,152 @@ definitions: breaker for Msg's of all type URLs. - LEVEL_SUPER_ADMIN: LEVEL_SUPER_ADMIN indicates that the account can take all circuit breaker actions and can grant permissions to other accounts. + cometbft.abci.v1.CommitInfo: + type: object + properties: + round: + type: integer + format: int32 + votes: + type: array + items: + type: object + properties: + validator: + type: object + properties: + address: + type: string + format: byte + title: The first 20 bytes of SHA256(public key) + power: + type: string + format: int64 + description: The voting power + title: PubKey pub_key = 2 [(gogoproto.nullable)=false]; + description: Validator in the validator set. + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + description: |- + - BLOCK_ID_FLAG_UNKNOWN: Indicates an error condition + - BLOCK_ID_FLAG_ABSENT: The vote was not received + - BLOCK_ID_FLAG_COMMIT: Voted for the block that received the majority + - BLOCK_ID_FLAG_NIL: Voted for nil + title: BlockIdFlag indicates which BlockID the signature is for + description: VoteInfo contains the information about the vote. + description: CommitInfo contains votes for the particular round. + cometbft.abci.v1.Misbehavior: + type: object + properties: + type: + type: string + enum: + - MISBEHAVIOR_TYPE_UNKNOWN + - MISBEHAVIOR_TYPE_DUPLICATE_VOTE + - MISBEHAVIOR_TYPE_LIGHT_CLIENT_ATTACK + default: MISBEHAVIOR_TYPE_UNKNOWN + description: |- + The type of misbehavior committed by a validator. + + - MISBEHAVIOR_TYPE_UNKNOWN: Unknown + - MISBEHAVIOR_TYPE_DUPLICATE_VOTE: Duplicate vote + - MISBEHAVIOR_TYPE_LIGHT_CLIENT_ATTACK: Light client attack + validator: + type: object + properties: + address: + type: string + format: byte + title: The first 20 bytes of SHA256(public key) + power: + type: string + format: int64 + description: The voting power + title: PubKey pub_key = 2 [(gogoproto.nullable)=false]; + description: Validator in the validator set. + title: The offending validator + height: + type: string + format: int64 + title: The height when the offense occurred + time: + type: string + format: date-time + title: The corresponding time where the offense occurred + total_voting_power: + type: string + format: int64 + title: >- + Total voting power of the validator set in case the ABCI application + does + + not store historical validators. + + https://github.com/tendermint/tendermint/issues/4581 + description: Misbehavior is a type of misbehavior committed by a validator. + cometbft.abci.v1.MisbehaviorType: + type: string + enum: + - MISBEHAVIOR_TYPE_UNKNOWN + - MISBEHAVIOR_TYPE_DUPLICATE_VOTE + - MISBEHAVIOR_TYPE_LIGHT_CLIENT_ATTACK + default: MISBEHAVIOR_TYPE_UNKNOWN + description: |- + The type of misbehavior committed by a validator. + + - MISBEHAVIOR_TYPE_UNKNOWN: Unknown + - MISBEHAVIOR_TYPE_DUPLICATE_VOTE: Duplicate vote + - MISBEHAVIOR_TYPE_LIGHT_CLIENT_ATTACK: Light client attack + cometbft.abci.v1.Validator: + type: object + properties: + address: + type: string + format: byte + title: The first 20 bytes of SHA256(public key) + power: + type: string + format: int64 + description: The voting power + title: PubKey pub_key = 2 [(gogoproto.nullable)=false]; + description: Validator in the validator set. + cometbft.abci.v1.VoteInfo: + type: object + properties: + validator: + type: object + properties: + address: + type: string + format: byte + title: The first 20 bytes of SHA256(public key) + power: + type: string + format: int64 + description: The voting power + title: PubKey pub_key = 2 [(gogoproto.nullable)=false]; + description: Validator in the validator set. + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + description: |- + - BLOCK_ID_FLAG_UNKNOWN: Indicates an error condition + - BLOCK_ID_FLAG_ABSENT: The vote was not received + - BLOCK_ID_FLAG_COMMIT: Voted for the block that received the majority + - BLOCK_ID_FLAG_NIL: Voted for nil + title: BlockIdFlag indicates which BlockID the signature is for + description: VoteInfo contains the information about the vote. cometbft.types.v1.ABCIParams: type: object properties: @@ -65009,6 +65704,214 @@ definitions: It was named app_version in CometBFT 0.34. description: VersionParams contain the version of specific components of CometBFT. + cosmos.consensus.v1.CometInfo: + type: object + properties: + evidence: + type: array + items: + type: object + properties: + type: + type: string + enum: + - MISBEHAVIOR_TYPE_UNKNOWN + - MISBEHAVIOR_TYPE_DUPLICATE_VOTE + - MISBEHAVIOR_TYPE_LIGHT_CLIENT_ATTACK + default: MISBEHAVIOR_TYPE_UNKNOWN + description: |- + The type of misbehavior committed by a validator. + + - MISBEHAVIOR_TYPE_UNKNOWN: Unknown + - MISBEHAVIOR_TYPE_DUPLICATE_VOTE: Duplicate vote + - MISBEHAVIOR_TYPE_LIGHT_CLIENT_ATTACK: Light client attack + validator: + type: object + properties: + address: + type: string + format: byte + title: The first 20 bytes of SHA256(public key) + power: + type: string + format: int64 + description: The voting power + title: PubKey pub_key = 2 [(gogoproto.nullable)=false]; + description: Validator in the validator set. + title: The offending validator + height: + type: string + format: int64 + title: The height when the offense occurred + time: + type: string + format: date-time + title: The corresponding time where the offense occurred + total_voting_power: + type: string + format: int64 + title: >- + Total voting power of the validator set in case the ABCI + application does + + not store historical validators. + + https://github.com/tendermint/tendermint/issues/4581 + description: Misbehavior is a type of misbehavior committed by a validator. + validators_hash: + type: string + format: byte + proposer_address: + type: string + format: byte + last_commit: + type: object + properties: + round: + type: integer + format: int32 + votes: + type: array + items: + type: object + properties: + validator: + type: object + properties: + address: + type: string + format: byte + title: The first 20 bytes of SHA256(public key) + power: + type: string + format: int64 + description: The voting power + title: PubKey pub_key = 2 [(gogoproto.nullable)=false]; + description: Validator in the validator set. + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + description: |- + - BLOCK_ID_FLAG_UNKNOWN: Indicates an error condition + - BLOCK_ID_FLAG_ABSENT: The vote was not received + - BLOCK_ID_FLAG_COMMIT: Voted for the block that received the majority + - BLOCK_ID_FLAG_NIL: Voted for nil + title: BlockIdFlag indicates which BlockID the signature is for + description: VoteInfo contains the information about the vote. + description: CommitInfo contains votes for the particular round. + description: CometInfo defines the structure of the x/consensus module's comet info. + cosmos.consensus.v1.QueryGetCometInfoResponse: + type: object + properties: + comet_info: + description: comet_info is the comet info of the x/consensus module. + type: object + properties: + evidence: + type: array + items: + type: object + properties: + type: + type: string + enum: + - MISBEHAVIOR_TYPE_UNKNOWN + - MISBEHAVIOR_TYPE_DUPLICATE_VOTE + - MISBEHAVIOR_TYPE_LIGHT_CLIENT_ATTACK + default: MISBEHAVIOR_TYPE_UNKNOWN + description: |- + The type of misbehavior committed by a validator. + + - MISBEHAVIOR_TYPE_UNKNOWN: Unknown + - MISBEHAVIOR_TYPE_DUPLICATE_VOTE: Duplicate vote + - MISBEHAVIOR_TYPE_LIGHT_CLIENT_ATTACK: Light client attack + validator: + type: object + properties: + address: + type: string + format: byte + title: The first 20 bytes of SHA256(public key) + power: + type: string + format: int64 + description: The voting power + title: PubKey pub_key = 2 [(gogoproto.nullable)=false]; + description: Validator in the validator set. + title: The offending validator + height: + type: string + format: int64 + title: The height when the offense occurred + time: + type: string + format: date-time + title: The corresponding time where the offense occurred + total_voting_power: + type: string + format: int64 + title: >- + Total voting power of the validator set in case the ABCI + application does + + not store historical validators. + + https://github.com/tendermint/tendermint/issues/4581 + description: Misbehavior is a type of misbehavior committed by a validator. + validators_hash: + type: string + format: byte + proposer_address: + type: string + format: byte + last_commit: + type: object + properties: + round: + type: integer + format: int32 + votes: + type: array + items: + type: object + properties: + validator: + type: object + properties: + address: + type: string + format: byte + title: The first 20 bytes of SHA256(public key) + power: + type: string + format: int64 + description: The voting power + title: PubKey pub_key = 2 [(gogoproto.nullable)=false]; + description: Validator in the validator set. + block_id_flag: + type: string + enum: + - BLOCK_ID_FLAG_UNKNOWN + - BLOCK_ID_FLAG_ABSENT + - BLOCK_ID_FLAG_COMMIT + - BLOCK_ID_FLAG_NIL + default: BLOCK_ID_FLAG_UNKNOWN + description: |- + - BLOCK_ID_FLAG_UNKNOWN: Indicates an error condition + - BLOCK_ID_FLAG_ABSENT: The vote was not received + - BLOCK_ID_FLAG_COMMIT: Voted for the block that received the majority + - BLOCK_ID_FLAG_NIL: Voted for nil + title: BlockIdFlag indicates which BlockID the signature is for + description: VoteInfo contains the information about the vote. + description: CommitInfo contains votes for the particular round. + description: >- + QueryCometInfoResponse defines the response type for querying x/consensus + comet info. cosmos.consensus.v1.QueryParamsResponse: type: object properties: @@ -65688,4 +66591,4 @@ definitions: The scope of this field's configuration is global (not module specific). - description: QueryConfigRequest is the Query/Config response type. + description: QueryConfigResponse is the Query/Config response type. diff --git a/x/staking/README.md b/x/staking/README.md index e1f757401992..c0d527d24280 100644 --- a/x/staking/README.md +++ b/x/staking/README.md @@ -30,7 +30,6 @@ network. * [UnbondingDelegation](#unbondingdelegation) * [Redelegation](#redelegation) * [Queues](#queues) - * [HistoricalInfo](#historicalinfo) * [ConsPubkeyRotation](#conspubkeyrotation) * [State Transitions](#state-transitions) * [Validators](#validators) @@ -361,20 +360,8 @@ the present store info and append the `ValAddress` to the array and set it back https://github.com/cosmos/cosmos-sdk/blob/8f0d5b15f0b10da7645d7fc1aa868fe44e3f3a44/proto/cosmos/staking/v1beta1/staking.proto#L429-L433 ``` -### HistoricalInfo -HistoricalInfo objects are stored and pruned at each block such that the staking keeper persists -the `n` most recent historical info defined by staking module parameter: `HistoricalEntries`. -```go reference -https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L17-L24 -``` - -At each BeginBlock, the staking keeper will persist the current Header and the Validators that committed -the current block in a `HistoricalInfo` object. The Validators are sorted on their address to ensure that -they are in a deterministic order. -The oldest HistoricalEntries will be pruned to ensure that there only exist the parameter-defined number of -historical entries. ## State Transitions @@ -796,18 +783,6 @@ The message handling can fail if: * The `max_cons_pubkey_rotations` limit reached within unbonding period. * The validator doesn't have enough balance to pay for the rotation. -## Begin-Block - -Each abci begin block call, the historical info will get stored and pruned -according to the `HistoricalEntries` parameter. - -### Historical Info Tracking - -If the `HistoricalEntries` parameter is 0, then the `BeginBlock` performs a no-op. - -Otherwise, the latest historical info is stored under the key `historicalInfoKey|height`, while any entries older than `height - HistoricalEntries` is deleted. -In most cases, this results in a single entry being pruned per block. -However, if the parameter `HistoricalEntries` has changed to a lower value there will be multiple entries in the store that must be pruned. ## End-Block @@ -2279,84 +2254,6 @@ Example Output: } ``` -#### HistoricalInfo - -```bash -cosmos.staking.v1beta1.Query/HistoricalInfo -``` - -Example: - -```bash -grpcurl -plaintext -d '{"height" : 1}' localhost:9090 cosmos.staking.v1beta1.Query/HistoricalInfo -``` - -Example Output: - -```bash -{ - "hist": { - "header": { - "version": { - "block": "11", - "app": "0" - }, - "chain_id": "simd-1", - "height": "140142", - "time": "2021-10-11T10:56:29.720079569Z", - "last_block_id": { - "hash": "9gri/4LLJUBFqioQ3NzZIP9/7YHR9QqaM6B2aJNQA7o=", - "part_set_header": { - "total": 1, - "hash": "Hk1+C864uQkl9+I6Zn7IurBZBKUevqlVtU7VqaZl1tc=" - } - }, - "last_commit_hash": "VxrcS27GtvGruS3I9+AlpT7udxIT1F0OrRklrVFSSKc=", - "data_hash": "80BjOrqNYUOkTnmgWyz9AQ8n7SoEmPVi4QmAe8RbQBY=", - "validators_hash": "95W49n2hw8RWpr1GPTAO5MSPi6w6Wjr3JjjS7AjpBho=", - "next_validators_hash": "95W49n2hw8RWpr1GPTAO5MSPi6w6Wjr3JjjS7AjpBho=", - "consensus_hash": "BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8=", - "app_hash": "ZZaxnSY3E6Ex5Bvkm+RigYCK82g8SSUL53NymPITeOE=", - "last_results_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", - "evidence_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", - "proposer_address": "aH6dO428B+ItuoqPq70efFHrSMY=" - }, - "valset": [ - { - "operator_address": "cosmosvaloper196ax4vc0lwpxndu9dyhvca7jhxp70rmcqcnylw", - "consensus_pubkey": { - "@type": "/cosmos.crypto.ed25519.PubKey", - "key": "/O7BtNW0pafwfvomgR4ZnfldwPXiFfJs9mHg3gwfv5Q=" - }, - "jailed": false, - "status": "BOND_STATUS_BONDED", - "tokens": "1426045203613", - "delegator_shares": "1426045203613.000000000000000000", - "description": { - "moniker": "SG-1", - "identity": "48608633F99D1B60", - "website": "https://sg-1.online", - "security_contact": "", - "details": "SG-1 - your favorite validator on Witval. We offer 100% Soft Slash protection." - }, - "unbonding_height": "0", - "unbonding_time": "1970-01-01T00:00:00Z", - "commission": { - "commission_rates": { - "rate": "0.037500000000000000", - "max_rate": "0.200000000000000000", - "max_change_rate": "0.030000000000000000" - }, - "update_time": "2021-10-01T15:00:00Z" - }, - "min_self_delegation": "1" - } - ] - } -} - -``` - #### Pool The `Pool` endpoint queries the pool information. @@ -2659,114 +2556,6 @@ Example Output: } ``` -#### HistoricalInfo - -The `HistoricalInfo` REST endpoint queries the historical information for given height. - -```bash -/cosmos/staking/v1beta1/historical_info/{height} -``` - -Example: - -```bash -curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/historical_info/153332" -H "accept: application/json" -``` - -Example Output: - -```bash -{ - "hist": { - "header": { - "version": { - "block": "11", - "app": "0" - }, - "chain_id": "cosmos-1", - "height": "153332", - "time": "2021-10-12T09:05:35.062230221Z", - "last_block_id": { - "hash": "NX8HevR5khb7H6NGKva+jVz7cyf0skF1CrcY9A0s+d8=", - "part_set_header": { - "total": 1, - "hash": "zLQ2FiKM5tooL3BInt+VVfgzjlBXfq0Hc8Iux/xrhdg=" - } - }, - "last_commit_hash": "P6IJrK8vSqU3dGEyRHnAFocoDGja0bn9euLuy09s350=", - "data_hash": "eUd+6acHWrNXYju8Js449RJ99lOYOs16KpqQl4SMrEM=", - "validators_hash": "mB4pravvMsJKgi+g8aYdSeNlt0kPjnRFyvtAQtaxcfw=", - "next_validators_hash": "mB4pravvMsJKgi+g8aYdSeNlt0kPjnRFyvtAQtaxcfw=", - "consensus_hash": "BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8=", - "app_hash": "fuELArKRK+CptnZ8tu54h6xEleSWenHNmqC84W866fU=", - "last_results_hash": "p/BPexV4LxAzlVcPRvW+lomgXb6Yze8YLIQUo/4Kdgc=", - "evidence_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", - "proposer_address": "G0MeY8xQx7ooOsni8KE/3R/Ib3Q=" - }, - "valset": [ - { - "operator_address": "cosmosvaloper196ax4vc0lwpxndu9dyhvca7jhxp70rmcqcnylw", - "consensus_pubkey": { - "@type": "/cosmos.crypto.ed25519.PubKey", - "key": "/O7BtNW0pafwfvomgR4ZnfldwPXiFfJs9mHg3gwfv5Q=" - }, - "jailed": false, - "status": "BOND_STATUS_BONDED", - "tokens": "1416521659632", - "delegator_shares": "1416521659632.000000000000000000", - "description": { - "moniker": "SG-1", - "identity": "48608633F99D1B60", - "website": "https://sg-1.online", - "security_contact": "", - "details": "SG-1 - your favorite validator on cosmos. We offer 100% Soft Slash protection." - }, - "unbonding_height": "0", - "unbonding_time": "1970-01-01T00:00:00Z", - "commission": { - "commission_rates": { - "rate": "0.037500000000000000", - "max_rate": "0.200000000000000000", - "max_change_rate": "0.030000000000000000" - }, - "update_time": "2021-10-01T15:00:00Z" - }, - "min_self_delegation": "1" - }, - { - "operator_address": "cosmosvaloper1t8ehvswxjfn3ejzkjtntcyrqwvmvuknzmvtaaa", - "consensus_pubkey": { - "@type": "/cosmos.crypto.ed25519.PubKey", - "key": "uExZyjNLtr2+FFIhNDAMcQ8+yTrqE7ygYTsI7khkA5Y=" - }, - "jailed": false, - "status": "BOND_STATUS_BONDED", - "tokens": "1348298958808", - "delegator_shares": "1348298958808.000000000000000000", - "description": { - "moniker": "Cosmostation", - "identity": "AE4C403A6E7AA1AC", - "website": "https://www.cosmostation.io", - "security_contact": "admin@stamper.network", - "details": "Cosmostation validator node. Delegate your tokens and Start Earning Staking Rewards" - }, - "unbonding_height": "0", - "unbonding_time": "1970-01-01T00:00:00Z", - "commission": { - "commission_rates": { - "rate": "0.050000000000000000", - "max_rate": "1.000000000000000000", - "max_change_rate": "0.200000000000000000" - }, - "update_time": "2021-10-01T15:06:38.821314287Z" - }, - "min_self_delegation": "1" - } - ] - } -} -``` - #### Parameters The `Parameters` REST endpoint queries the staking parameters. diff --git a/x/staking/proto/cosmos/staking/v1beta1/staking.proto b/x/staking/proto/cosmos/staking/v1beta1/staking.proto index faf80f597dc8..f9e5d555f1fc 100644 --- a/x/staking/proto/cosmos/staking/v1beta1/staking.proto +++ b/x/staking/proto/cosmos/staking/v1beta1/staking.proto @@ -221,7 +221,7 @@ message UnbondingDelegation { string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; // entries are the unbonding delegation entries. repeated UnbondingDelegationEntry entries = 3 - [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // unbonding delegation entries + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // unbonding delegation entries } // UnbondingDelegationEntry defines an unbonding object with relevant metadata. @@ -294,7 +294,7 @@ message Redelegation { string validator_dst_address = 3 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; // entries are the redelegation entries. repeated RedelegationEntry entries = 4 - [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // redelegation entries + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // redelegation entries } // Params defines the parameters for the x/staking module. @@ -310,7 +310,7 @@ message Params { // max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). uint32 max_entries = 3; // historical_entries is the number of historical entries to persist. - uint32 historical_entries = 4; + uint32 historical_entries = 4 [deprecated = true]; // bond_denom defines the bondable coin denomination. string bond_denom = 5; // min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators diff --git a/x/staking/simulation/genesis.go b/x/staking/simulation/genesis.go index 8b97c60136b9..5aedf6957923 100644 --- a/x/staking/simulation/genesis.go +++ b/x/staking/simulation/genesis.go @@ -34,7 +34,7 @@ func genMaxValidators(r *rand.Rand) (maxValidators uint32) { // getHistEntries returns randomized HistoricalEntries between 0-100. func getHistEntries(r *rand.Rand) uint32 { - return uint32(r.Intn(int(types.DefaultHistoricalEntries + 1))) + return 0 } // getKeyRotationFee returns randomized keyRotationFee between 10000-1000000. @@ -64,7 +64,7 @@ func RandomizedGenState(simState *module.SimulationState) { // NOTE: the slashing module need to be defined after the staking module on the // NewSimulationManager constructor for this to work simState.UnbondTime = unbondTime - params := types.NewParams(simState.UnbondTime, maxVals, 7, histEntries, simState.BondDenom, minCommissionRate, rotationFee) + params := types.NewParams(simState.UnbondTime, maxVals, 7, simState.BondDenom, minCommissionRate, rotationFee) // validators & delegations var ( diff --git a/x/staking/simulation/proposals.go b/x/staking/simulation/proposals.go index 000984b46cdd..a4821883a875 100644 --- a/x/staking/simulation/proposals.go +++ b/x/staking/simulation/proposals.go @@ -39,7 +39,7 @@ func SimulateMsgUpdateParams(r *rand.Rand, _ []simtypes.Account, addressCodec co params := types.DefaultParams() params.BondDenom = simtypes.RandStringOfLength(r, 10) - params.HistoricalEntries = uint32(simtypes.RandIntBetween(r, 0, 1000)) + params.HistoricalEntries = uint32(0) params.MaxEntries = uint32(simtypes.RandIntBetween(r, 1, 1000)) params.MaxValidators = uint32(simtypes.RandIntBetween(r, 1, 1000)) params.UnbondingTime = time.Duration(simtypes.RandTimestamp(r).UnixNano()) diff --git a/x/staking/simulation/proposals_test.go b/x/staking/simulation/proposals_test.go index 64eb447a8559..e3faf605f32b 100644 --- a/x/staking/simulation/proposals_test.go +++ b/x/staking/simulation/proposals_test.go @@ -44,7 +44,7 @@ func TestProposalMsgs(t *testing.T) { assert.Equal(t, addr, msgUpdateParams.Authority) assert.Equal(t, "GqiQWIXnku", msgUpdateParams.Params.BondDenom) assert.Equal(t, uint32(213), msgUpdateParams.Params.MaxEntries) - assert.Equal(t, uint32(300), msgUpdateParams.Params.HistoricalEntries) + assert.Equal(t, uint32(0), msgUpdateParams.Params.HistoricalEntries) assert.Equal(t, uint32(539), msgUpdateParams.Params.MaxValidators) assert.Equal(t, 8898194435*time.Second, msgUpdateParams.Params.UnbondingTime) assert.DeepEqual(t, sdkmath.LegacyNewDecWithPrec(579040435581502128, 18), msgUpdateParams.Params.MinCommissionRate) diff --git a/x/staking/types/errors.go b/x/staking/types/errors.go index c2bf04f4a7da..6b43fa5c25c6 100644 --- a/x/staking/types/errors.go +++ b/x/staking/types/errors.go @@ -39,7 +39,6 @@ var ( ErrDelegatorShareExRateInvalid = errors.Register(ModuleName, 34, "cannot delegate to validators with invalid (zero) ex-rate") ErrBothShareMsgsGiven = errors.Register(ModuleName, 35, "both shares amount and shares percent provided") ErrNeitherShareMsgsGiven = errors.Register(ModuleName, 36, "neither shares amount nor shares percent provided") - ErrInvalidHistoricalInfo = errors.Register(ModuleName, 37, "invalid historical info") ErrEmptyValidatorPubKey = errors.Register(ModuleName, 39, "empty validator public key") ErrCommissionLTMinRate = errors.Register(ModuleName, 40, "commission cannot be less than min rate") ErrUnbondingNotFound = errors.Register(ModuleName, 41, "unbonding operation not found") diff --git a/x/staking/types/params.go b/x/staking/types/params.go index 3db7b75d1ce3..dad7ed7d5942 100644 --- a/x/staking/types/params.go +++ b/x/staking/types/params.go @@ -28,7 +28,8 @@ const ( // DefaultHistorical entries is 10000. Apps that don't use IBC can ignore this // value by not adding the staking module to the application module manager's // SetOrderBeginBlockers. - DefaultHistoricalEntries uint32 = 10000 + // Deprecated: HistoricalEntries is deprecated + DefaultHistoricalEntries uint32 = 0 ) var ( @@ -41,7 +42,7 @@ var ( // NewParams creates a new Params instance func NewParams(unbondingTime time.Duration, - maxValidators, maxEntries, historicalEntries uint32, + maxValidators, maxEntries uint32, bondDenom string, minCommissionRate math.LegacyDec, keyRotationFee sdk.Coin, ) Params { @@ -49,7 +50,7 @@ func NewParams(unbondingTime time.Duration, UnbondingTime: unbondingTime, MaxValidators: maxValidators, MaxEntries: maxEntries, - HistoricalEntries: historicalEntries, + HistoricalEntries: 0, BondDenom: bondDenom, MinCommissionRate: minCommissionRate, KeyRotationFee: keyRotationFee, @@ -62,7 +63,6 @@ func DefaultParams() Params { DefaultUnbondingTime, DefaultMaxValidators, DefaultMaxEntries, - DefaultHistoricalEntries, sdk.DefaultBondDenom, DefaultMinCommissionRate, DefaultKeyRotationFee, From fe47d5843e7f8313ad2c66c2b4ca08e41d58591e Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Wed, 3 Jul 2024 12:32:52 +0200 Subject: [PATCH 07/13] fix some tests --- x/staking/simulation/genesis.go | 2 +- x/staking/simulation/genesis_test.go | 2 +- x/staking/simulation/proposals.go | 2 +- x/staking/simulation/proposals_test.go | 2 +- x/staking/types/params.go | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/x/staking/simulation/genesis.go b/x/staking/simulation/genesis.go index 5aedf6957923..8e3f65e4c632 100644 --- a/x/staking/simulation/genesis.go +++ b/x/staking/simulation/genesis.go @@ -34,7 +34,7 @@ func genMaxValidators(r *rand.Rand) (maxValidators uint32) { // getHistEntries returns randomized HistoricalEntries between 0-100. func getHistEntries(r *rand.Rand) uint32 { - return 0 + return uint32(r.Intn(int(types.DefaultHistoricalEntries + 1))) } // getKeyRotationFee returns randomized keyRotationFee between 10000-1000000. diff --git a/x/staking/simulation/genesis_test.go b/x/staking/simulation/genesis_test.go index c3e399a44ecb..d6350a037b28 100644 --- a/x/staking/simulation/genesis_test.go +++ b/x/staking/simulation/genesis_test.go @@ -51,7 +51,7 @@ func TestRandomizedGenState(t *testing.T) { require.Equal(t, uint32(207), stakingGenesis.Params.MaxValidators) require.Equal(t, uint32(7), stakingGenesis.Params.MaxEntries) - require.Equal(t, uint32(8687), stakingGenesis.Params.HistoricalEntries) + require.Equal(t, uint32(0), stakingGenesis.Params.HistoricalEntries) require.Equal(t, "stake", stakingGenesis.Params.BondDenom) require.Equal(t, float64(238280), stakingGenesis.Params.UnbondingTime.Seconds()) // check numbers of Delegations and Validators diff --git a/x/staking/simulation/proposals.go b/x/staking/simulation/proposals.go index a4821883a875..000984b46cdd 100644 --- a/x/staking/simulation/proposals.go +++ b/x/staking/simulation/proposals.go @@ -39,7 +39,7 @@ func SimulateMsgUpdateParams(r *rand.Rand, _ []simtypes.Account, addressCodec co params := types.DefaultParams() params.BondDenom = simtypes.RandStringOfLength(r, 10) - params.HistoricalEntries = uint32(0) + params.HistoricalEntries = uint32(simtypes.RandIntBetween(r, 0, 1000)) params.MaxEntries = uint32(simtypes.RandIntBetween(r, 1, 1000)) params.MaxValidators = uint32(simtypes.RandIntBetween(r, 1, 1000)) params.UnbondingTime = time.Duration(simtypes.RandTimestamp(r).UnixNano()) diff --git a/x/staking/simulation/proposals_test.go b/x/staking/simulation/proposals_test.go index e3faf605f32b..64eb447a8559 100644 --- a/x/staking/simulation/proposals_test.go +++ b/x/staking/simulation/proposals_test.go @@ -44,7 +44,7 @@ func TestProposalMsgs(t *testing.T) { assert.Equal(t, addr, msgUpdateParams.Authority) assert.Equal(t, "GqiQWIXnku", msgUpdateParams.Params.BondDenom) assert.Equal(t, uint32(213), msgUpdateParams.Params.MaxEntries) - assert.Equal(t, uint32(0), msgUpdateParams.Params.HistoricalEntries) + assert.Equal(t, uint32(300), msgUpdateParams.Params.HistoricalEntries) assert.Equal(t, uint32(539), msgUpdateParams.Params.MaxValidators) assert.Equal(t, 8898194435*time.Second, msgUpdateParams.Params.UnbondingTime) assert.DeepEqual(t, sdkmath.LegacyNewDecWithPrec(579040435581502128, 18), msgUpdateParams.Params.MinCommissionRate) diff --git a/x/staking/types/params.go b/x/staking/types/params.go index dad7ed7d5942..d138c1df9fa7 100644 --- a/x/staking/types/params.go +++ b/x/staking/types/params.go @@ -29,7 +29,7 @@ const ( // value by not adding the staking module to the application module manager's // SetOrderBeginBlockers. // Deprecated: HistoricalEntries is deprecated - DefaultHistoricalEntries uint32 = 0 + DefaultHistoricalEntries uint32 = 10000 ) var ( From 3d4814ead0ef374101474ffcfec084e5ef6b886c Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Wed, 3 Jul 2024 14:15:25 +0200 Subject: [PATCH 08/13] fix some tests --- .../staking/keeper/deterministic_test.go | 41 ---------- .../staking/keeper/grpc_query_test.go | 77 ------------------- 2 files changed, 118 deletions(-) diff --git a/tests/integration/staking/keeper/deterministic_test.go b/tests/integration/staking/keeper/deterministic_test.go index 5b5ff3232b68..84b192484862 100644 --- a/tests/integration/staking/keeper/deterministic_test.go +++ b/tests/integration/staking/keeper/deterministic_test.go @@ -732,47 +732,6 @@ func TestGRPCDelegatorUnbondingDelegations(t *testing.T) { testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.DelegatorUnbondingDelegations, 1302, false) } -func TestGRPCHistoricalInfo(t *testing.T) { - t.Parallel() - f := initDeterministicFixture(t) - - rapid.Check(t, func(rt *rapid.T) { - historical := stakingtypes.HistoricalRecord{} - - height := rapid.Int64Min(0).Draw(rt, "height") - - assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set( - f.ctx, - uint64(height), - historical, - )) - - req := &stakingtypes.QueryHistoricalInfoRequest{ - Height: height, - } - - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.HistoricalInfo, 0, true) - }) - - f = initDeterministicFixture(t) // reset - - historicalInfo := stakingtypes.HistoricalRecord{} - - height := int64(127) - - assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set( - f.ctx, - uint64(height), - historicalInfo, - )) - - req := &stakingtypes.QueryHistoricalInfoRequest{ - Height: height, - } - - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.HistoricalInfo, 1027, false) -} - func TestGRPCDelegatorValidators(t *testing.T) { t.Parallel() f := initDeterministicFixture(t) diff --git a/tests/integration/staking/keeper/grpc_query_test.go b/tests/integration/staking/keeper/grpc_query_test.go index 049fdae6cff2..a7fb3520973a 100644 --- a/tests/integration/staking/keeper/grpc_query_test.go +++ b/tests/integration/staking/keeper/grpc_query_test.go @@ -5,7 +5,6 @@ import ( "fmt" "testing" - cmtproto "github.com/cometbft/cometbft/api/cometbft/types/v1" "gotest.tools/v3/assert" "cosmossdk.io/collections" @@ -20,17 +19,11 @@ import ( func createValidatorAccs(t *testing.T, f *fixture) ([]sdk.AccAddress, []types.Validator) { t.Helper() addrs, _, validators := createValidators(&testing.T{}, f, []int64{9, 8, 7}) - header := cmtproto.Header{ - ChainID: "HelloChain", - Height: 5, - } // sort a copy of the validators, so that original validators does not // have its order changed sortedVals := make([]types.Validator, len(validators)) copy(sortedVals, validators) - hi := types.HistoricalRecord{Time: &header.Time, Apphash: header.AppHash, ValidatorsHash: header.NextValidatorsHash} - assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set(f.sdkCtx, uint64(5), hi)) return addrs, validators } @@ -722,76 +715,6 @@ func TestGRPCQueryPoolParameters(t *testing.T) { assert.DeepEqual(t, params, resp.Params) } -func TestGRPCQueryHistoricalInfo(t *testing.T) { - t.Parallel() - f := initFixture(t) - - ctx := f.sdkCtx - _, _ = createValidatorAccs(t, f) - - qr := f.app.QueryHelper() - queryClient := types.NewQueryClient(qr) - - hi, found := f.stakingKeeper.HistoricalInfo.Get(ctx, uint64(5)) - assert.Assert(t, found) - - var req *types.QueryHistoricalInfoRequest - testCases := []struct { - msg string - malleate func() - expPass bool - expErrMsg string - }{ - { - "empty request", - func() { - req = &types.QueryHistoricalInfoRequest{} - }, - false, - "historical info for height 0 not found", - }, - { - "invalid request with negative height", - func() { - req = &types.QueryHistoricalInfoRequest{Height: -1} - }, - false, - "height cannot be negative", - }, - { - "valid request with old height", - func() { - req = &types.QueryHistoricalInfoRequest{Height: 4} - }, - false, - "historical info for height 4 not found", - }, - { - "valid request with current height", - func() { - req = &types.QueryHistoricalInfoRequest{Height: 5} - }, - true, - "", - }, - } - - for _, tc := range testCases { - t.Run(fmt.Sprintf("Case %s", tc.msg), func(t *testing.T) { - tc.malleate() - res, err := queryClient.HistoricalInfo(gocontext.Background(), req) - if tc.expPass { - assert.NilError(t, err) - assert.Assert(t, res != nil) - assert.DeepEqual(t, &hi, res.HistoricalRecord) - } else { - assert.ErrorContains(t, err, tc.expErrMsg) - assert.Assert(t, res == nil) - } - }) - } -} - func TestGRPCQueryRedelegations(t *testing.T) { t.Parallel() f := initFixture(t) From 2619847cab5086a1649ce76e305b212a007de6d8 Mon Sep 17 00:00:00 2001 From: Facundo Date: Wed, 3 Jul 2024 14:32:38 +0200 Subject: [PATCH 09/13] fix tests --- simapp/sim_test.go | 3 +- .../staking/keeper/deterministic_test.go | 49 ++----------- .../staking/keeper/grpc_query_test.go | 71 +------------------ x/staking/keeper/keeper_test.go | 32 ++++----- 4 files changed, 23 insertions(+), 132 deletions(-) diff --git a/simapp/sim_test.go b/simapp/sim_test.go index 914b899c1af1..7a02d6a46cd6 100644 --- a/simapp/sim_test.go +++ b/simapp/sim_test.go @@ -94,8 +94,7 @@ func TestAppImportExport(t *testing.T) { skipPrefixes := map[string][][]byte{ stakingtypes.StoreKey: { stakingtypes.UnbondingQueueKey, stakingtypes.RedelegationQueueKey, stakingtypes.ValidatorQueueKey, - stakingtypes.HistoricalInfoKey, stakingtypes.UnbondingIDKey, stakingtypes.UnbondingIndexKey, - stakingtypes.UnbondingTypeKey, + stakingtypes.UnbondingIDKey, stakingtypes.UnbondingIndexKey, stakingtypes.UnbondingTypeKey, }, authzkeeper.StoreKey: {authzkeeper.GrantQueuePrefix}, feegrant.StoreKey: {feegrant.FeeAllowanceQueueKeyPrefix}, diff --git a/tests/integration/staking/keeper/deterministic_test.go b/tests/integration/staking/keeper/deterministic_test.go index 5b5ff3232b68..4219174fcd14 100644 --- a/tests/integration/staking/keeper/deterministic_test.go +++ b/tests/integration/staking/keeper/deterministic_test.go @@ -472,7 +472,7 @@ func TestGRPCValidatorDelegations(t *testing.T) { ValidatorAddr: validator.OperatorAddress, } - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.ValidatorDelegations, 14637, false) + testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.ValidatorDelegations, 14610, false) } func TestGRPCValidatorUnbondingDelegations(t *testing.T) { @@ -562,7 +562,7 @@ func TestGRPCDelegation(t *testing.T) { DelegatorAddr: delegator1, } - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.Delegation, 4689, false) + testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.Delegation, 4680, false) } func TestGRPCUnbondingDelegation(t *testing.T) { @@ -645,7 +645,7 @@ func TestGRPCDelegatorDelegations(t *testing.T) { DelegatorAddr: delegator1, } - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.DelegatorDelegations, 4292, false) + testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.DelegatorDelegations, 4283, false) } func TestGRPCDelegatorValidator(t *testing.T) { @@ -732,47 +732,6 @@ func TestGRPCDelegatorUnbondingDelegations(t *testing.T) { testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.DelegatorUnbondingDelegations, 1302, false) } -func TestGRPCHistoricalInfo(t *testing.T) { - t.Parallel() - f := initDeterministicFixture(t) - - rapid.Check(t, func(rt *rapid.T) { - historical := stakingtypes.HistoricalRecord{} - - height := rapid.Int64Min(0).Draw(rt, "height") - - assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set( - f.ctx, - uint64(height), - historical, - )) - - req := &stakingtypes.QueryHistoricalInfoRequest{ - Height: height, - } - - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.HistoricalInfo, 0, true) - }) - - f = initDeterministicFixture(t) // reset - - historicalInfo := stakingtypes.HistoricalRecord{} - - height := int64(127) - - assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set( - f.ctx, - uint64(height), - historicalInfo, - )) - - req := &stakingtypes.QueryHistoricalInfoRequest{ - Height: height, - } - - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.HistoricalInfo, 1027, false) -} - func TestGRPCDelegatorValidators(t *testing.T) { t.Parallel() f := initDeterministicFixture(t) @@ -821,7 +780,7 @@ func TestGRPCPool(t *testing.T) { f = initDeterministicFixture(t) // reset getStaticValidator(t, f) - testdata.DeterministicIterations(t, f.ctx, &stakingtypes.QueryPoolRequest{}, f.queryClient.Pool, 6296, false) + testdata.DeterministicIterations(t, f.ctx, &stakingtypes.QueryPoolRequest{}, f.queryClient.Pool, 6287, false) } func TestGRPCRedelegations(t *testing.T) { diff --git a/tests/integration/staking/keeper/grpc_query_test.go b/tests/integration/staking/keeper/grpc_query_test.go index 049fdae6cff2..bfd1bca62146 100644 --- a/tests/integration/staking/keeper/grpc_query_test.go +++ b/tests/integration/staking/keeper/grpc_query_test.go @@ -5,7 +5,6 @@ import ( "fmt" "testing" - cmtproto "github.com/cometbft/cometbft/api/cometbft/types/v1" "gotest.tools/v3/assert" "cosmossdk.io/collections" @@ -20,17 +19,11 @@ import ( func createValidatorAccs(t *testing.T, f *fixture) ([]sdk.AccAddress, []types.Validator) { t.Helper() addrs, _, validators := createValidators(&testing.T{}, f, []int64{9, 8, 7}) - header := cmtproto.Header{ - ChainID: "HelloChain", - Height: 5, - } // sort a copy of the validators, so that original validators does not // have its order changed sortedVals := make([]types.Validator, len(validators)) copy(sortedVals, validators) - hi := types.HistoricalRecord{Time: &header.Time, Apphash: header.AppHash, ValidatorsHash: header.NextValidatorsHash} - assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set(f.sdkCtx, uint64(5), hi)) return addrs, validators } @@ -725,71 +718,11 @@ func TestGRPCQueryPoolParameters(t *testing.T) { func TestGRPCQueryHistoricalInfo(t *testing.T) { t.Parallel() f := initFixture(t) - - ctx := f.sdkCtx - _, _ = createValidatorAccs(t, f) - qr := f.app.QueryHelper() queryClient := types.NewQueryClient(qr) - hi, found := f.stakingKeeper.HistoricalInfo.Get(ctx, uint64(5)) - assert.Assert(t, found) - - var req *types.QueryHistoricalInfoRequest - testCases := []struct { - msg string - malleate func() - expPass bool - expErrMsg string - }{ - { - "empty request", - func() { - req = &types.QueryHistoricalInfoRequest{} - }, - false, - "historical info for height 0 not found", - }, - { - "invalid request with negative height", - func() { - req = &types.QueryHistoricalInfoRequest{Height: -1} - }, - false, - "height cannot be negative", - }, - { - "valid request with old height", - func() { - req = &types.QueryHistoricalInfoRequest{Height: 4} - }, - false, - "historical info for height 4 not found", - }, - { - "valid request with current height", - func() { - req = &types.QueryHistoricalInfoRequest{Height: 5} - }, - true, - "", - }, - } - - for _, tc := range testCases { - t.Run(fmt.Sprintf("Case %s", tc.msg), func(t *testing.T) { - tc.malleate() - res, err := queryClient.HistoricalInfo(gocontext.Background(), req) - if tc.expPass { - assert.NilError(t, err) - assert.Assert(t, res != nil) - assert.DeepEqual(t, &hi, res.HistoricalRecord) - } else { - assert.ErrorContains(t, err, tc.expErrMsg) - assert.Assert(t, res == nil) - } - }) - } + _, err := queryClient.HistoricalInfo(gocontext.Background(), &types.QueryHistoricalInfoRequest{}) + assert.ErrorContains(t, err, "this endpoint has been deprecated and removed in 0.52") } func TestGRPCQueryRedelegations(t *testing.T) { diff --git a/x/staking/keeper/keeper_test.go b/x/staking/keeper/keeper_test.go index 8a51f9fc0b8a..ab3b29335b65 100644 --- a/x/staking/keeper/keeper_test.go +++ b/x/staking/keeper/keeper_test.go @@ -286,7 +286,7 @@ func (s *KeeperTestSuite) TestLastTotalPowerMigrationToColls() { s.ctx.KVStore(s.key).Set(getLastValidatorPowerKey(valAddrs[i]), bz) }, - "198aa9b8c1d9bc02308b7b2a48944f3e4b05c6b8312cb0bcc73518d1260f682d", + "d9690cb1904ab91c618a3f6d27ef90bfe6fb57a2c01970b7c088ec4ecd0613eb", ) s.Require().NoError(err) @@ -301,7 +301,7 @@ func (s *KeeperTestSuite) TestLastTotalPowerMigrationToColls() { err = s.stakingKeeper.LastValidatorPower.Set(s.ctx, valAddrs[i], intV) s.Require().NoError(err) }, - "198aa9b8c1d9bc02308b7b2a48944f3e4b05c6b8312cb0bcc73518d1260f682d", + "d9690cb1904ab91c618a3f6d27ef90bfe6fb57a2c01970b7c088ec4ecd0613eb", ) s.Require().NoError(err) } @@ -319,7 +319,7 @@ func (s *KeeperTestSuite) TestSrcRedelegationsMigrationToColls() { // legacy method to set in the state s.ctx.KVStore(s.key).Set(getREDByValSrcIndexKey(addrs[i], valAddrs[i], valAddrs[i+1]), []byte{}) }, - "cae99e5c0498356a290f9478b7db73d522840b736878a9d4c00b56d1ddd7fd04", + "43ab9766738a05bfe5f1fd5dd0fb01c05b574f7d43c004dbf228deb437e0eb7c", ) s.Require().NoError(err) @@ -332,7 +332,7 @@ func (s *KeeperTestSuite) TestSrcRedelegationsMigrationToColls() { err := s.stakingKeeper.RedelegationsByValSrc.Set(s.ctx, collections.Join3(valAddrs[i].Bytes(), addrs[i].Bytes(), valAddrs[i+1].Bytes()), []byte{}) s.Require().NoError(err) }, - "cae99e5c0498356a290f9478b7db73d522840b736878a9d4c00b56d1ddd7fd04", + "43ab9766738a05bfe5f1fd5dd0fb01c05b574f7d43c004dbf228deb437e0eb7c", ) s.Require().NoError(err) @@ -351,7 +351,7 @@ func (s *KeeperTestSuite) TestDstRedelegationsMigrationToColls() { // legacy method to set in the state s.ctx.KVStore(s.key).Set(getREDByValDstIndexKey(addrs[i], valAddrs[i], valAddrs[i+1]), []byte{}) }, - "1b7687449a83f8176a60aeced7bcfc69a2b957b9eefad60c69a9fae9acfdaa81", // this hash obtained when ran this test in main branch + "70c00b5171cbef019742d236096df60fc423cd7568c4933ab165baa3c68a64a1", // this hash obtained when ran this test in main branch ) s.Require().NoError(err) @@ -364,7 +364,7 @@ func (s *KeeperTestSuite) TestDstRedelegationsMigrationToColls() { err := s.stakingKeeper.RedelegationsByValDst.Set(s.ctx, collections.Join3(valAddrs[i+1].Bytes(), addrs[i].Bytes(), valAddrs[i].Bytes()), []byte{}) s.Require().NoError(err) }, - "1b7687449a83f8176a60aeced7bcfc69a2b957b9eefad60c69a9fae9acfdaa81", + "70c00b5171cbef019742d236096df60fc423cd7568c4933ab165baa3c68a64a1", ) s.Require().NoError(err) @@ -395,7 +395,7 @@ func (s *KeeperTestSuite) TestUnbondingDelegationsMigrationToColls() { s.ctx.KVStore(s.key).Set(getUBDKey(delAddrs[i], valAddrs[i]), bz) s.ctx.KVStore(s.key).Set(getUBDByValIndexKey(delAddrs[i], valAddrs[i]), []byte{}) }, - "70454ad98368368aaff32d207a7a115fba49133ecf2a225d8e3eca88c6b2324c", + "bae8a1f2070bea541bfeca8e7e4a1203cb316126451325b846b303897e8e7082", ) s.Require().NoError(err) @@ -419,7 +419,7 @@ func (s *KeeperTestSuite) TestUnbondingDelegationsMigrationToColls() { err := s.stakingKeeper.SetUnbondingDelegation(s.ctx, ubd) s.Require().NoError(err) }, - "70454ad98368368aaff32d207a7a115fba49133ecf2a225d8e3eca88c6b2324c", + "bae8a1f2070bea541bfeca8e7e4a1203cb316126451325b846b303897e8e7082", ) s.Require().NoError(err) } @@ -436,7 +436,7 @@ func (s *KeeperTestSuite) TestUBDQueueMigrationToColls() { // legacy Set method s.ctx.KVStore(s.key).Set(getUnbondingDelegationTimeKey(date), []byte{}) }, - "2dd1dd08ea1cc2b0a076c420e3888b218647b9409b435f75e5730b0e4f25e890", + "3f2de3f984c99cce5307db45961237220212c02981654b01b7b52f7a68b5b21b", ) s.Require().NoError(err) @@ -449,7 +449,7 @@ func (s *KeeperTestSuite) TestUBDQueueMigrationToColls() { err := s.stakingKeeper.SetUBDQueueTimeSlice(s.ctx, date, nil) s.Require().NoError(err) }, - "2dd1dd08ea1cc2b0a076c420e3888b218647b9409b435f75e5730b0e4f25e890", + "3f2de3f984c99cce5307db45961237220212c02981654b01b7b52f7a68b5b21b", ) s.Require().NoError(err) } @@ -483,7 +483,7 @@ func (s *KeeperTestSuite) TestValidatorsMigrationToColls() { // legacy Set method s.ctx.KVStore(s.key).Set(getValidatorKey(valAddrs[i]), valBz) }, - "aa495d55fb45df89fcf1d4326331bfc1244ef879764abe76f6ce2a41ccd4180d", + "d8acdcf8b7c8e17f3e83f0a4c293f89ad619a5dcb14d232911ccc5da15653177", ) s.Require().NoError(err) @@ -509,7 +509,7 @@ func (s *KeeperTestSuite) TestValidatorsMigrationToColls() { err := s.stakingKeeper.SetValidator(s.ctx, val) s.Require().NoError(err) }, - "aa495d55fb45df89fcf1d4326331bfc1244ef879764abe76f6ce2a41ccd4180d", + "d8acdcf8b7c8e17f3e83f0a4c293f89ad619a5dcb14d232911ccc5da15653177", ) s.Require().NoError(err) } @@ -532,7 +532,7 @@ func (s *KeeperTestSuite) TestValidatorQueueMigrationToColls() { // legacy Set method s.ctx.KVStore(s.key).Set(getValidatorQueueKey(endTime, endHeight), bz) }, - "b23a5905ced2b76c46ddd0f7d39e2ed7dcc68cd81993c497ee314b2e1a158595", + "a631942cd94450d778706c98afc4f83231524e3e94c88474cdab79a01a4899a0", ) s.Require().NoError(err) @@ -547,7 +547,7 @@ func (s *KeeperTestSuite) TestValidatorQueueMigrationToColls() { err := s.stakingKeeper.SetUnbondingValidatorsQueue(s.ctx, endTime, endHeight, addrs) s.Require().NoError(err) }, - "b23a5905ced2b76c46ddd0f7d39e2ed7dcc68cd81993c497ee314b2e1a158595", + "a631942cd94450d778706c98afc4f83231524e3e94c88474cdab79a01a4899a0", ) s.Require().NoError(err) } @@ -575,7 +575,7 @@ func (s *KeeperTestSuite) TestRedelegationQueueMigrationToColls() { s.Require().NoError(err) s.ctx.KVStore(s.key).Set(getRedelegationTimeKey(date), bz) }, - "d6a1c46c7c5793ff7094b67252c82883aecb75c8359428a59aacd3657fa16235", + "58722ccde0cacda42aa81d71d7da1123b2c4a8e35d961d55f1507c3f10ffbc96", ) s.Require().NoError(err) @@ -597,7 +597,7 @@ func (s *KeeperTestSuite) TestRedelegationQueueMigrationToColls() { err := s.stakingKeeper.SetRedelegationQueueTimeSlice(s.ctx, date, dvvTriplets.Triplets) s.Require().NoError(err) }, - "d6a1c46c7c5793ff7094b67252c82883aecb75c8359428a59aacd3657fa16235", + "58722ccde0cacda42aa81d71d7da1123b2c4a8e35d961d55f1507c3f10ffbc96", ) s.Require().NoError(err) } From 09377ef1a58e4f5d39f8f8391bdd74350779666f Mon Sep 17 00:00:00 2001 From: Facundo Date: Wed, 3 Jul 2024 15:24:20 +0200 Subject: [PATCH 10/13] lint --- tests/integration/staking/keeper/grpc_query_test.go | 2 +- x/staking/keeper/grpc_query.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/staking/keeper/grpc_query_test.go b/tests/integration/staking/keeper/grpc_query_test.go index bfd1bca62146..f728a947bcd9 100644 --- a/tests/integration/staking/keeper/grpc_query_test.go +++ b/tests/integration/staking/keeper/grpc_query_test.go @@ -721,7 +721,7 @@ func TestGRPCQueryHistoricalInfo(t *testing.T) { qr := f.app.QueryHelper() queryClient := types.NewQueryClient(qr) - _, err := queryClient.HistoricalInfo(gocontext.Background(), &types.QueryHistoricalInfoRequest{}) + _, err := queryClient.HistoricalInfo(gocontext.Background(), &types.QueryHistoricalInfoRequest{}) // nolint:staticcheck // SA1019: deprecated endpoint assert.ErrorContains(t, err, "this endpoint has been deprecated and removed in 0.52") } diff --git a/x/staking/keeper/grpc_query.go b/x/staking/keeper/grpc_query.go index 911bde082e4f..11f5cb4d0ca4 100644 --- a/x/staking/keeper/grpc_query.go +++ b/x/staking/keeper/grpc_query.go @@ -404,7 +404,7 @@ func (k Querier) DelegatorUnbondingDelegations(ctx context.Context, req *types.Q } // HistoricalInfo queries the historical info for given height -func (k Querier) HistoricalInfo(ctx context.Context, req *types.QueryHistoricalInfoRequest) (*types.QueryHistoricalInfoResponse, error) { +func (k Querier) HistoricalInfo(ctx context.Context, req *types.QueryHistoricalInfoRequest) (*types.QueryHistoricalInfoResponse, error) { // nolint:staticcheck // SA1019: deprecated endpoint if req == nil { return nil, status.Error(codes.InvalidArgument, "empty request") } From 402eb4deb4b3552656d1ea7660e2ae3bb17ccfed Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Fri, 5 Jul 2024 10:58:25 +0200 Subject: [PATCH 11/13] address comments --- x/staking/keeper/msg_server_test.go | 12 ++++++------ x/staking/simulation/genesis.go | 2 +- x/staking/types/params.go | 6 ------ 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/x/staking/keeper/msg_server_test.go b/x/staking/keeper/msg_server_test.go index d7060abda3e8..d4995bf01319 100644 --- a/x/staking/keeper/msg_server_test.go +++ b/x/staking/keeper/msg_server_test.go @@ -1149,7 +1149,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() { UnbondingTime: types.DefaultUnbondingTime, MaxValidators: types.DefaultMaxValidators, MaxEntries: types.DefaultMaxEntries, - HistoricalEntries: types.DefaultHistoricalEntries, + HistoricalEntries: 0, BondDenom: types.BondStatusBonded, }, }, @@ -1164,7 +1164,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() { UnbondingTime: types.DefaultUnbondingTime, MaxValidators: types.DefaultMaxValidators, MaxEntries: types.DefaultMaxEntries, - HistoricalEntries: types.DefaultHistoricalEntries, + HistoricalEntries: 0, BondDenom: types.BondStatusBonded, }, }, @@ -1179,7 +1179,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() { UnbondingTime: types.DefaultUnbondingTime, MaxValidators: types.DefaultMaxValidators, MaxEntries: types.DefaultMaxEntries, - HistoricalEntries: types.DefaultHistoricalEntries, + HistoricalEntries: 0, BondDenom: "", }, }, @@ -1194,7 +1194,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() { UnbondingTime: types.DefaultUnbondingTime, MaxValidators: 0, MaxEntries: types.DefaultMaxEntries, - HistoricalEntries: types.DefaultHistoricalEntries, + HistoricalEntries: 0, BondDenom: types.BondStatusBonded, }, }, @@ -1209,7 +1209,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() { UnbondingTime: types.DefaultUnbondingTime, MaxValidators: types.DefaultMaxValidators, MaxEntries: 0, - HistoricalEntries: types.DefaultHistoricalEntries, + HistoricalEntries: 0, BondDenom: types.BondStatusBonded, }, }, @@ -1223,7 +1223,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() { UnbondingTime: time.Hour * 24 * 7 * 3 * -1, MaxEntries: types.DefaultMaxEntries, MaxValidators: types.DefaultMaxValidators, - HistoricalEntries: types.DefaultHistoricalEntries, + HistoricalEntries: 0, MinCommissionRate: types.DefaultMinCommissionRate, BondDenom: "denom", }, diff --git a/x/staking/simulation/genesis.go b/x/staking/simulation/genesis.go index 8e3f65e4c632..da5f694941d3 100644 --- a/x/staking/simulation/genesis.go +++ b/x/staking/simulation/genesis.go @@ -34,7 +34,7 @@ func genMaxValidators(r *rand.Rand) (maxValidators uint32) { // getHistEntries returns randomized HistoricalEntries between 0-100. func getHistEntries(r *rand.Rand) uint32 { - return uint32(r.Intn(int(types.DefaultHistoricalEntries + 1))) + return uint32(r.Intn(int(0 + 1))) } // getKeyRotationFee returns randomized keyRotationFee between 10000-1000000. diff --git a/x/staking/types/params.go b/x/staking/types/params.go index d138c1df9fa7..5e27278cda90 100644 --- a/x/staking/types/params.go +++ b/x/staking/types/params.go @@ -24,12 +24,6 @@ const ( // Default maximum entries in a UBD/RED pair DefaultMaxEntries uint32 = 7 - - // DefaultHistorical entries is 10000. Apps that don't use IBC can ignore this - // value by not adding the staking module to the application module manager's - // SetOrderBeginBlockers. - // Deprecated: HistoricalEntries is deprecated - DefaultHistoricalEntries uint32 = 10000 ) var ( From b440320c32173d7c8de5dd1a2921ea40ff865b44 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Fri, 5 Jul 2024 11:09:14 +0200 Subject: [PATCH 12/13] fix simd v2 test --- server/v2/cometbft/go.mod | 1 + server/v2/cometbft/go.sum | 2 -- simapp/v2/simdv2/cmd/commands.go | 3 +-- simapp/v2/simdv2/cmd/testnet.go | 16 ++++++++-------- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/server/v2/cometbft/go.mod b/server/v2/cometbft/go.mod index 66c4cc0ac90f..1da1703eef08 100644 --- a/server/v2/cometbft/go.mod +++ b/server/v2/cometbft/go.mod @@ -17,6 +17,7 @@ replace ( cosmossdk.io/x/bank => ../../../x/bank cosmossdk.io/x/consensus => ../../../x/consensus cosmossdk.io/x/staking => ../../../x/staking + cosmossdk.io/x/tx => ../../../x/tx github.com/cosmos/cosmos-sdk => ../../../ ) diff --git a/server/v2/cometbft/go.sum b/server/v2/cometbft/go.sum index 2e7b3d8343a6..fae3ed7c94a7 100644 --- a/server/v2/cometbft/go.sum +++ b/server/v2/cometbft/go.sum @@ -10,8 +10,6 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= -cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= diff --git a/simapp/v2/simdv2/cmd/commands.go b/simapp/v2/simdv2/cmd/commands.go index 04871ebb2c2e..017f601605bf 100644 --- a/simapp/v2/simdv2/cmd/commands.go +++ b/simapp/v2/simdv2/cmd/commands.go @@ -19,7 +19,6 @@ import ( "cosmossdk.io/simapp/v2" confixcmd "cosmossdk.io/tools/confix/cmd" authcmd "cosmossdk.io/x/auth/client/cli" - banktypes "cosmossdk.io/x/bank/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/debug" @@ -91,7 +90,7 @@ func initRootCmd[AppT serverv2.AppI[T], T transaction.Tx]( genutilcli.InitCmd(moduleManager), debug.Cmd(), confixcmd.ConfigCommand(), - NewTestnetCmd(moduleManager, banktypes.GenesisBalancesIterator{}), + NewTestnetCmd(moduleManager), // pruning.Cmd(newApp), // TODO add to comet server // snapshot.Cmd(newApp), // TODO add to comet server ) diff --git a/simapp/v2/simdv2/cmd/testnet.go b/simapp/v2/simdv2/cmd/testnet.go index 778515d6210a..d02bf0047d02 100644 --- a/simapp/v2/simdv2/cmd/testnet.go +++ b/simapp/v2/simdv2/cmd/testnet.go @@ -32,6 +32,7 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/hd" "github.com/cosmos/cosmos-sdk/crypto/keyring" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" + // srvconfig "github.com/cosmos/cosmos-sdk/server/config" "github.com/cosmos/cosmos-sdk/testutil" sdk "github.com/cosmos/cosmos-sdk/types" @@ -86,7 +87,7 @@ func addTestnetFlagsToCmd(cmd *cobra.Command) { // NewTestnetCmd creates a root testnet command with subcommands to run an in-process testnet or initialize // validator configuration files for running a multi-validator testnet in a separate process -func NewTestnetCmd[T transaction.Tx](mm *runtimev2.MM[T], genBalIterator banktypes.GenesisBalancesIterator) *cobra.Command { +func NewTestnetCmd[T transaction.Tx](mm *runtimev2.MM[T]) *cobra.Command { testnetCmd := &cobra.Command{ Use: "testnet", Short: "subcommands for starting or configuring local testnets", @@ -95,13 +96,13 @@ func NewTestnetCmd[T transaction.Tx](mm *runtimev2.MM[T], genBalIterator banktyp RunE: client.ValidateCmd, } - testnetCmd.AddCommand(testnetInitFilesCmd(mm, genBalIterator)) + testnetCmd.AddCommand(testnetInitFilesCmd(mm)) return testnetCmd } // testnetInitFilesCmd returns a cmd to initialize all files for CometBFT testnet and application -func testnetInitFilesCmd[T transaction.Tx](mm *runtimev2.MM[T], genBalIterator banktypes.GenesisBalancesIterator) *cobra.Command { +func testnetInitFilesCmd[T transaction.Tx](mm *runtimev2.MM[T]) *cobra.Command { cmd := &cobra.Command{ Use: "init-files", Short: "Initialize config directories & files for a multi-validator testnet running locally via separate processes (e.g. Docker Compose or similar)", @@ -142,7 +143,7 @@ Example: return err } - return initTestnetFiles(clientCtx, cmd, config, mm, genBalIterator, args) + return initTestnetFiles(clientCtx, cmd, config, mm, args) }, } @@ -167,7 +168,6 @@ func initTestnetFiles[T transaction.Tx]( cmd *cobra.Command, nodeConfig *cmtconfig.Config, mm *runtimev2.MM[T], - genBalIterator banktypes.GenesisBalancesIterator, args initArgs, ) error { if args.chainID == "" { @@ -353,7 +353,7 @@ func initTestnetFiles[T transaction.Tx]( err := collectGenFiles( clientCtx, nodeConfig, args.chainID, nodeIDs, valPubKeys, args.numValidators, - args.outputDir, args.nodeDirPrefix, args.nodeDaemonHome, genBalIterator, + args.outputDir, args.nodeDirPrefix, args.nodeDaemonHome, rpcPort, p2pPortStart, args.singleMachine, ) if err != nil { @@ -417,7 +417,7 @@ func initGenFiles[T transaction.Tx]( func collectGenFiles( clientCtx client.Context, nodeConfig *cmtconfig.Config, chainID string, nodeIDs []string, valPubKeys []cryptotypes.PubKey, numValidators int, - outputDir, nodeDirPrefix, nodeDaemonHome string, genBalIterator banktypes.GenesisBalancesIterator, + outputDir, nodeDirPrefix, nodeDaemonHome string, rpcPortStart, p2pPortStart int, singleMachine bool, ) error { @@ -446,7 +446,7 @@ func collectGenFiles( return err } - nodeAppState, err := genutil.GenAppStateFromConfig(clientCtx.Codec, clientCtx.TxConfig, nodeConfig, initCfg, appGenesis, genBalIterator, genutiltypes.DefaultMessageValidator, + nodeAppState, err := genutil.GenAppStateFromConfig(clientCtx.Codec, clientCtx.TxConfig, nodeConfig, initCfg, appGenesis, genutiltypes.DefaultMessageValidator, clientCtx.ValidatorAddressCodec, clientCtx.AddressCodec) if err != nil { return err From d0b2b4132bdc6cee85ada9ad7619a2f9bb96f300 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Fri, 5 Jul 2024 11:15:43 +0200 Subject: [PATCH 13/13] linting --- server/v2/cometbft/abci.go | 1 - server/v2/cometbft/commands.go | 2 +- simapp/v2/simdv2/cmd/testnet.go | 2 -- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/server/v2/cometbft/abci.go b/server/v2/cometbft/abci.go index b1a0afeb038c..37698e194181 100644 --- a/server/v2/cometbft/abci.go +++ b/server/v2/cometbft/abci.go @@ -162,7 +162,6 @@ func (c *Consensus[T]) Query(ctx context.Context, req *abciproto.QueryRequest) ( // otherwise it is a KV store query if err == nil { res, err := c.app.Query(ctx, uint64(req.Height), protoMsg) - if err != nil { resp := queryResult(err) resp.Height = req.Height diff --git a/server/v2/cometbft/commands.go b/server/v2/cometbft/commands.go index a27a846c58ae..982eff6ae4c1 100644 --- a/server/v2/cometbft/commands.go +++ b/server/v2/cometbft/commands.go @@ -20,8 +20,8 @@ import ( "cosmossdk.io/server/v2/cometbft/client/rpc" auth "cosmossdk.io/x/auth/client/cli" - "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" diff --git a/simapp/v2/simdv2/cmd/testnet.go b/simapp/v2/simdv2/cmd/testnet.go index d02bf0047d02..61387b42301a 100644 --- a/simapp/v2/simdv2/cmd/testnet.go +++ b/simapp/v2/simdv2/cmd/testnet.go @@ -32,8 +32,6 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/hd" "github.com/cosmos/cosmos-sdk/crypto/keyring" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" - - // srvconfig "github.com/cosmos/cosmos-sdk/server/config" "github.com/cosmos/cosmos-sdk/testutil" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version"