From 20f96db224702706fbfe8d10eeebe8c2955c4aae Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Thu, 4 Jul 2024 21:46:42 +0200 Subject: [PATCH 01/17] feat(schema)!: updates based on postgres testing (#20858) --- schema/enum.go | 31 +++++++++++ schema/field.go | 3 +- schema/fields.go | 8 +-- schema/fields_test.go | 4 +- schema/kind.go | 38 +++++++++---- schema/kind_test.go | 104 ++++++++++++++++++----------------- schema/module_schema.go | 47 +--------------- schema/module_schema_test.go | 33 +++++++++++ schema/object_type.go | 25 ++++++++- schema/object_type_test.go | 41 ++++++++++++++ 10 files changed, 217 insertions(+), 117 deletions(-) diff --git a/schema/enum.go b/schema/enum.go index 0ed710af37f9..6e0be7c61533 100644 --- a/schema/enum.go +++ b/schema/enum.go @@ -5,6 +5,9 @@ import "fmt" // EnumDefinition represents the definition of an enum type. type EnumDefinition struct { // Name is the name of the enum type. It must conform to the NameFormat regular expression. + // Its name must be unique between all enum types and object types in the module. + // The same enum, however, can be used in multiple object types and fields as long as the + // definition is identical each time Name string // Values is a list of distinct, non-empty values that are part of the enum type. @@ -44,3 +47,31 @@ func (e EnumDefinition) ValidateValue(value string) error { } return fmt.Errorf("value %q is not a valid enum value for %s", value, e.Name) } + +// checkEnumCompatibility checks that the enum values are consistent across object types and fields. +func checkEnumCompatibility(enumValueMap map[string]map[string]bool, field Field) error { + if field.Kind != EnumKind { + return nil + } + + enum := field.EnumDefinition + + if existing, ok := enumValueMap[enum.Name]; ok { + if len(existing) != len(enum.Values) { + return fmt.Errorf("enum %q has different number of values in different object types", enum.Name) + } + + for _, value := range enum.Values { + if !existing[value] { + return fmt.Errorf("enum %q has different values in different object types", enum.Name) + } + } + } else { + valueMap := map[string]bool{} + for _, value := range enum.Values { + valueMap[value] = true + } + enumValueMap[enum.Name] = valueMap + } + return nil +} diff --git a/schema/field.go b/schema/field.go index a3b6ea2784cf..57f34b9cfa52 100644 --- a/schema/field.go +++ b/schema/field.go @@ -10,10 +10,11 @@ type Field struct { // Kind is the basic type of the field. Kind Kind - // Nullable indicates whether null values are accepted for the field. + // Nullable indicates whether null values are accepted for the field. Key fields CANNOT be nullable. Nullable bool // AddressPrefix is the address prefix of the field's kind, currently only used for Bech32AddressKind. + // TODO: in a future update, stricter criteria and validation for address prefixes should be added AddressPrefix string // EnumDefinition is the definition of the enum type and is only valid when Kind is EnumKind. diff --git a/schema/fields.go b/schema/fields.go index 1500d40bfa2a..be08ca66ef3d 100644 --- a/schema/fields.go +++ b/schema/fields.go @@ -2,15 +2,15 @@ package schema import "fmt" -// ValidateForKeyFields validates that the value conforms to the set of fields as a Key in an ObjectUpdate. +// ValidateObjectKey validates that the value conforms to the set of fields as a Key in an ObjectUpdate. // See ObjectUpdate.Key for documentation on the requirements of such keys. -func ValidateForKeyFields(keyFields []Field, value interface{}) error { +func ValidateObjectKey(keyFields []Field, value interface{}) error { return validateFieldsValue(keyFields, value) } -// ValidateForValueFields validates that the value conforms to the set of fields as a Value in an ObjectUpdate. +// ValidateObjectValue validates that the value conforms to the set of fields as a Value in an ObjectUpdate. // See ObjectUpdate.Value for documentation on the requirements of such values. -func ValidateForValueFields(valueFields []Field, value interface{}) error { +func ValidateObjectValue(valueFields []Field, value interface{}) error { valueUpdates, ok := value.(ValueUpdates) if !ok { return validateFieldsValue(valueFields, value) diff --git a/schema/fields_test.go b/schema/fields_test.go index aa22e02a1466..befa968657d1 100644 --- a/schema/fields_test.go +++ b/schema/fields_test.go @@ -56,7 +56,7 @@ func TestValidateForKeyFields(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - err := ValidateForKeyFields(tt.keyFields, tt.key) + err := ValidateObjectKey(tt.keyFields, tt.key) if tt.errContains == "" { if err != nil { t.Fatalf("unexpected error: %v", err) @@ -128,7 +128,7 @@ func TestValidateForValueFields(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - err := ValidateForValueFields(tt.valueFields, tt.value) + err := ValidateObjectValue(tt.valueFields, tt.value) if tt.errContains == "" { if err != nil { t.Fatalf("unexpected error: %v", err) diff --git a/schema/kind.go b/schema/kind.go index 91602b0bd2bf..c3fefad52c8a 100644 --- a/schema/kind.go +++ b/schema/kind.go @@ -5,6 +5,7 @@ import ( "fmt" "regexp" "time" + "unicode/utf8" ) // Kind represents the basic type of a field in an object. @@ -16,7 +17,8 @@ const ( // InvalidKind indicates that an invalid type. InvalidKind Kind = iota - // StringKind is a string type and values of this type must be of the go type string. + // StringKind is a string type and values of this type must be of the go type string + // containing valid UTF-8 and cannot contain null characters. StringKind // BytesKind is a bytes type and values of this type must be of the go type []byte. @@ -46,14 +48,14 @@ const ( // Uint64Kind is a uint64 type and values of this type must be of the go type uint64. Uint64Kind - // IntegerKind represents an arbitrary precision integer number. Values of this type must + // IntegerStringKind represents an arbitrary precision integer number. Values of this type must // be of the go type string and formatted as base10 integers, specifically matching to // the IntegerFormat regex. - IntegerKind + IntegerStringKind - // DecimalKind represents an arbitrary precision decimal or integer number. Values of this type + // DecimalStringKind represents an arbitrary precision decimal or integer number. Values of this type // must be of the go type string and match the DecimalFormat regex. - DecimalKind + DecimalStringKind // BoolKind is a boolean type and values of this type must be of the go type bool. BoolKind @@ -134,9 +136,9 @@ func (t Kind) String() string { return "int64" case Uint64Kind: return "uint64" - case DecimalKind: + case DecimalStringKind: return "decimal" - case IntegerKind: + case IntegerStringKind: return "integer" case BoolKind: return "bool" @@ -216,13 +218,13 @@ func (t Kind) ValidateValueType(value interface{}) error { if !ok { return fmt.Errorf("expected uint64, got %T", value) } - case IntegerKind: + case IntegerStringKind: _, ok := value.(string) if !ok { return fmt.Errorf("expected string, got %T", value) } - case DecimalKind: + case DecimalStringKind: _, ok := value.(string) if !ok { return fmt.Errorf("expected string, got %T", value) @@ -283,11 +285,23 @@ func (t Kind) ValidateValue(value interface{}) error { } switch t { - case IntegerKind: + case StringKind: + str := value.(string) + if !utf8.ValidString(str) { + return fmt.Errorf("expected valid utf-8 string, got %s", value) + } + + // check for null characters + for _, r := range str { + if r == 0 { + return fmt.Errorf("expected string without null characters, got %s", value) + } + } + case IntegerStringKind: if !integerRegex.Match([]byte(value.(string))) { return fmt.Errorf("expected base10 integer, got %s", value) } - case DecimalKind: + case DecimalStringKind: if !decimalRegex.Match([]byte(value.(string))) { return fmt.Errorf("expected decimal number, got %s", value) } @@ -307,7 +321,7 @@ var ( ) // KindForGoValue finds the simplest kind that can represent the given go value. It will not, however, -// return kinds such as IntegerKind, DecimalKind, Bech32AddressKind, or EnumKind which all can be +// return kinds such as IntegerStringKind, DecimalStringKind, Bech32AddressKind, or EnumKind which all can be // represented as strings. func KindForGoValue(value interface{}) Kind { switch value.(type) { diff --git a/schema/kind_test.go b/schema/kind_test.go index c287bb61aa78..49799fe4956c 100644 --- a/schema/kind_test.go +++ b/schema/kind_test.go @@ -53,12 +53,12 @@ func TestKind_ValidateValueType(t *testing.T) { {kind: Int64Kind, value: int32(1), valid: false}, {kind: Uint64Kind, value: uint64(1), valid: true}, {kind: Uint64Kind, value: uint32(1), valid: false}, - {kind: IntegerKind, value: "1", valid: true}, - {kind: IntegerKind, value: int32(1), valid: false}, - {kind: DecimalKind, value: "1.0", valid: true}, - {kind: DecimalKind, value: "1", valid: true}, - {kind: DecimalKind, value: "1.1e4", valid: true}, - {kind: DecimalKind, value: int32(1), valid: false}, + {kind: IntegerStringKind, value: "1", valid: true}, + {kind: IntegerStringKind, value: int32(1), valid: false}, + {kind: DecimalStringKind, value: "1.0", valid: true}, + {kind: DecimalStringKind, value: "1", valid: true}, + {kind: DecimalStringKind, value: "1.1e4", valid: true}, + {kind: DecimalStringKind, value: int32(1), valid: false}, {kind: Bech32AddressKind, value: []byte("hello"), valid: true}, {kind: Bech32AddressKind, value: 1, valid: false}, {kind: BoolKind, value: true, valid: true}, @@ -110,55 +110,59 @@ func TestKind_ValidateValue(t *testing.T) { {Int64Kind, int64(1), true}, {Int32Kind, "abc", false}, {BytesKind, nil, false}, + // string must be valid UTF-8 + {StringKind, string([]byte{0xff, 0xfe, 0xfd}), false}, + // strings with null characters are invalid + {StringKind, string([]byte{1, 2, 0, 3}), false}, // check integer, decimal and json more thoroughly - {IntegerKind, "1", true}, - {IntegerKind, "0", true}, - {IntegerKind, "10", true}, - {IntegerKind, "-100", true}, - {IntegerKind, "1.0", false}, - {IntegerKind, "00", true}, // leading zeros are allowed - {IntegerKind, "001", true}, - {IntegerKind, "-01", true}, + {IntegerStringKind, "1", true}, + {IntegerStringKind, "0", true}, + {IntegerStringKind, "10", true}, + {IntegerStringKind, "-100", true}, + {IntegerStringKind, "1.0", false}, + {IntegerStringKind, "00", true}, // leading zeros are allowed + {IntegerStringKind, "001", true}, + {IntegerStringKind, "-01", true}, // 100 digits - {IntegerKind, "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", true}, + {IntegerStringKind, "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", true}, // more than 100 digits - {IntegerKind, "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", false}, - {IntegerKind, "", false}, - {IntegerKind, "abc", false}, - {IntegerKind, "abc100", false}, - {DecimalKind, "1.0", true}, - {DecimalKind, "0.0", true}, - {DecimalKind, "-100.075", true}, - {DecimalKind, "1002346.000", true}, - {DecimalKind, "0", true}, - {DecimalKind, "10", true}, - {DecimalKind, "-100", true}, - {DecimalKind, "1", true}, - {DecimalKind, "1.0e4", true}, - {DecimalKind, "1.0e-4", true}, - {DecimalKind, "1.0e+4", true}, - {DecimalKind, "1.0e", false}, - {DecimalKind, "1.0e4.0", false}, - {DecimalKind, "1.0e-4.0", false}, - {DecimalKind, "1.0e+4.0", false}, - {DecimalKind, "-1.0e-4", true}, - {DecimalKind, "-1.0e+4", true}, - {DecimalKind, "-1.0E4", true}, - {DecimalKind, "1E-9", true}, - {DecimalKind, "1E-99", true}, - {DecimalKind, "1E+9", true}, - {DecimalKind, "1E+99", true}, + {IntegerStringKind, "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", false}, + {IntegerStringKind, "", false}, + {IntegerStringKind, "abc", false}, + {IntegerStringKind, "abc100", false}, + {DecimalStringKind, "1.0", true}, + {DecimalStringKind, "0.0", true}, + {DecimalStringKind, "-100.075", true}, + {DecimalStringKind, "1002346.000", true}, + {DecimalStringKind, "0", true}, + {DecimalStringKind, "10", true}, + {DecimalStringKind, "-100", true}, + {DecimalStringKind, "1", true}, + {DecimalStringKind, "1.0e4", true}, + {DecimalStringKind, "1.0e-4", true}, + {DecimalStringKind, "1.0e+4", true}, + {DecimalStringKind, "1.0e", false}, + {DecimalStringKind, "1.0e4.0", false}, + {DecimalStringKind, "1.0e-4.0", false}, + {DecimalStringKind, "1.0e+4.0", false}, + {DecimalStringKind, "-1.0e-4", true}, + {DecimalStringKind, "-1.0e+4", true}, + {DecimalStringKind, "-1.0E4", true}, + {DecimalStringKind, "1E-9", true}, + {DecimalStringKind, "1E-99", true}, + {DecimalStringKind, "1E+9", true}, + {DecimalStringKind, "1E+99", true}, // 50 digits before and after the decimal point - {DecimalKind, "10000000000000000000000000000000000000000000000000.10000000000000000000000000000000000000000000000001", true}, + {DecimalStringKind, "10000000000000000000000000000000000000000000000000.10000000000000000000000000000000000000000000000001", true}, // too many digits before the decimal point - {DecimalKind, "10000000000000000000000000000000000000000000000000000000000000000000000000", false}, + {DecimalStringKind, "10000000000000000000000000000000000000000000000000000000000000000000000000", false}, // too many digits after the decimal point - {DecimalKind, "1.0000000000000000000000000000000000000000000000000000000000000000000000001", false}, + {DecimalStringKind, "1.0000000000000000000000000000000000000000000000000000000000000000000000001", false}, // exponent too big - {DecimalKind, "1E-999", false}, - {DecimalKind, "", false}, - {DecimalKind, "abc", false}, - {DecimalKind, "abc", false}, + {DecimalStringKind, "1E-999", false}, + {DecimalStringKind, "", false}, + {DecimalStringKind, "abc", false}, + {DecimalStringKind, "abc", false}, {JSONKind, json.RawMessage(`{"a":10}`), true}, {JSONKind, json.RawMessage("10"), true}, {JSONKind, json.RawMessage("10.0"), true}, @@ -200,8 +204,8 @@ func TestKind_String(t *testing.T) { {Uint32Kind, "uint32"}, {Int64Kind, "int64"}, {Uint64Kind, "uint64"}, - {IntegerKind, "integer"}, - {DecimalKind, "decimal"}, + {IntegerStringKind, "integer"}, + {DecimalStringKind, "decimal"}, {BoolKind, "bool"}, {TimeKind, "time"}, {DurationKind, "duration"}, diff --git a/schema/module_schema.go b/schema/module_schema.go index 170288b65023..9412c4456cbe 100644 --- a/schema/module_schema.go +++ b/schema/module_schema.go @@ -10,59 +10,16 @@ type ModuleSchema struct { // Validate validates the module schema. func (s ModuleSchema) Validate() error { - for _, objType := range s.ObjectTypes { - if err := objType.Validate(); err != nil { - return err - } - } - - // validate that shared enum types are consistent across object types enumValueMap := map[string]map[string]bool{} for _, objType := range s.ObjectTypes { - for _, field := range objType.KeyFields { - err := checkEnum(enumValueMap, field) - if err != nil { - return err - } - } - for _, field := range objType.ValueFields { - err := checkEnum(enumValueMap, field) - if err != nil { - return err - } + if err := objType.validate(enumValueMap); err != nil { + return err } } return nil } -func checkEnum(enumValueMap map[string]map[string]bool, field Field) error { - if field.Kind != EnumKind { - return nil - } - - enum := field.EnumDefinition - - if existing, ok := enumValueMap[enum.Name]; ok { - if len(existing) != len(enum.Values) { - return fmt.Errorf("enum %q has different number of values in different object types", enum.Name) - } - - for _, value := range enum.Values { - if !existing[value] { - return fmt.Errorf("enum %q has different values in different object types", enum.Name) - } - } - } else { - valueMap := map[string]bool{} - for _, value := range enum.Values { - valueMap[value] = true - } - enumValueMap[enum.Name] = valueMap - } - return nil -} - // ValidateObjectUpdate validates that the update conforms to the module schema. func (s ModuleSchema) ValidateObjectUpdate(update ObjectUpdate) error { for _, objType := range s.ObjectTypes { diff --git a/schema/module_schema_test.go b/schema/module_schema_test.go index d2b6220a4f2c..d04327811be6 100644 --- a/schema/module_schema_test.go +++ b/schema/module_schema_test.go @@ -110,6 +110,39 @@ func TestModuleSchema_Validate(t *testing.T) { }, errContains: "different values", }, + { + name: "same enum", + moduleSchema: ModuleSchema{ + ObjectTypes: []ObjectType{ + { + Name: "object1", + KeyFields: []Field{ + { + Name: "k", + Kind: EnumKind, + EnumDefinition: EnumDefinition{ + Name: "enum1", + Values: []string{"a", "b"}, + }, + }, + }, + }, + { + Name: "object2", + KeyFields: []Field{ + { + Name: "k", + Kind: EnumKind, + EnumDefinition: EnumDefinition{ + Name: "enum1", + Values: []string{"a", "b"}, + }, + }, + }, + }, + }, + }, + }, } for _, tt := range tests { diff --git a/schema/object_type.go b/schema/object_type.go index f991329eff0a..9560c5d4e35f 100644 --- a/schema/object_type.go +++ b/schema/object_type.go @@ -11,7 +11,7 @@ type ObjectType struct { // KeyFields is a list of fields that make up the primary key of the object. // It can be empty in which case indexers should assume that this object is // a singleton and only has one value. Field names must be unique within the - // object between both key and value fields. + // object between both key and value fields. Key fields CANNOT be nullable. KeyFields []Field // ValueFields is a list of fields that are not part of the primary key of the object. @@ -29,20 +29,35 @@ type ObjectType struct { // Validate validates the object type. func (o ObjectType) Validate() error { + return o.validate(map[string]map[string]bool{}) +} + +// validate validates the object type with an enumValueMap that can be +// shared across a whole module schema. +func (o ObjectType) validate(enumValueMap map[string]map[string]bool) error { if !ValidateName(o.Name) { return fmt.Errorf("invalid object type name %q", o.Name) } fieldNames := map[string]bool{} + for _, field := range o.KeyFields { if err := field.Validate(); err != nil { return fmt.Errorf("invalid key field %q: %w", field.Name, err) } + if field.Nullable { + return fmt.Errorf("key field %q cannot be nullable", field.Name) + } + if fieldNames[field.Name] { return fmt.Errorf("duplicate field name %q", field.Name) } fieldNames[field.Name] = true + + if err := checkEnumCompatibility(enumValueMap, field); err != nil { + return err + } } for _, field := range o.ValueFields { @@ -54,6 +69,10 @@ func (o ObjectType) Validate() error { return fmt.Errorf("duplicate field name %q", field.Name) } fieldNames[field.Name] = true + + if err := checkEnumCompatibility(enumValueMap, field); err != nil { + return err + } } if len(o.KeyFields) == 0 && len(o.ValueFields) == 0 { @@ -69,7 +88,7 @@ func (o ObjectType) ValidateObjectUpdate(update ObjectUpdate) error { return fmt.Errorf("object type name %q does not match update type name %q", o.Name, update.TypeName) } - if err := ValidateForKeyFields(o.KeyFields, update.Key); err != nil { + if err := ValidateObjectKey(o.KeyFields, update.Key); err != nil { return fmt.Errorf("invalid key for object type %q: %w", update.TypeName, err) } @@ -77,5 +96,5 @@ func (o ObjectType) ValidateObjectUpdate(update ObjectUpdate) error { return nil } - return ValidateForValueFields(o.ValueFields, update.Value) + return ValidateObjectValue(o.ValueFields, update.Value) } diff --git a/schema/object_type_test.go b/schema/object_type_test.go index 32e8885bbce2..0a78a371aa96 100644 --- a/schema/object_type_test.go +++ b/schema/object_type_test.go @@ -148,6 +148,47 @@ func TestObjectType_Validate(t *testing.T) { }, errContains: "duplicate field name", }, + { + name: "nullable key field", + objectType: ObjectType{ + Name: "objectNullKey", + KeyFields: []Field{ + { + Name: "field1", + Kind: StringKind, + Nullable: true, + }, + }, + }, + errContains: "key field \"field1\" cannot be nullable", + }, + { + name: "duplicate incompatible enum", + objectType: ObjectType{ + Name: "objectWithEnums", + KeyFields: []Field{ + { + Name: "key", + Kind: EnumKind, + EnumDefinition: EnumDefinition{ + Name: "enum1", + Values: []string{"a", "b"}, + }, + }, + }, + ValueFields: []Field{ + { + Name: "value", + Kind: EnumKind, + EnumDefinition: EnumDefinition{ + Name: "enum1", + Values: []string{"c", "b"}, + }, + }, + }, + }, + errContains: "enum \"enum1\" has different values", + }, } for _, tt := range tests { From e8b0e39f059028286a238ef72610bae742f4e4c8 Mon Sep 17 00:00:00 2001 From: Hwangjae Lee Date: Fri, 5 Jul 2024 17:20:29 +0900 Subject: [PATCH 02/17] docs: Fix typos and grammar in `docs/learn/beginner (#20885) Signed-off-by: Hwangjae Lee --- docs/learn/beginner/01-tx-lifecycle.md | 2 +- docs/learn/beginner/02-query-lifecycle.md | 2 +- docs/learn/beginner/03-accounts.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/learn/beginner/01-tx-lifecycle.md b/docs/learn/beginner/01-tx-lifecycle.md index 100ae7d0003a..4888baa60a61 100644 --- a/docs/learn/beginner/01-tx-lifecycle.md +++ b/docs/learn/beginner/01-tx-lifecycle.md @@ -53,7 +53,7 @@ The command-line is an easy way to interact with an application, but `Tx` can al ## Transaction Broadcasting -This is the next phase, where a transactison is sent from a client (such as a wallet or a command-line interface) to the network of nodes. This process is consensus-agnostic, meaning it can work with various consensus engines. +This is the next phase, where a transaction is sent from a client (such as a wallet or a command-line interface) to the network of nodes. This process is consensus-agnostic, meaning it can work with various consensus engines. Below are the steps involved in transaction broadcasting: diff --git a/docs/learn/beginner/02-query-lifecycle.md b/docs/learn/beginner/02-query-lifecycle.md index 4fbaf7ce45d8..2c3600f7fe30 100644 --- a/docs/learn/beginner/02-query-lifecycle.md +++ b/docs/learn/beginner/02-query-lifecycle.md @@ -47,7 +47,7 @@ One such tool is [grpcurl](https://github.com/fullstorydev/grpcurl), and a gRPC ```bash grpcurl \ - -plaintext # We want results in plain test + -plaintext # We want results in plain text -import-path ./proto \ # Import these .proto files -proto ./proto/cosmos/staking/v1beta1/query.proto \ # Look into this .proto file for the Query protobuf service -d '{"address":"$MY_DELEGATOR"}' \ # Query arguments diff --git a/docs/learn/beginner/03-accounts.md b/docs/learn/beginner/03-accounts.md index eb8ff47d4fa3..b9f7eefa6016 100644 --- a/docs/learn/beginner/03-accounts.md +++ b/docs/learn/beginner/03-accounts.md @@ -135,7 +135,7 @@ A few notes on the `Keyring` methods: https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/proto/cosmos/tx/v1beta1/tx.proto#L50-L66 ``` -* `NewAccount(uid, mnemonic, bip39Passphrase, hdPath string, algo SignatureAlgo) (*Record, error)` creates a new account based on the [`bip44 path`](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) and persists it on disk. The `PrivKey` is **never stored unencrypted**, instead it is [encrypted with a passphrase](https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/crypto/armor.go) before being persisted. In the context of this method, the key type and sequence number refer to the segment of the BIP44 derivation path (for example, `0`, `1`, `2`, ...) that is used to derive a private and a public key from the mnemonic. Using the same mnemonic and derivation path, the same `PrivKey`, `PubKey` and `Address` is generated. The following keys are supported by the keyring: +* `NewAccount(uid, mnemonic, bip39Passphrase, hdPath string, algo SignatureAlgo) (*Record, error)` creates a new account based on the [`bip44 path`](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) and persists it on disk. The `PrivKey` is **never stored unencrypted**, instead it is [encrypted with a passphrase](https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/crypto/armor.go) before being persisted. In the context of this method, the key type and sequence number refers to the segment of the BIP44 derivation path (for example, `0`, `1`, `2`, ...) that is used to derive a private and a public key from the mnemonic. Using the same mnemonic and derivation path, the same `PrivKey`, `PubKey` and `Address` is generated. The following keys are supported by the keyring: * `secp256k1` * `ed25519` From 434b12383be880f8a1f1e090fc3b41bbea6c32cd Mon Sep 17 00:00:00 2001 From: Hwangjae Lee Date: Fri, 5 Jul 2024 17:22:23 +0900 Subject: [PATCH 03/17] docs: Fix typos and improve consistency in context in `docs/learn/advanced` (#20886) Signed-off-by: Hwangjae Lee --- docs/learn/advanced/02-context.md | 6 +++--- docs/learn/advanced/03-node.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/learn/advanced/02-context.md b/docs/learn/advanced/02-context.md index 73315e3de858..33d530b52988 100644 --- a/docs/learn/advanced/02-context.md +++ b/docs/learn/advanced/02-context.md @@ -39,7 +39,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/context.go#L41-L `Events` by defining various `Types` and `Attributes` or use the common definitions found in `types/`. Clients can subscribe or query for these `Events`. These `Events` are collected throughout `FinalizeBlock` and are returned to CometBFT for indexing. * **Priority:** The transaction priority, only relevant in `CheckTx`. * **KV `GasConfig`:** Enables applications to set a custom `GasConfig` for the `KVStore`. -* **Transient KV `GasConfig`:** Enables applications to set a custom `GasConfig` for the transiant `KVStore`. +* **Transient KV `GasConfig`:** Enables applications to set a custom `GasConfig` for the transient `KVStore`. * **StreamingManager:** The streamingManager field provides access to the streaming manager, which allows modules to subscribe to state changes emitted by the blockchain. The streaming manager is used by the state listening API, which is described in [ADR 038](https://docs.cosmos.network/main/architecture/adr-038-state-listening). * **CometInfo:** A lightweight field that contains information about the current block, such as the block height, time, and hash. This information can be used for validating evidence, providing historical data, and enhancing the user experience. For further details see [here](https://github.com/cosmos/cosmos-sdk/blob/main/core/comet/service.go#L14). * **HeaderInfo:** The `headerInfo` field contains information about the current block header, such as the chain ID, gas limit, and timestamp. For further details see [here](https://github.com/cosmos/cosmos-sdk/blob/main/core/header/service.go#L14). @@ -54,7 +54,7 @@ Contexts are intended to be **immutable**; they should never be edited. Instead, to create a child context from its parent using a `With` function. For example: ```go -childCtx = parentCtx.WithBlockHeader(header) +childCtx := parentCtx.WithBlockHeader(header) ``` The [Golang Context Package](https://pkg.go.dev/context) documentation instructs developers to @@ -71,7 +71,7 @@ goes wrong. The pattern of usage for a Context is as follows: 1. A process receives a Context `ctx` from its parent process, which provides information needed to perform the process. -2. The `ctx.ms` is a **branched store**, i.e. a branch of the [multistore](./04-store.md#multistore) is made so that the process can make changes to the state as it executes, without changing the original`ctx.ms`. This is useful to protect the underlying multistore in case the changes need to be reverted at some point in the execution. +2. The `ctx.ms` is a **branched store**, i.e. a branch of the [multistore](./04-store.md#multistore) is made so that the process can make changes to the state as it executes, without changing the original `ctx.ms`. This is useful to protect the underlying multistore in case the changes need to be reverted at some point in the execution. 3. The process may read and write from `ctx` as it is executing. It may call a subprocess and pass `ctx` to it as needed. 4. When a subprocess returns, it checks if the result is a success or failure. If a failure, nothing diff --git a/docs/learn/advanced/03-node.md b/docs/learn/advanced/03-node.md index e1330e503644..65dc867939f5 100644 --- a/docs/learn/advanced/03-node.md +++ b/docs/learn/advanced/03-node.md @@ -55,7 +55,7 @@ simd start As a reminder, the full-node is composed of three conceptual layers: the networking layer, the consensus layer and the application layer. The first two are generally bundled together in an entity called the consensus engine (CometBFT by default), while the third is the state-machine defined with the help of the Cosmos SDK. Currently, the Cosmos SDK uses CometBFT as the default consensus engine, meaning the start command is implemented to boot up a CometBFT node. -The flow of the `start` command is pretty straightforward. First, it retrieves the `config` from the `context` in order to open the `db` (a [`leveldb`](https://github.com/syndtr/goleveldb) instance by default). This `db` contains the latest known state of the application (empty if the application is started from the first time. +The flow of the `start` command is pretty straightforward. First, it retrieves the `config` from the `context` in order to open the `db` (a [`levelDB`](https://github.com/syndtr/goleveldb) instance by default). This `db` contains the latest known state of the application (empty if the application is started from the first time). With the `db`, the `start` command creates a new instance of the application using an `appCreator` function: From d79cd5898fee638809d35828997305ccfd6c0ade Mon Sep 17 00:00:00 2001 From: testinginprod <98415576+testinginprod@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:24:42 +0200 Subject: [PATCH 04/17] refactor(genutil): remove genesis bank balance iteration dependency (#20878) --- simapp/simd/cmd/commands.go | 3 +- simapp/simd/cmd/testnet.go | 15 ++++---- simapp/simd/cmd/testnet_test.go | 2 +- testutil/network/util.go | 2 +- x/genutil/client/cli/collect.go | 4 +- x/genutil/client/cli/commands.go | 2 +- x/genutil/collect.go | 58 ++--------------------------- x/genutil/collect_test.go | 27 +------------- x/genutil/types/expected_keepers.go | 2 +- 9 files changed, 19 insertions(+), 96 deletions(-) diff --git a/simapp/simd/cmd/commands.go b/simapp/simd/cmd/commands.go index 84c691a225f5..60c5808f25bb 100644 --- a/simapp/simd/cmd/commands.go +++ b/simapp/simd/cmd/commands.go @@ -13,7 +13,6 @@ import ( "cosmossdk.io/simapp" 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" @@ -40,7 +39,7 @@ func initRootCmd( rootCmd.AddCommand( genutilcli.InitCmd(moduleManager), - NewTestnetCmd(moduleManager, banktypes.GenesisBalancesIterator{}), + NewTestnetCmd(moduleManager), debug.Cmd(), confixcmd.ConfigCommand(), pruning.Cmd(newApp), diff --git a/simapp/simd/cmd/testnet.go b/simapp/simd/cmd/testnet.go index 5609fb1a2f20..822fc5fe453e 100644 --- a/simapp/simd/cmd/testnet.go +++ b/simapp/simd/cmd/testnet.go @@ -103,7 +103,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(mm *module.Manager, genBalIterator banktypes.GenesisBalancesIterator) *cobra.Command { +func NewTestnetCmd(mm *module.Manager) *cobra.Command { testnetCmd := &cobra.Command{ Use: "testnet", Short: "subcommands for starting or configuring local testnets", @@ -113,13 +113,13 @@ func NewTestnetCmd(mm *module.Manager, genBalIterator banktypes.GenesisBalancesI } testnetCmd.AddCommand(testnetStartCmd()) - 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(mm *module.Manager, genBalIterator banktypes.GenesisBalancesIterator) *cobra.Command { +func testnetInitFilesCmd(mm *module.Manager) *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)", @@ -160,7 +160,7 @@ Example: return err } - return initTestnetFiles(clientCtx, cmd, config, mm, genBalIterator, args) + return initTestnetFiles(clientCtx, cmd, config, mm, args) }, } @@ -223,7 +223,6 @@ func initTestnetFiles( cmd *cobra.Command, nodeConfig *cmtconfig.Config, mm *module.Manager, - genBalIterator banktypes.GenesisBalancesIterator, args initArgs, ) error { if args.chainID == "" { @@ -399,7 +398,7 @@ func initTestnetFiles( 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 { @@ -463,7 +462,7 @@ func initGenFiles( 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 { @@ -492,7 +491,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 diff --git a/simapp/simd/cmd/testnet_test.go b/simapp/simd/cmd/testnet_test.go index e76818971b4d..e15a0b5db2b7 100644 --- a/simapp/simd/cmd/testnet_test.go +++ b/simapp/simd/cmd/testnet_test.go @@ -71,7 +71,7 @@ func Test_TestnetCmd(t *testing.T) { ctx = context.WithValue(ctx, corectx.ViperContextKey, viper) ctx = context.WithValue(ctx, corectx.LoggerContextKey, logger) ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) - cmd := testnetInitFilesCmd(moduleManager, banktypes.GenesisBalancesIterator{}) + cmd := testnetInitFilesCmd(moduleManager) cmd.SetArgs([]string{fmt.Sprintf("--%s=test", flags.FlagKeyringBackend), fmt.Sprintf("--output-dir=%s", home)}) err = cmd.ExecuteContext(ctx) require.NoError(t, err) diff --git a/testutil/network/util.go b/testutil/network/util.go index a3662bf6ea67..4d9ebdacb94c 100644 --- a/testutil/network/util.go +++ b/testutil/network/util.go @@ -159,7 +159,7 @@ func collectGenFiles(cfg Config, vals []*Validator, cmtConfigs []*cmtcfg.Config, } appState, err := genutil.GenAppStateFromConfig(cfg.Codec, cfg.TxConfig, - cmtCfg, initCfg, appGenesis, banktypes.GenesisBalancesIterator{}, genutiltypes.DefaultMessageValidator, + cmtCfg, initCfg, appGenesis, genutiltypes.DefaultMessageValidator, cfg.ValidatorAddressCodec, cfg.AddressCodec) if err != nil { return err diff --git a/x/genutil/client/cli/collect.go b/x/genutil/client/cli/collect.go index 96b65f147e7d..ff3da30d5bdb 100644 --- a/x/genutil/client/cli/collect.go +++ b/x/genutil/client/cli/collect.go @@ -16,7 +16,7 @@ import ( const flagGenTxDir = "gentx-dir" // CollectGenTxsCmd - return the cobra command to collect genesis transactions -func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator, validator types.MessageValidator) *cobra.Command { +func CollectGenTxsCmd(validator types.MessageValidator) *cobra.Command { cmd := &cobra.Command{ Use: "collect-gentxs", Short: "Collect genesis txs and output a genesis.json file", @@ -50,7 +50,7 @@ func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator, validator ty toPrint := newPrintInfo(config.Moniker, appGenesis.ChainID, nodeID, genTxsDir, json.RawMessage("")) initCfg := types.NewInitConfig(appGenesis.ChainID, genTxsDir, nodeID, valPubKey) - appMessage, err := genutil.GenAppStateFromConfig(cdc, clientCtx.TxConfig, config, initCfg, appGenesis, genBalIterator, validator, clientCtx.ValidatorAddressCodec, clientCtx.AddressCodec) + appMessage, err := genutil.GenAppStateFromConfig(cdc, clientCtx.TxConfig, config, initCfg, appGenesis, validator, clientCtx.ValidatorAddressCodec, clientCtx.AddressCodec) if err != nil { return errors.Wrap(err, "failed to get genesis app state from config") } diff --git a/x/genutil/client/cli/commands.go b/x/genutil/client/cli/commands.go index 24db1782cb0d..6e0c50ee608c 100644 --- a/x/genutil/client/cli/commands.go +++ b/x/genutil/client/cli/commands.go @@ -38,7 +38,7 @@ func CommandsWithCustomMigrationMap(txConfig client.TxConfig, genutilModule genu cmd.AddCommand( GenTxCmd(genMM, txConfig, banktypes.GenesisBalancesIterator{}, txConfig.SigningContext().ValidatorAddressCodec()), MigrateGenesisCmd(migrationMap), - CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, genutilModule.GenTxValidator()), + CollectGenTxsCmd(genutilModule.GenTxValidator()), ValidateGenesisCmd(genMM), AddGenesisAccountCmd(txConfig.SigningContext().AddressCodec()), ExportCmd(appExport), diff --git a/x/genutil/collect.go b/x/genutil/collect.go index 9881ade81f57..d070f92c62f6 100644 --- a/x/genutil/collect.go +++ b/x/genutil/collect.go @@ -6,14 +6,12 @@ import ( "fmt" "os" "path/filepath" - "runtime" "sort" "strings" cfg "github.com/cometbft/cometbft/config" "cosmossdk.io/core/address" - bankexported "cosmossdk.io/x/bank/exported" stakingtypes "cosmossdk.io/x/staking/types" "github.com/cosmos/cosmos-sdk/client" @@ -24,12 +22,12 @@ import ( // GenAppStateFromConfig gets the genesis app state from the config func GenAppStateFromConfig(cdc codec.JSONCodec, txEncodingConfig client.TxEncodingConfig, - config *cfg.Config, initCfg types.InitConfig, genesis *types.AppGenesis, genBalIterator types.GenesisBalancesIterator, + config *cfg.Config, initCfg types.InitConfig, genesis *types.AppGenesis, validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, addressCodec address.Codec, ) (appState json.RawMessage, err error) { // process genesis transactions, else create default genesis.json appGenTxs, persistentPeers, err := CollectTxs( - cdc, txEncodingConfig.TxJSONDecoder(), config.Moniker, initCfg.GenTxsDir, genesis, genBalIterator, validator, valAddrCodec, addressCodec) + txEncodingConfig.TxJSONDecoder(), config.Moniker, initCfg.GenTxsDir, genesis, validator, valAddrCodec, addressCodec) if err != nil { return appState, err } @@ -66,8 +64,8 @@ func GenAppStateFromConfig(cdc codec.JSONCodec, txEncodingConfig client.TxEncodi // CollectTxs processes and validates application's genesis Txs and returns // the list of appGenTxs, and persistent peers required to generate genesis.json. -func CollectTxs(cdc codec.JSONCodec, txJSONDecoder sdk.TxDecoder, moniker, genTxsDir string, - genesis *types.AppGenesis, genBalIterator types.GenesisBalancesIterator, +func CollectTxs(txJSONDecoder sdk.TxDecoder, moniker, genTxsDir string, + genesis *types.AppGenesis, validator types.MessageValidator, valAddrCodec address.ValidatorAddressCodec, addressCodec address.Codec, ) (appGenTxs []sdk.Tx, persistentPeers string, err error) { // prepare a map of all balances in genesis state to then validate @@ -82,17 +80,6 @@ func CollectTxs(cdc codec.JSONCodec, txJSONDecoder sdk.TxDecoder, moniker, genTx return appGenTxs, persistentPeers, err } - balancesMap := make(map[string]bankexported.GenesisBalance) - - genBalIterator.IterateGenesisBalances( - cdc, appState, - func(balance bankexported.GenesisBalance) (stop bool) { - addr := balance.GetAddress() - balancesMap[addr] = balance - return false - }, - ) - // addresses and IPs (and port) validator server info var addressesIPs []string @@ -136,43 +123,6 @@ func CollectTxs(cdc codec.JSONCodec, txJSONDecoder sdk.TxDecoder, moniker, genTx // TODO abstract out staking message validation back to staking msg := msgs[0].(*stakingtypes.MsgCreateValidator) - // validate validator addresses and funds against the accounts in the state - valAddr, err := valAddrCodec.StringToBytes(msg.ValidatorAddress) - if err != nil { - return appGenTxs, persistentPeers, err - } - - valAccAddr, err := addressCodec.BytesToString(valAddr) - if err != nil { - return appGenTxs, persistentPeers, err - } - - delBal, delOk := balancesMap[valAccAddr] - if !delOk { - _, file, no, ok := runtime.Caller(1) - if ok { - fmt.Printf("CollectTxs-1, called from %s#%d\n", file, no) - } - - return appGenTxs, persistentPeers, fmt.Errorf("account %s balance not in genesis state: %+v", valAccAddr, balancesMap) - } - - _, valOk := balancesMap[valAccAddr] - if !valOk { - _, file, no, ok := runtime.Caller(1) - if ok { - fmt.Printf("CollectTxs-2, called from %s#%d - %s\n", file, no, valAccAddr) - } - return appGenTxs, persistentPeers, fmt.Errorf("account %s balance not in genesis state: %+v", valAddr, balancesMap) - } - - if delBal.GetCoins().AmountOf(msg.Value.Denom).LT(msg.Value.Amount) { - return appGenTxs, persistentPeers, fmt.Errorf( - "insufficient fund for delegation %v: %v < %v", - delBal.GetAddress(), delBal.GetCoins().AmountOf(msg.Value.Denom), msg.Value.Amount, - ) - } - // exclude itself from persistent peers if msg.Description.Moniker != moniker { addressesIPs = append(addressesIPs, nodeAddrIP) diff --git a/x/genutil/collect_test.go b/x/genutil/collect_test.go index 15215076fd4c..4971f00a4c0f 100644 --- a/x/genutil/collect_test.go +++ b/x/genutil/collect_test.go @@ -1,38 +1,16 @@ package genutil_test import ( - "encoding/json" "os" "path/filepath" "testing" - "github.com/cosmos/gogoproto/proto" - - bankexported "cosmossdk.io/x/bank/exported" - - "github.com/cosmos/cosmos-sdk/codec" addresscodec "github.com/cosmos/cosmos-sdk/codec/address" - cdctypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/genutil" "github.com/cosmos/cosmos-sdk/x/genutil/types" ) -type doNothingUnmarshalJSON struct { - codec.JSONCodec -} - -func (dnj *doNothingUnmarshalJSON) UnmarshalJSON(_ []byte, _ proto.Message) error { - return nil -} - -type doNothingIterator struct { - types.GenesisBalancesIterator -} - -func (dni *doNothingIterator) IterateGenesisBalances(_ codec.JSONCodec, _ map[string]json.RawMessage, _ func(bankexported.GenesisBalance) bool) { -} - // Ensures that CollectTx correctly traverses directories and won't error out on encountering // a directory during traversal of the first level. See issue https://github.com/cosmos/cosmos-sdk/issues/6788. func TestCollectTxsHandlesDirectories(t *testing.T) { @@ -53,12 +31,9 @@ func TestCollectTxsHandlesDirectories(t *testing.T) { }) // 2. Ensure that we don't encounter any error traversing the directory. - cdc := codec.NewProtoCodec(cdctypes.NewInterfaceRegistry()) genesis := &types.AppGenesis{AppState: []byte("{}")} - balItr := new(doNothingIterator) - dnc := &doNothingUnmarshalJSON{cdc} - if _, _, err := genutil.CollectTxs(dnc, txDecoder, "foo", testDir, genesis, balItr, types.DefaultMessageValidator, + if _, _, err := genutil.CollectTxs(txDecoder, "foo", testDir, genesis, types.DefaultMessageValidator, addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")); err != nil { t.Fatal(err) } diff --git a/x/genutil/types/expected_keepers.go b/x/genutil/types/expected_keepers.go index d144e0e40323..93869bbac918 100644 --- a/x/genutil/types/expected_keepers.go +++ b/x/genutil/types/expected_keepers.go @@ -31,7 +31,7 @@ type GenesisAccountsIterator interface { ) } -// GenesisAccountsIterator defines the expected iterating genesis accounts object (noalias) +// GenesisBalancesIterator defines the expected iterating genesis balances object (noalias) type GenesisBalancesIterator interface { IterateGenesisBalances( cdc codec.JSONCodec, From 476edaa90b156fea22029ecbfb2df36edf76939a Mon Sep 17 00:00:00 2001 From: Hieu Vu <72878483+hieuvubk@users.noreply.github.com> Date: Fri, 5 Jul 2024 15:25:54 +0700 Subject: [PATCH 05/17] feat(simapp/v2): Testnet init command (#20866) --- scripts/local-testnet.sh | 17 ++ server/v2/util.go | 58 ++++ simapp/v2/go.mod | 6 +- simapp/v2/simdv2/cmd/commands.go | 2 + simapp/v2/simdv2/cmd/testnet.go | 507 +++++++++++++++++++++++++++++++ 5 files changed, 587 insertions(+), 3 deletions(-) create mode 100644 scripts/local-testnet.sh create mode 100644 simapp/v2/simdv2/cmd/testnet.go diff --git a/scripts/local-testnet.sh b/scripts/local-testnet.sh new file mode 100644 index 000000000000..c73710dbab1e --- /dev/null +++ b/scripts/local-testnet.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -o errexit +set -o nounset +set -x + +ROOT=$PWD + +SIMD="$ROOT/build/simdv2" + +COSMOS_BUILD_OPTIONS=v2 make build + +$SIMD testnet init-files --chain-id=testing --output-dir="$HOME/.testnet" --validator-count=3 --keyring-backend=test --minimum-gas-prices=0.000001stake --commit-timeout=900ms --single-host + +$SIMD start --log_level=info --home "$HOME/.testnet/node0/simdv2" & +$SIMD start --log_level=info --home "$HOME/.testnet/node1/simdv2" & +$SIMD start --log_level=info --home "$HOME/.testnet/node2/simdv2" \ No newline at end of file diff --git a/server/v2/util.go b/server/v2/util.go index ca63ff254c43..dfec4cd5f18d 100644 --- a/server/v2/util.go +++ b/server/v2/util.go @@ -2,7 +2,9 @@ package serverv2 import ( "context" + "errors" "fmt" + "net" "github.com/spf13/cobra" "github.com/spf13/viper" @@ -47,3 +49,59 @@ func GetLoggerFromCmd(cmd *cobra.Command) corelog.Logger { return logger } + +// ExternalIP https://stackoverflow.com/questions/23558425/how-do-i-get-the-local-ip-address-in-go +// TODO there must be a better way to get external IP +func ExternalIP() (string, error) { + ifaces, err := net.Interfaces() + if err != nil { + return "", err + } + + for _, iface := range ifaces { + if skipInterface(iface) { + continue + } + addrs, err := iface.Addrs() + if err != nil { + return "", err + } + + for _, addr := range addrs { + ip := addrToIP(addr) + if ip == nil || ip.IsLoopback() { + continue + } + ip = ip.To4() + if ip == nil { + continue // not an ipv4 address + } + return ip.String(), nil + } + } + return "", errors.New("are you connected to the network?") +} + +func skipInterface(iface net.Interface) bool { + if iface.Flags&net.FlagUp == 0 { + return true // interface down + } + + if iface.Flags&net.FlagLoopback != 0 { + return true // loopback interface + } + + return false +} + +func addrToIP(addr net.Addr) net.IP { + var ip net.IP + + switch v := addr.(type) { + case *net.IPNet: + ip = v.IP + case *net.IPAddr: + ip = v.IP + } + return ip +} diff --git a/simapp/v2/go.mod b/simapp/v2/go.mod index ae91861c0df1..40b1b7da31b5 100644 --- a/simapp/v2/go.mod +++ b/simapp/v2/go.mod @@ -8,7 +8,7 @@ require ( cosmossdk.io/core v0.12.1-0.20231114100755-569e3ff6a0d7 cosmossdk.io/depinject v1.0.0-alpha.4 cosmossdk.io/log v1.3.1 - cosmossdk.io/math v1.3.0 // indirect + cosmossdk.io/math v1.3.0 cosmossdk.io/runtime/v2 v2.0.0-00010101000000-000000000000 cosmossdk.io/server/v2 v2.0.0-00010101000000-000000000000 cosmossdk.io/server/v2/cometbft v0.0.0-00010101000000-000000000000 @@ -31,7 +31,7 @@ require ( cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 cosmossdk.io/x/tx v0.13.3 // indirect cosmossdk.io/x/upgrade v0.0.0-20230613133644-0a778132a60f - github.com/cometbft/cometbft v1.0.0-rc1 // indirect + github.com/cometbft/cometbft v1.0.0-rc1 github.com/cosmos/cosmos-db v1.0.2 // this version is not used as it is always replaced by the latest Cosmos SDK version github.com/cosmos/cosmos-sdk v0.51.0 @@ -39,7 +39,7 @@ require ( github.com/golang/mock v1.6.0 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/spf13/cobra v1.8.1 - github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.9.0 golang.org/x/sync v0.7.0 // indirect diff --git a/simapp/v2/simdv2/cmd/commands.go b/simapp/v2/simdv2/cmd/commands.go index 4ac920d4a65e..04871ebb2c2e 100644 --- a/simapp/v2/simdv2/cmd/commands.go +++ b/simapp/v2/simdv2/cmd/commands.go @@ -19,6 +19,7 @@ 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" @@ -90,6 +91,7 @@ func initRootCmd[AppT serverv2.AppI[T], T transaction.Tx]( genutilcli.InitCmd(moduleManager), debug.Cmd(), confixcmd.ConfigCommand(), + NewTestnetCmd(moduleManager, banktypes.GenesisBalancesIterator{}), // 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 new file mode 100644 index 000000000000..778515d6210a --- /dev/null +++ b/simapp/v2/simdv2/cmd/testnet.go @@ -0,0 +1,507 @@ +package cmd + +import ( + "bufio" + "encoding/json" + "fmt" + "net" + "os" + "path/filepath" + "time" + + cmtconfig "github.com/cometbft/cometbft/config" + cmttime "github.com/cometbft/cometbft/types/time" + "github.com/spf13/cobra" + "github.com/spf13/pflag" + + "cosmossdk.io/core/log" + "cosmossdk.io/core/transaction" + "cosmossdk.io/math" + "cosmossdk.io/math/unsafe" + runtimev2 "cosmossdk.io/runtime/v2" + serverv2 "cosmossdk.io/server/v2" + "cosmossdk.io/server/v2/api/grpc" + "cosmossdk.io/server/v2/cometbft" + authtypes "cosmossdk.io/x/auth/types" + banktypes "cosmossdk.io/x/bank/types" + stakingtypes "cosmossdk.io/x/staking/types" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/tx" + "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" + "github.com/cosmos/cosmos-sdk/x/genutil" + genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" +) + +var ( + flagNodeDirPrefix = "node-dir-prefix" + flagNumValidators = "validator-count" + flagOutputDir = "output-dir" + flagNodeDaemonHome = "node-daemon-home" + flagStartingIPAddress = "starting-ip-address" + flagListenIPAddress = "listen-ip-address" + flagStakingDenom = "staking-denom" + flagCommitTimeout = "commit-timeout" + flagSingleHost = "single-host" +) + +type initArgs struct { + algo string + chainID string + keyringBackend string + minGasPrices string + nodeDaemonHome string + nodeDirPrefix string + numValidators int + outputDir string + startingIPAddress string + listenIPAddress string + singleMachine bool + bondTokenDenom string +} + +func addTestnetFlagsToCmd(cmd *cobra.Command) { + cmd.Flags().IntP(flagNumValidators, "n", 4, "Number of validators to initialize the testnet with") + cmd.Flags().StringP(flagOutputDir, "o", "./.testnets", "Directory to store initialization data for the testnet") + cmd.Flags().String(flags.FlagChainID, "", "genesis file chain-id, if left blank will be randomly created") + cmd.Flags().String(cometbft.FlagMinGasPrices, fmt.Sprintf("0.000006%s", sdk.DefaultBondDenom), "Minimum gas prices to accept for transactions; All fees in a tx must meet this minimum (e.g. 0.01photino,0.001stake)") + cmd.Flags().String(flags.FlagKeyType, string(hd.Secp256k1Type), "Key signing algorithm to generate keys for") + + // support old flags name for backwards compatibility + cmd.Flags().SetNormalizeFunc(func(f *pflag.FlagSet, name string) pflag.NormalizedName { + if name == flags.FlagKeyAlgorithm { + name = flags.FlagKeyType + } + + return pflag.NormalizedName(name) + }) +} + +// 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 { + testnetCmd := &cobra.Command{ + Use: "testnet", + Short: "subcommands for starting or configuring local testnets", + DisableFlagParsing: true, + SuggestionsMinimumDistance: 2, + RunE: client.ValidateCmd, + } + + testnetCmd.AddCommand(testnetInitFilesCmd(mm, genBalIterator)) + + 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 { + 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)", + Long: fmt.Sprintf(`init-files will setup one directory per validator and populate each with +necessary files (private validator, genesis, config, etc.) for running validator nodes. + +Booting up a network with these validator folders is intended to be used with Docker Compose, +or a similar setup where each node has a manually configurable IP address. + +Note, strict routability for addresses is turned off in the config file. + +Example: + %s testnet init-files --validator-count 4 --output-dir ./.testnets --starting-ip-address 192.168.10.2 + `, version.AppName), + RunE: func(cmd *cobra.Command, _ []string) error { + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + + config := client.GetConfigFromCmd(cmd) + + args := initArgs{} + args.outputDir, _ = cmd.Flags().GetString(flagOutputDir) + args.keyringBackend, _ = cmd.Flags().GetString(flags.FlagKeyringBackend) + args.chainID, _ = cmd.Flags().GetString(flags.FlagChainID) + args.minGasPrices, _ = cmd.Flags().GetString(cometbft.FlagMinGasPrices) + args.nodeDirPrefix, _ = cmd.Flags().GetString(flagNodeDirPrefix) + args.nodeDaemonHome, _ = cmd.Flags().GetString(flagNodeDaemonHome) + args.startingIPAddress, _ = cmd.Flags().GetString(flagStartingIPAddress) + args.listenIPAddress, _ = cmd.Flags().GetString(flagListenIPAddress) + args.numValidators, _ = cmd.Flags().GetInt(flagNumValidators) + args.algo, _ = cmd.Flags().GetString(flags.FlagKeyType) + args.bondTokenDenom, _ = cmd.Flags().GetString(flagStakingDenom) + args.singleMachine, _ = cmd.Flags().GetBool(flagSingleHost) + config.Consensus.TimeoutCommit, err = cmd.Flags().GetDuration(flagCommitTimeout) + if err != nil { + return err + } + + return initTestnetFiles(clientCtx, cmd, config, mm, genBalIterator, args) + }, + } + + addTestnetFlagsToCmd(cmd) + cmd.Flags().String(flagNodeDirPrefix, "node", "Prefix for the name of per-validator subdirectories (to be number-suffixed like node0, node1, ...)") + cmd.Flags().String(flagNodeDaemonHome, "simdv2", "Home directory of the node's daemon configuration") + cmd.Flags().String(flagStartingIPAddress, "192.168.0.1", "Starting IP address (192.168.0.1 results in persistent peers list ID0@192.168.0.1:46656, ID1@192.168.0.2:46656, ...)") + cmd.Flags().String(flagListenIPAddress, "127.0.0.1", "TCP or UNIX socket IP address for the RPC server to listen on") + cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|test)") + cmd.Flags().Duration(flagCommitTimeout, 5*time.Second, "Time to wait after a block commit before starting on the new height") + cmd.Flags().Bool(flagSingleHost, false, "Cluster runs on a single host machine with different ports") + cmd.Flags().String(flagStakingDenom, sdk.DefaultBondDenom, "Default staking token denominator") + + return cmd +} + +const nodeDirPerm = 0o755 + +// initTestnetFiles initializes testnet files for a testnet to be run in a separate process +func initTestnetFiles[T transaction.Tx]( + clientCtx client.Context, + cmd *cobra.Command, + nodeConfig *cmtconfig.Config, + mm *runtimev2.MM[T], + genBalIterator banktypes.GenesisBalancesIterator, + args initArgs, +) error { + if args.chainID == "" { + args.chainID = "chain-" + unsafe.Str(6) + } + nodeIDs := make([]string, args.numValidators) + valPubKeys := make([]cryptotypes.PubKey, args.numValidators) + + // appConfig := srvconfig.DefaultConfig() + // appConfig.MinGasPrices = args.minGasPrices + // appConfig.API.Enable = true + // appConfig.Telemetry.Enabled = true + // appConfig.Telemetry.PrometheusRetentionTime = 60 + // appConfig.Telemetry.EnableHostnameLabel = false + // appConfig.Telemetry.GlobalLabels = [][]string{{"chain_id", args.chainID}} + + var ( + genAccounts []authtypes.GenesisAccount + genBalances []banktypes.Balance + genFiles []string + ) + const ( + rpcPort = 26657 + apiPort = 1317 + grpcPort = 9090 + ) + p2pPortStart := 26656 + + inBuf := bufio.NewReader(cmd.InOrStdin()) + // generate private keys, node IDs, and initial transactions + for i := 0; i < args.numValidators; i++ { + var portOffset int + var grpcConfig *grpc.Config + if args.singleMachine { + portOffset = i + p2pPortStart = 16656 // use different start point to not conflict with rpc port + nodeConfig.P2P.AddrBookStrict = false + nodeConfig.P2P.PexReactor = false + nodeConfig.P2P.AllowDuplicateIP = true + + grpcConfig = &grpc.Config{ + Enable: true, + Address: fmt.Sprintf("127.0.0.1:%d", grpcPort+portOffset), + MaxRecvMsgSize: grpc.DefaultConfig().MaxRecvMsgSize, + MaxSendMsgSize: grpc.DefaultConfig().MaxSendMsgSize, + } + } + + nodeDirName := fmt.Sprintf("%s%d", args.nodeDirPrefix, i) + nodeDir := filepath.Join(args.outputDir, nodeDirName, args.nodeDaemonHome) + cmd.Println("Node dir", nodeDir) + gentxsDir := filepath.Join(args.outputDir, "gentxs") + + nodeConfig.SetRoot(nodeDir) + nodeConfig.Moniker = nodeDirName + nodeConfig.RPC.ListenAddress = fmt.Sprintf("tcp://%s:%d", args.listenIPAddress, rpcPort+portOffset) + + if err := os.MkdirAll(filepath.Join(nodeDir, "config"), nodeDirPerm); err != nil { + _ = os.RemoveAll(args.outputDir) + return err + } + var ( + err error + ip string + ) + if args.singleMachine { + ip = "127.0.0.1" + } else { + ip, err = getIP(i, args.startingIPAddress) + if err != nil { + _ = os.RemoveAll(args.outputDir) + return err + } + } + + nodeIDs[i], valPubKeys[i], err = genutil.InitializeNodeValidatorFiles(nodeConfig, args.algo) + if err != nil { + _ = os.RemoveAll(args.outputDir) + return err + } + + memo := fmt.Sprintf("%s@%s:%d", nodeIDs[i], ip, p2pPortStart+portOffset) + genFiles = append(genFiles, nodeConfig.GenesisFile()) + + kb, err := keyring.New(sdk.KeyringServiceName(), args.keyringBackend, nodeDir, inBuf, clientCtx.Codec) + if err != nil { + return err + } + + keyringAlgos, _ := kb.SupportedAlgorithms() + algo, err := keyring.NewSigningAlgoFromString(args.algo, keyringAlgos) + if err != nil { + return err + } + + addr, secret, err := testutil.GenerateSaveCoinKey(kb, nodeDirName, "", true, algo, sdk.GetFullBIP44Path()) + if err != nil { + _ = os.RemoveAll(args.outputDir) + return err + } + + info := map[string]string{"secret": secret} + + cliPrint, err := json.Marshal(info) + if err != nil { + return err + } + + // save private key seed words + if err := writeFile(fmt.Sprintf("%v.json", "key_seed"), nodeDir, cliPrint); err != nil { + return err + } + + accTokens := sdk.TokensFromConsensusPower(1000, sdk.DefaultPowerReduction) + accStakingTokens := sdk.TokensFromConsensusPower(500, sdk.DefaultPowerReduction) + coins := sdk.Coins{ + sdk.NewCoin("testtoken", accTokens), + sdk.NewCoin(args.bondTokenDenom, accStakingTokens), + } + + genBalances = append(genBalances, banktypes.Balance{Address: addr.String(), Coins: coins.Sort()}) + genAccounts = append(genAccounts, authtypes.NewBaseAccount(addr, nil, 0, 0)) + + valStr, err := clientCtx.ValidatorAddressCodec.BytesToString(addr) + if err != nil { + return err + } + valTokens := sdk.TokensFromConsensusPower(100, sdk.DefaultPowerReduction) + createValMsg, err := stakingtypes.NewMsgCreateValidator( + valStr, + valPubKeys[i], + sdk.NewCoin(args.bondTokenDenom, valTokens), + stakingtypes.NewDescription(nodeDirName, "", "", "", ""), + stakingtypes.NewCommissionRates(math.LegacyOneDec(), math.LegacyOneDec(), math.LegacyOneDec()), + math.OneInt(), + ) + if err != nil { + return err + } + + txBuilder := clientCtx.TxConfig.NewTxBuilder() + if err := txBuilder.SetMsgs(createValMsg); err != nil { + return err + } + + txBuilder.SetMemo(memo) + txBuilder.SetGasLimit(flags.DefaultGasLimit) + txBuilder.SetFeePayer(addr) + + txFactory := tx.Factory{} + txFactory = txFactory. + WithChainID(args.chainID). + WithMemo(memo). + WithKeybase(kb). + WithTxConfig(clientCtx.TxConfig) + + if err := tx.Sign(cmd.Context(), txFactory, nodeDirName, txBuilder, true); err != nil { + return err + } + + txBz, err := clientCtx.TxConfig.TxJSONEncoder()(txBuilder.GetTx()) + if err != nil { + return err + } + + if err := writeFile(fmt.Sprintf("%v.json", nodeDirName), gentxsDir, txBz); err != nil { + return err + } + + // Write server config + cometServer := cometbft.New[serverv2.AppI[T], T](&temporaryTxDecoder[T]{clientCtx.TxConfig}, cometbft.ServerOptions[T]{}, cometbft.OverwriteDefaultCometConfig(nodeConfig)) + grpcServer := grpc.New[serverv2.AppI[T], T](grpc.OverwriteDefaultConfig(grpcConfig)) + server := serverv2.NewServer(log.NewNopLogger(), cometServer, grpcServer) + err = server.WriteConfig(filepath.Join(nodeDir, "config")) + if err != nil { + return err + } + } + + if err := initGenFiles(clientCtx, mm, args.chainID, genAccounts, genBalances, genFiles, args.numValidators); err != nil { + return err + } + + err := collectGenFiles( + clientCtx, nodeConfig, args.chainID, nodeIDs, valPubKeys, args.numValidators, + args.outputDir, args.nodeDirPrefix, args.nodeDaemonHome, genBalIterator, + rpcPort, p2pPortStart, args.singleMachine, + ) + if err != nil { + return err + } + + // Update viper root since root dir become rootdir/node/simd + client.GetViperFromCmd(cmd).Set(flags.FlagHome, nodeConfig.RootDir) + + cmd.PrintErrf("Successfully initialized %d node directories\n", args.numValidators) + return nil +} + +func initGenFiles[T transaction.Tx]( + clientCtx client.Context, mm *runtimev2.MM[T], chainID string, + genAccounts []authtypes.GenesisAccount, genBalances []banktypes.Balance, + genFiles []string, numValidators int, +) error { + appGenState := mm.DefaultGenesis() + + // set the accounts in the genesis state + var authGenState authtypes.GenesisState + clientCtx.Codec.MustUnmarshalJSON(appGenState[authtypes.ModuleName], &authGenState) + + accounts, err := authtypes.PackAccounts(genAccounts) + if err != nil { + return err + } + + authGenState.Accounts = accounts + appGenState[authtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&authGenState) + + // set the balances in the genesis state + var bankGenState banktypes.GenesisState + clientCtx.Codec.MustUnmarshalJSON(appGenState[banktypes.ModuleName], &bankGenState) + + bankGenState.Balances, err = banktypes.SanitizeGenesisBalances(genBalances, clientCtx.AddressCodec) + if err != nil { + return err + } + for _, bal := range bankGenState.Balances { + bankGenState.Supply = bankGenState.Supply.Add(bal.Coins...) + } + appGenState[banktypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&bankGenState) + + appGenStateJSON, err := json.MarshalIndent(appGenState, "", " ") + if err != nil { + return err + } + + appGenesis := genutiltypes.NewAppGenesisWithVersion(chainID, appGenStateJSON) + // generate empty genesis files for each validator and save + for i := 0; i < numValidators; i++ { + if err := appGenesis.SaveAs(genFiles[i]); err != nil { + return err + } + } + return nil +} + +func collectGenFiles( + clientCtx client.Context, nodeConfig *cmtconfig.Config, chainID string, + nodeIDs []string, valPubKeys []cryptotypes.PubKey, numValidators int, + outputDir, nodeDirPrefix, nodeDaemonHome string, genBalIterator banktypes.GenesisBalancesIterator, + rpcPortStart, p2pPortStart int, + singleMachine bool, +) error { + var appState json.RawMessage + genTime := cmttime.Now() + + for i := 0; i < numValidators; i++ { + if singleMachine { + portOffset := i + nodeConfig.RPC.ListenAddress = fmt.Sprintf("tcp://127.0.0.1:%d", rpcPortStart+portOffset) + nodeConfig.P2P.ListenAddress = fmt.Sprintf("tcp://127.0.0.1:%d", p2pPortStart+portOffset) + } + + nodeDirName := fmt.Sprintf("%s%d", nodeDirPrefix, i) + nodeDir := filepath.Join(outputDir, nodeDirName, nodeDaemonHome) + gentxsDir := filepath.Join(outputDir, "gentxs") + nodeConfig.Moniker = nodeDirName + + nodeConfig.SetRoot(nodeDir) + + nodeID, valPubKey := nodeIDs[i], valPubKeys[i] + initCfg := genutiltypes.NewInitConfig(chainID, gentxsDir, nodeID, valPubKey) + + appGenesis, err := genutiltypes.AppGenesisFromFile(nodeConfig.GenesisFile()) + if err != nil { + return err + } + + nodeAppState, err := genutil.GenAppStateFromConfig(clientCtx.Codec, clientCtx.TxConfig, nodeConfig, initCfg, appGenesis, genBalIterator, genutiltypes.DefaultMessageValidator, + clientCtx.ValidatorAddressCodec, clientCtx.AddressCodec) + if err != nil { + return err + } + + if appState == nil { + // set the canonical application state (they should not differ) + appState = nodeAppState + } + + genFile := nodeConfig.GenesisFile() + + // overwrite each validator's genesis file to have a canonical genesis time + if err := genutil.ExportGenesisFileWithTime(genFile, chainID, nil, appState, genTime); err != nil { + return err + } + } + + return nil +} + +func getIP(i int, startingIPAddr string) (ip string, err error) { + if len(startingIPAddr) == 0 { + ip, err = serverv2.ExternalIP() + if err != nil { + return "", err + } + return ip, nil + } + return calculateIP(startingIPAddr, i) +} + +func calculateIP(ip string, i int) (string, error) { + ipv4 := net.ParseIP(ip).To4() + if ipv4 == nil { + return "", fmt.Errorf("%v: non ipv4 address", ip) + } + + for j := 0; j < i; j++ { + ipv4[3]++ + } + + return ipv4.String(), nil +} + +func writeFile(name, dir string, contents []byte) error { + file := filepath.Join(dir, name) + + if err := os.MkdirAll(dir, 0o755); err != nil { + return fmt.Errorf("could not create directory %q: %w", dir, err) + } + + if err := os.WriteFile(file, contents, 0o600); err != nil { + return err + } + + return nil +} From 906ed4f56d10f7d37a2177cedfb1f201cb73d19f Mon Sep 17 00:00:00 2001 From: krane <89357497+0xkrane@users.noreply.github.com> Date: Fri, 5 Jul 2024 12:29:31 +0400 Subject: [PATCH 06/17] docs: remove double BFT in why-app-specific (#20882) --- docs/learn/intro/01-why-app-specific.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/intro/01-why-app-specific.md b/docs/learn/intro/01-why-app-specific.md index e34bf32707f5..733102d85fd0 100644 --- a/docs/learn/intro/01-why-app-specific.md +++ b/docs/learn/intro/01-why-app-specific.md @@ -68,7 +68,7 @@ The list above contains a few examples that show how much flexibility applicatio Decentralized applications built with Smart Contracts are inherently capped in performance by the underlying environment. For a decentralized application to optimise performance, it needs to be built as an application-specific blockchain. Next are some of the benefits an application-specific blockchain brings in terms of performance: -* Developers of application-specific blockchains can choose to operate with a novel consensus engine such as CometBFT BFT. Compared to Proof-of-Work (used by most virtual-machine blockchains today), it offers significant gains in throughput. +* Developers of application-specific blockchains can choose to operate with a novel consensus engine such as CometBFT. Compared to Proof-of-Work (used by most virtual-machine blockchains today), it offers significant gains in throughput. * An application-specific blockchain only operates a single application, so that the application does not compete with others for computation and storage. This is the opposite of most non-sharded virtual-machine blockchains today, where smart contracts all compete for computation and storage. * Even if a virtual-machine blockchain offered application-based sharding coupled with an efficient consensus algorithm, performance would still be limited by the virtual-machine itself. The real throughput bottleneck is the state-machine, and requiring transactions to be interpreted by a virtual-machine significantly increases the computational complexity of processing them. From 5da524fdba906f72e92fa3d06180938a937f1ccb Mon Sep 17 00:00:00 2001 From: samricotta <37125168+samricotta@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:29:55 +0200 Subject: [PATCH 07/17] docs: remove unnecessary codeblocks (#20857) --- docs/learn/advanced/00-baseapp.md | 5 +---- docs/learn/advanced/01-transactions.md | 3 +-- docs/learn/advanced/05-encoding.md | 2 -- docs/learn/advanced/10-ocap.md | 2 -- 4 files changed, 2 insertions(+), 10 deletions(-) diff --git a/docs/learn/advanced/00-baseapp.md b/docs/learn/advanced/00-baseapp.md index 418ec64d3258..e59eaf4e677f 100644 --- a/docs/learn/advanced/00-baseapp.md +++ b/docs/learn/advanced/00-baseapp.md @@ -49,9 +49,7 @@ management logic. The `BaseApp` type holds many important parameters for any Cosmos SDK based application. -```go reference https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/baseapp/baseapp.go#L58-L182 -``` Let us go through the most important components. @@ -492,9 +490,8 @@ The `FinalizeBlock` ABCI function defined in `BaseApp` does the bulk of the stat Instead of using their `checkState`, full-nodes use `finalizeblock`: -```go reference https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/baseapp/baseapp.go#LL708-L743 -``` + Transaction execution within `FinalizeBlock` performs the **exact same steps as `CheckTx`**, with a little caveat at step 3 and the addition of a fifth step: diff --git a/docs/learn/advanced/01-transactions.md b/docs/learn/advanced/01-transactions.md index a8b60ff097e2..dceaa2cf3406 100644 --- a/docs/learn/advanced/01-transactions.md +++ b/docs/learn/advanced/01-transactions.md @@ -187,9 +187,8 @@ simd tx send $MY_VALIDATOR_ADDRESS $RECIPIENT 1000stake [gRPC](https://grpc.io) is the main component for the Cosmos SDK's RPC layer. Its principal usage is in the context of modules' [`Query` services](../../build/building-modules/04-query-services.md). However, the Cosmos SDK also exposes a few other module-agnostic gRPC services, one of them being the `Tx` service: -```go reference https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/proto/cosmos/tx/v1beta1/service.proto -``` + The `Tx` service exposes a handful of utility functions, such as simulating a transaction or querying a transaction, and also one method to broadcast transactions. diff --git a/docs/learn/advanced/05-encoding.md b/docs/learn/advanced/05-encoding.md index 8b37c2bcedaf..6df0dda2ec14 100644 --- a/docs/learn/advanced/05-encoding.md +++ b/docs/learn/advanced/05-encoding.md @@ -83,9 +83,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/tx_msg.go#L91-L9 A standard implementation of both these objects can be found in the [`auth/tx` module](https://docs.cosmos.network/main/build/modules/auth#transactions): -```go reference https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/x/auth/tx/decoder.go -``` ```go reference https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/x/auth/tx/encoder.go diff --git a/docs/learn/advanced/10-ocap.md b/docs/learn/advanced/10-ocap.md index c5a472b7f6c4..35bc3ecd4455 100644 --- a/docs/learn/advanced/10-ocap.md +++ b/docs/learn/advanced/10-ocap.md @@ -67,9 +67,7 @@ sumValue := externalModule.ComputeSumValue(*account) In the Cosmos SDK, you can see the application of this principle in simapp. -```go reference https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/simapp/app.go -``` The following diagram shows the current dependencies between keepers. From 5733d36e1745f588c711dd57bf1066ab1bcaf526 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 08:37:09 +0000 Subject: [PATCH 08/17] build(deps): Bump github.com/cometbft/cometbft from 1.0.0-alpha.2.0.20240429102542-490e9bc3de65 to 1.0.0-rc1 in /store (#20883) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: marbar3778 --- server/v2/go.mod | 1 - store/go.mod | 2 +- store/go.sum | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/server/v2/go.mod b/server/v2/go.mod index 6baec87c9b05..9a7210318e07 100644 --- a/server/v2/go.mod +++ b/server/v2/go.mod @@ -7,7 +7,6 @@ replace ( cosmossdk.io/core => ../../core cosmossdk.io/depinject => ../../depinject cosmossdk.io/log => ../../log - cosmossdk.io/server/v2 => . cosmossdk.io/server/v2/appmanager => ./appmanager cosmossdk.io/server/v2/stf => ./stf cosmossdk.io/x/tx => ../../x/tx diff --git a/store/go.mod b/store/go.mod index 63ee627a76d9..38632daba382 100644 --- a/store/go.mod +++ b/store/go.mod @@ -7,7 +7,7 @@ require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/log v1.3.1 cosmossdk.io/math v1.3.0 - github.com/cometbft/cometbft v1.0.0-alpha.2.0.20240429102542-490e9bc3de65 + github.com/cometbft/cometbft v1.0.0-rc1 github.com/cometbft/cometbft/api v1.0.0-rc.1 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-proto v1.0.0-beta.5 diff --git a/store/go.sum b/store/go.sum index 94e76c2aa802..0f76d0e03ec9 100644 --- a/store/go.sum +++ b/store/go.sum @@ -32,8 +32,8 @@ github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwP github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= -github.com/cometbft/cometbft v1.0.0-alpha.2.0.20240429102542-490e9bc3de65 h1:vNrFdj8MmdHmZPovE1bZcOpY8VNK2fy3O3bjgkvGA8A= -github.com/cometbft/cometbft v1.0.0-alpha.2.0.20240429102542-490e9bc3de65/go.mod h1:FH1mC3P645pmV3TcHly2xc/2QnKOztRVS7QI77L8Pkk= +github.com/cometbft/cometbft v1.0.0-rc1 h1:pYCXw0rKILceyOzHwd+/fGLag8VYemwLUIX6N7V2REw= +github.com/cometbft/cometbft v1.0.0-rc1/go.mod h1:64cB2wvltmK5plHlJFLYOZYGsaTKNW2EZgcHBisHP7o= github.com/cometbft/cometbft/api v1.0.0-rc.1 h1:GtdXwDGlqwHYs16A4egjwylfYOMYyEacLBrs3Zvpt7g= github.com/cometbft/cometbft/api v1.0.0-rc.1/go.mod h1:NDFKiBBD8HJC6QQLAoUI99YhsiRZtg2+FJWfk6A6m6o= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= From 25d2043909d351ef2f3b2386af95e11ab2c36ab6 Mon Sep 17 00:00:00 2001 From: krane <89357497+0xkrane@users.noreply.github.com> Date: Fri, 5 Jul 2024 13:13:51 +0400 Subject: [PATCH 09/17] docs: remove inaccurate statement about PoW chains (#20877) Co-authored-by: Marko --- docs/learn/intro/01-why-app-specific.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/intro/01-why-app-specific.md b/docs/learn/intro/01-why-app-specific.md index 733102d85fd0..170e45e9e043 100644 --- a/docs/learn/intro/01-why-app-specific.md +++ b/docs/learn/intro/01-why-app-specific.md @@ -68,7 +68,7 @@ The list above contains a few examples that show how much flexibility applicatio Decentralized applications built with Smart Contracts are inherently capped in performance by the underlying environment. For a decentralized application to optimise performance, it needs to be built as an application-specific blockchain. Next are some of the benefits an application-specific blockchain brings in terms of performance: -* Developers of application-specific blockchains can choose to operate with a novel consensus engine such as CometBFT. Compared to Proof-of-Work (used by most virtual-machine blockchains today), it offers significant gains in throughput. +* Developers of application-specific blockchains can choose to operate with a novel consensus engine such as CometBFT. * An application-specific blockchain only operates a single application, so that the application does not compete with others for computation and storage. This is the opposite of most non-sharded virtual-machine blockchains today, where smart contracts all compete for computation and storage. * Even if a virtual-machine blockchain offered application-based sharding coupled with an efficient consensus algorithm, performance would still be limited by the virtual-machine itself. The real throughput bottleneck is the state-machine, and requiring transactions to be interpreted by a virtual-machine significantly increases the computational complexity of processing them. From b68eb3941233904dc06f2afe38db94f93db18a9e Mon Sep 17 00:00:00 2001 From: Marko Date: Fri, 5 Jul 2024 11:28:49 +0200 Subject: [PATCH 10/17] refactor(staking)!: remove historical info (#20845) Co-authored-by: Facundo --- api/cosmos/staking/v1beta1/query.pulsar.go | 273 +-- api/cosmos/staking/v1beta1/query_grpc.pb.go | 3 + api/cosmos/staking/v1beta1/staking.pulsar.go | 1699 +++++-------- client/docs/swagger-ui/swagger.yaml | 1055 ++++++++- server/v2/cometbft/abci.go | 1 - server/v2/cometbft/commands.go | 2 +- server/v2/cometbft/go.mod | 1 + server/v2/cometbft/go.sum | 2 - simapp/sim_test.go | 3 +- simapp/v2/simdv2/cmd/commands.go | 3 +- simapp/v2/simdv2/cmd/testnet.go | 16 +- .../staking/keeper/deterministic_test.go | 49 +- .../staking/keeper/grpc_query_test.go | 71 +- x/staking/CHANGELOG.md | 10 +- x/staking/README.md | 211 -- x/staking/keeper/abci.go | 7 - x/staking/keeper/grpc_query.go | 13 +- x/staking/keeper/historical_info.go | 53 - x/staking/keeper/historical_info_test.go | 173 -- x/staking/keeper/keeper.go | 19 - x/staking/keeper/keeper_test.go | 32 +- x/staking/keeper/msg_server_test.go | 12 +- x/staking/migrations/v6/keys.go | 5 +- x/staking/migrations/v6/store.go | 1 + x/staking/module.go | 6 - .../proto/cosmos/staking/v1beta1/query.proto | 7 +- .../cosmos/staking/v1beta1/staking.proto | 16 +- x/staking/simulation/genesis.go | 4 +- x/staking/simulation/genesis_test.go | 2 +- x/staking/types/errors.go | 1 - x/staking/types/keys.go | 3 +- x/staking/types/params.go | 10 +- x/staking/types/query.pb.go | 255 +- x/staking/types/staking.pb.go | 2106 +++++++---------- 34 files changed, 2669 insertions(+), 3455 deletions(-) delete mode 100644 x/staking/keeper/historical_info.go delete mode 100644 x/staking/keeper/historical_info_test.go diff --git a/api/cosmos/staking/v1beta1/query.pulsar.go b/api/cosmos/staking/v1beta1/query.pulsar.go index 5d38e7fac5e7..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 @@ -15378,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 @@ -15416,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 @@ -15424,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() { @@ -15456,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 @@ -15870,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, @@ -15898,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, @@ -16048,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, @@ -16056,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 ( @@ -16145,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 @@ -16177,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/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/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/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/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/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..61387b42301a 100644 --- a/simapp/v2/simdv2/cmd/testnet.go +++ b/simapp/v2/simdv2/cmd/testnet.go @@ -32,7 +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" @@ -86,7 +85,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 +94,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 +141,7 @@ Example: return err } - return initTestnetFiles(clientCtx, cmd, config, mm, genBalIterator, args) + return initTestnetFiles(clientCtx, cmd, config, mm, args) }, } @@ -167,7 +166,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 +351,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 +415,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 +444,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 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..f728a947bcd9 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{}) // nolint:staticcheck // SA1019: deprecated endpoint + assert.ErrorContains(t, err, "this endpoint has been deprecated and removed in 0.52") } func TestGRPCQueryRedelegations(t *testing.T) { diff --git a/x/staking/CHANGELOG.md b/x/staking/CHANGELOG.md index b004438104e3..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 @@ -92,20 +90,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 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/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..11f5cb4d0ca4 100644 --- a/x/staking/keeper/grpc_query.go +++ b/x/staking/keeper/grpc_query.go @@ -404,21 +404,12 @@ 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") } - 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/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) } 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/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/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..863b598179ab 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}"; } @@ -139,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. @@ -367,6 +369,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,9 +377,9 @@ 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; + 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..f9e5d555f1fc 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 { @@ -231,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. @@ -304,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. @@ -320,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..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. @@ -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/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/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/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 diff --git a/x/staking/types/params.go b/x/staking/types/params.go index 3db7b75d1ce3..5e27278cda90 100644 --- a/x/staking/types/params.go +++ b/x/staking/types/params.go @@ -24,11 +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. - DefaultHistoricalEntries uint32 = 10000 ) var ( @@ -41,7 +36,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 +44,7 @@ func NewParams(unbondingTime time.Duration, UnbondingTime: unbondingTime, MaxValidators: maxValidators, MaxEntries: maxEntries, - HistoricalEntries: historicalEntries, + HistoricalEntries: 0, BondDenom: bondDenom, MinCommissionRate: minCommissionRate, KeyRotationFee: keyRotationFee, @@ -62,7 +57,6 @@ func DefaultParams() Params { DefaultUnbondingTime, DefaultMaxValidators, DefaultMaxEntries, - DefaultHistoricalEntries, sdk.DefaultBondDenom, DefaultMinCommissionRate, DefaultKeyRotationFee, diff --git a/x/staking/types/query.pb.go b/x/staking/types/query.pb.go index bf623cc0ae29..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"` @@ -1188,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"` @@ -1235,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{} } @@ -1282,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 { } @@ -1492,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. @@ -1762,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...) @@ -3232,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]) @@ -3793,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 } @@ -6585,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 cc1267b1a353fb7a26627196591d53f0f8c6866a Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 5 Jul 2024 12:52:49 +0200 Subject: [PATCH 11/17] ci: enable ci for schema (#20888) --- .github/dependabot.yml | 9 +++++++++ .github/pr_labeler.yml | 2 ++ .github/workflows/test.yml | 30 ++++++++++++++++++++++++++++++ go.work.example | 1 + schema/field.go | 8 ++++---- schema/object_type.go | 6 +++--- schema/sonar-project.properties | 16 ++++++++++++++++ 7 files changed, 65 insertions(+), 7 deletions(-) create mode 100644 schema/sonar-project.properties diff --git a/.github/dependabot.yml b/.github/dependabot.yml index db7f4be06984..1114d14726ce 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -106,6 +106,15 @@ updates: labels: - "A:automerge" - dependencies + - package-ecosystem: gomod + directory: "/schema" + schedule: + interval: weekly + day: wednesday + time: "01:53" + labels: + - "A:automerge" + - dependencies - package-ecosystem: gomod directory: "/x/tx" schedule: diff --git a/.github/pr_labeler.yml b/.github/pr_labeler.yml index 3dd370bff2c4..6424808272ec 100644 --- a/.github/pr_labeler.yml +++ b/.github/pr_labeler.yml @@ -22,6 +22,8 @@ - log/* "C:orm": - orm/**/* +"C:schema": + - schema/**/* "C:x/accounts": - x/accounts/**/* "C:x/auth": diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4c0e2f928858..4daf93be344a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -457,6 +457,36 @@ jobs: with: projectBaseDir: math/ + test-schema: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: "1.12" + cache: true + cache-dependency-path: schema/go.sum + - uses: technote-space/get-diff-action@v6.1.2 + id: git_diff + with: + PATTERNS: | + schema/**/*.go + schema/go.mod + schema/go.sum + - name: tests + if: env.GIT_DIFF + run: | + cd schema + go test -mod=readonly -timeout 30m -coverprofile=coverage.out -covermode=atomic -tags='norace ledger test_ledger_mock' ./... + - name: sonarcloud + if: ${{ env.GIT_DIFF && !github.event.pull_request.draft && env.SONAR_TOKEN != null }} + uses: SonarSource/sonarcloud-github-action@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + with: + projectBaseDir: schema/ + test-simapp: runs-on: ubuntu-latest steps: diff --git a/go.work.example b/go.work.example index ad894e8b4fd8..5e0f392aad4e 100644 --- a/go.work.example +++ b/go.work.example @@ -15,6 +15,7 @@ use ( ./simapp ./tests ./tests/systemtests + ./schema ./server/v2/stf ./server/v2/appmanager ./store diff --git a/schema/field.go b/schema/field.go index 57f34b9cfa52..6a5df03a10ec 100644 --- a/schema/field.go +++ b/schema/field.go @@ -14,7 +14,7 @@ type Field struct { Nullable bool // AddressPrefix is the address prefix of the field's kind, currently only used for Bech32AddressKind. - // TODO: in a future update, stricter criteria and validation for address prefixes should be added + // TODO: in a future update, stricter criteria and validation for address prefixes should be added. AddressPrefix string // EnumDefinition is the definition of the enum type and is only valid when Kind is EnumKind. @@ -33,7 +33,7 @@ func (c Field) Validate() error { // valid kind if err := c.Kind.Validate(); err != nil { - return fmt.Errorf("invalid field kind for %q: %w", c.Name, err) + return fmt.Errorf("invalid field kind for %q: %v", c.Name, err) } // address prefix only valid with Bech32AddressKind @@ -46,7 +46,7 @@ func (c Field) Validate() error { // enum definition only valid with EnumKind if c.Kind == EnumKind { if err := c.EnumDefinition.Validate(); err != nil { - return fmt.Errorf("invalid enum definition for field %q: %w", c.Name, err) + return fmt.Errorf("invalid enum definition for field %q: %v", c.Name, err) } } else if c.Kind != EnumKind && (c.EnumDefinition.Name != "" || c.EnumDefinition.Values != nil) { return fmt.Errorf("enum definition is only valid for field %q with type EnumKind", c.Name) @@ -67,7 +67,7 @@ func (c Field) ValidateValue(value interface{}) error { } err := c.Kind.ValidateValueType(value) if err != nil { - return fmt.Errorf("invalid value for field %q: %w", c.Name, err) + return fmt.Errorf("invalid value for field %q: %v", c.Name, err) } if c.Kind == EnumKind { diff --git a/schema/object_type.go b/schema/object_type.go index 9560c5d4e35f..4189f88de82d 100644 --- a/schema/object_type.go +++ b/schema/object_type.go @@ -43,7 +43,7 @@ func (o ObjectType) validate(enumValueMap map[string]map[string]bool) error { for _, field := range o.KeyFields { if err := field.Validate(); err != nil { - return fmt.Errorf("invalid key field %q: %w", field.Name, err) + return fmt.Errorf("invalid key field %q: %v", field.Name, err) } if field.Nullable { @@ -62,7 +62,7 @@ func (o ObjectType) validate(enumValueMap map[string]map[string]bool) error { for _, field := range o.ValueFields { if err := field.Validate(); err != nil { - return fmt.Errorf("invalid value field %q: %w", field.Name, err) + return fmt.Errorf("invalid value field %q: %v", field.Name, err) } if fieldNames[field.Name] { @@ -89,7 +89,7 @@ func (o ObjectType) ValidateObjectUpdate(update ObjectUpdate) error { } if err := ValidateObjectKey(o.KeyFields, update.Key); err != nil { - return fmt.Errorf("invalid key for object type %q: %w", update.TypeName, err) + return fmt.Errorf("invalid key for object type %q: %v", update.TypeName, err) } if update.Delete { diff --git a/schema/sonar-project.properties b/schema/sonar-project.properties new file mode 100644 index 000000000000..6839d8a91403 --- /dev/null +++ b/schema/sonar-project.properties @@ -0,0 +1,16 @@ +sonar.projectKey=cosmos-sdk-schema +sonar.organization=cosmos + +sonar.projectName=Cosmos SDK - Schema +sonar.project.monorepo.enabled=true + +sonar.sources=. +sonar.exclusions=**/*_test.go,**/*.pb.go,**/*.pulsar.go,**/*.pb.gw.go +sonar.coverage.exclusions=**/*_test.go,**/testutil/**,**/*.pb.go,**/*.pb.gw.go,**/*.pulsar.go,test_helpers.go,docs/** +sonar.tests=. +sonar.test.inclusions=**/*_test.go +sonar.go.coverage.reportPaths=coverage.out + +sonar.sourceEncoding=UTF-8 +sonar.scm.provider=git +sonar.scm.forceReloadAll=true From 159584ad419e06cfd387adeb74665bfadc614df0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Jul 2024 17:42:50 +0700 Subject: [PATCH 12/17] build(deps): Bump github.com/rs/cors from 1.10.0 to 1.11.0 in /tools/hubl (#20901) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> --- tests/systemtests/go.mod | 2 +- tests/systemtests/go.sum | 4 ++-- tools/confix/go.mod | 2 +- tools/confix/go.sum | 4 ++-- tools/hubl/go.mod | 2 +- tools/hubl/go.sum | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/systemtests/go.mod b/tests/systemtests/go.mod index 60b1097de389..5edce4f08c9a 100644 --- a/tests/systemtests/go.mod +++ b/tests/systemtests/go.mod @@ -129,7 +129,7 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/cors v1.8.3 // indirect + github.com/rs/cors v1.11.0 // indirect github.com/rs/zerolog v1.33.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect diff --git a/tests/systemtests/go.sum b/tests/systemtests/go.sum index 8d192cfd32a7..b41cbde6c2cb 100644 --- a/tests/systemtests/go.sum +++ b/tests/systemtests/go.sum @@ -633,8 +633,8 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= -github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= +github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= diff --git a/tools/confix/go.mod b/tools/confix/go.mod index 1b5a65bd2585..8200f4cd43d7 100644 --- a/tools/confix/go.mod +++ b/tools/confix/go.mod @@ -122,7 +122,7 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/cors v1.8.3 // indirect + github.com/rs/cors v1.11.0 // indirect github.com/rs/zerolog v1.33.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect diff --git a/tools/confix/go.sum b/tools/confix/go.sum index 5fde2a05e18a..2a8e5a7d1797 100644 --- a/tools/confix/go.sum +++ b/tools/confix/go.sum @@ -636,8 +636,8 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= -github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= +github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= diff --git a/tools/hubl/go.mod b/tools/hubl/go.mod index 5344ee1890e4..2c5cc802a088 100644 --- a/tools/hubl/go.mod +++ b/tools/hubl/go.mod @@ -121,7 +121,7 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/cors v1.10.0 // indirect + github.com/rs/cors v1.11.0 // indirect github.com/rs/zerolog v1.33.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect diff --git a/tools/hubl/go.sum b/tools/hubl/go.sum index 150ed44c51ae..c2474f951fba 100644 --- a/tools/hubl/go.sum +++ b/tools/hubl/go.sum @@ -636,8 +636,8 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.10.0 h1:62NOS1h+r8p1mW6FM0FSB0exioXLhd/sh15KpjWBZ+8= -github.com/rs/cors v1.10.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= +github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= From b64fa900d52f019e3006527db5cfcad5c73b7904 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 09:48:08 +0200 Subject: [PATCH 13/17] build(deps): Bump golang.org/x/crypto from 0.24.0 to 0.25.0 (#20902) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> --- client/v2/go.mod | 6 +++--- client/v2/go.sum | 12 ++++++------ go.mod | 6 +++--- go.sum | 12 ++++++------ runtime/v2/go.mod | 4 ++-- runtime/v2/go.sum | 8 ++++---- server/v2/cometbft/go.mod | 6 +++--- server/v2/cometbft/go.sum | 12 ++++++------ simapp/go.mod | 6 +++--- simapp/go.sum | 12 ++++++------ simapp/v2/go.mod | 6 +++--- simapp/v2/go.sum | 12 ++++++------ store/go.mod | 4 ++-- store/go.sum | 8 ++++---- store/v2/go.mod | 4 ++-- store/v2/go.sum | 8 ++++---- tests/go.mod | 6 +++--- tests/go.sum | 12 ++++++------ tests/systemtests/go.mod | 6 +++--- tests/systemtests/go.sum | 12 ++++++------ tools/confix/go.mod | 6 +++--- tools/confix/go.sum | 12 ++++++------ tools/cosmovisor/go.mod | 6 +++--- tools/cosmovisor/go.sum | 12 ++++++------ tools/hubl/go.mod | 6 +++--- tools/hubl/go.sum | 12 ++++++------ x/accounts/defaults/lockup/go.mod | 6 +++--- x/accounts/defaults/lockup/go.sum | 12 ++++++------ x/accounts/go.mod | 6 +++--- x/accounts/go.sum | 12 ++++++------ x/auth/go.mod | 6 +++--- x/auth/go.sum | 12 ++++++------ x/authz/go.mod | 6 +++--- x/authz/go.sum | 12 ++++++------ x/bank/go.mod | 6 +++--- x/bank/go.sum | 12 ++++++------ x/circuit/go.mod | 6 +++--- x/circuit/go.sum | 12 ++++++------ x/consensus/go.mod | 6 +++--- x/consensus/go.sum | 12 ++++++------ x/distribution/go.mod | 6 +++--- x/distribution/go.sum | 12 ++++++------ x/epochs/go.mod | 6 +++--- x/epochs/go.sum | 12 ++++++------ x/evidence/go.mod | 6 +++--- x/evidence/go.sum | 12 ++++++------ x/feegrant/go.mod | 6 +++--- x/feegrant/go.sum | 12 ++++++------ x/gov/go.mod | 6 +++--- x/gov/go.sum | 12 ++++++------ x/group/go.mod | 6 +++--- x/group/go.sum | 12 ++++++------ x/mint/go.mod | 6 +++--- x/mint/go.sum | 12 ++++++------ x/nft/go.mod | 6 +++--- x/nft/go.sum | 12 ++++++------ x/params/go.mod | 6 +++--- x/params/go.sum | 12 ++++++------ x/protocolpool/go.mod | 6 +++--- x/protocolpool/go.sum | 12 ++++++------ x/slashing/go.mod | 6 +++--- x/slashing/go.sum | 12 ++++++------ x/staking/go.mod | 6 +++--- x/staking/go.sum | 12 ++++++------ x/upgrade/go.mod | 6 +++--- x/upgrade/go.sum | 12 ++++++------ 66 files changed, 288 insertions(+), 288 deletions(-) diff --git a/client/v2/go.mod b/client/v2/go.mod index 86d31406e642..8b8ad2fe1991 100644 --- a/client/v2/go.mod +++ b/client/v2/go.mod @@ -154,13 +154,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/client/v2/go.sum b/client/v2/go.sum index e0893fe48093..9430fc0c6a26 100644 --- a/client/v2/go.sum +++ b/client/v2/go.sum @@ -513,8 +513,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -598,12 +598,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/go.mod b/go.mod index 1e61e06ced33..8527485c19e3 100644 --- a/go.mod +++ b/go.mod @@ -55,7 +55,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/tendermint/go-amino v0.16.0 gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b - golang.org/x/crypto v0.24.0 + golang.org/x/crypto v0.25.0 golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc golang.org/x/sync v0.7.0 google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 @@ -166,8 +166,8 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/go.sum b/go.sum index 265bf82b4335..6270dd330537 100644 --- a/go.sum +++ b/go.sum @@ -504,8 +504,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -583,12 +583,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/runtime/v2/go.mod b/runtime/v2/go.mod index c9248faebab6..28ebe32b1822 100644 --- a/runtime/v2/go.mod +++ b/runtime/v2/go.mod @@ -83,10 +83,10 @@ require ( github.com/stretchr/testify v1.9.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tidwall/btree v1.7.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8 // indirect diff --git a/runtime/v2/go.sum b/runtime/v2/go.sum index 493ef69d6d2b..1dcfa0e08342 100644 --- a/runtime/v2/go.sum +++ b/runtime/v2/go.sum @@ -227,8 +227,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -277,8 +277,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/server/v2/cometbft/go.mod b/server/v2/cometbft/go.mod index 1da1703eef08..b7b51b9287bf 100644 --- a/server/v2/cometbft/go.mod +++ b/server/v2/cometbft/go.mod @@ -173,13 +173,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/server/v2/cometbft/go.sum b/server/v2/cometbft/go.sum index fae3ed7c94a7..19d5bab44988 100644 --- a/server/v2/cometbft/go.sum +++ b/server/v2/cometbft/go.sum @@ -504,8 +504,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -585,12 +585,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/simapp/go.mod b/simapp/go.mod index 7acfc530b54c..c99893cbb88f 100644 --- a/simapp/go.mod +++ b/simapp/go.mod @@ -207,14 +207,14 @@ require ( go.opentelemetry.io/otel/metric v1.27.0 // indirect go.opentelemetry.io/otel/trace v1.27.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect diff --git a/simapp/go.sum b/simapp/go.sum index 69973a085acc..9286d2faa635 100644 --- a/simapp/go.sum +++ b/simapp/go.sum @@ -856,8 +856,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1078,13 +1078,13 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/simapp/v2/go.mod b/simapp/v2/go.mod index 40b1b7da31b5..7f8309ceab17 100644 --- a/simapp/v2/go.mod +++ b/simapp/v2/go.mod @@ -216,13 +216,13 @@ require ( go.opentelemetry.io/otel/metric v1.27.0 // indirect go.opentelemetry.io/otel/trace v1.27.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect diff --git a/simapp/v2/go.sum b/simapp/v2/go.sum index a7ed68a4e8db..bbcbb67a9614 100644 --- a/simapp/v2/go.sum +++ b/simapp/v2/go.sum @@ -860,8 +860,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1082,13 +1082,13 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/store/go.mod b/store/go.mod index 38632daba382..9e730e8974d6 100644 --- a/store/go.mod +++ b/store/go.mod @@ -73,9 +73,9 @@ require ( github.com/rs/zerolog v1.33.0 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/sys v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/store/go.sum b/store/go.sum index 0f76d0e03ec9..dc00e8f03363 100644 --- a/store/go.sum +++ b/store/go.sum @@ -236,8 +236,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -289,8 +289,8 @@ golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= diff --git a/store/v2/go.mod b/store/v2/go.mod index 114bb77440e4..1ffa361f3474 100644 --- a/store/v2/go.mod +++ b/store/v2/go.mod @@ -53,9 +53,9 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/zerolog v1.33.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f // indirect - golang.org/x/sys v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8 // indirect google.golang.org/grpc v1.64.0 // indirect diff --git a/store/v2/go.sum b/store/v2/go.sum index 8a188ef3fd63..281f6e1bd5ca 100644 --- a/store/v2/go.sum +++ b/store/v2/go.sum @@ -217,8 +217,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f h1:3CW0unweImhOzd5FmYuRsD4Y4oQFKZIjAnKbjV4WIrw= golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -267,8 +267,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/tests/go.mod b/tests/go.mod index fac515f83b66..efe255a58269 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -206,14 +206,14 @@ require ( go.opentelemetry.io/otel/metric v1.27.0 // indirect go.opentelemetry.io/otel/trace v1.27.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect diff --git a/tests/go.sum b/tests/go.sum index 734225d1c66a..17825fa82fc3 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -847,8 +847,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1068,13 +1068,13 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/tests/systemtests/go.mod b/tests/systemtests/go.mod index 5edce4f08c9a..b80b9b703c38 100644 --- a/tests/systemtests/go.mod +++ b/tests/systemtests/go.mod @@ -146,11 +146,11 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.8 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect diff --git a/tests/systemtests/go.sum b/tests/systemtests/go.sum index b41cbde6c2cb..415db2b865eb 100644 --- a/tests/systemtests/go.sum +++ b/tests/systemtests/go.sum @@ -770,8 +770,8 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= @@ -888,12 +888,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/tools/confix/go.mod b/tools/confix/go.mod index 8200f4cd43d7..65d1a2b6bb01 100644 --- a/tools/confix/go.mod +++ b/tools/confix/go.mod @@ -140,11 +140,11 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.8 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect diff --git a/tools/confix/go.sum b/tools/confix/go.sum index 2a8e5a7d1797..9ec1cfa27226 100644 --- a/tools/confix/go.sum +++ b/tools/confix/go.sum @@ -766,8 +766,8 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= @@ -886,12 +886,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/tools/cosmovisor/go.mod b/tools/cosmovisor/go.mod index a63df6b329ca..25a44a66179d 100644 --- a/tools/cosmovisor/go.mod +++ b/tools/cosmovisor/go.mod @@ -164,13 +164,13 @@ require ( go.opentelemetry.io/otel/metric v1.27.0 // indirect go.opentelemetry.io/otel/trace v1.27.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect google.golang.org/api v0.185.0 // indirect diff --git a/tools/cosmovisor/go.sum b/tools/cosmovisor/go.sum index 8f17347967f7..71879889ac97 100644 --- a/tools/cosmovisor/go.sum +++ b/tools/cosmovisor/go.sum @@ -1016,8 +1016,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1252,13 +1252,13 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/tools/hubl/go.mod b/tools/hubl/go.mod index 2c5cc802a088..d2daf7070d81 100644 --- a/tools/hubl/go.mod +++ b/tools/hubl/go.mod @@ -140,12 +140,12 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.8 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect diff --git a/tools/hubl/go.sum b/tools/hubl/go.sum index c2474f951fba..ea05ff45f827 100644 --- a/tools/hubl/go.sum +++ b/tools/hubl/go.sum @@ -765,8 +765,8 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= @@ -883,12 +883,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/accounts/defaults/lockup/go.mod b/x/accounts/defaults/lockup/go.mod index fbc4f1f2f1ce..5883327445e1 100644 --- a/x/accounts/defaults/lockup/go.mod +++ b/x/accounts/defaults/lockup/go.mod @@ -147,13 +147,13 @@ require ( gitlab.com/yawning/tuplehash v0.0.0-20230713102510-df83abbf9a02 // indirect go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/accounts/defaults/lockup/go.sum b/x/accounts/defaults/lockup/go.sum index a531f5c41ab8..b59c6def4d0a 100644 --- a/x/accounts/defaults/lockup/go.sum +++ b/x/accounts/defaults/lockup/go.sum @@ -482,8 +482,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -562,12 +562,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/accounts/go.mod b/x/accounts/go.mod index f8d31a21d34d..b2ca8c8b5592 100644 --- a/x/accounts/go.mod +++ b/x/accounts/go.mod @@ -153,13 +153,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/accounts/go.sum b/x/accounts/go.sum index a1234b701922..25290d157bef 100644 --- a/x/accounts/go.sum +++ b/x/accounts/go.sum @@ -507,8 +507,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -590,12 +590,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/auth/go.mod b/x/auth/go.mod index 9a2310f42393..8562bfda8b26 100644 --- a/x/auth/go.mod +++ b/x/auth/go.mod @@ -155,12 +155,12 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/auth/go.sum b/x/auth/go.sum index 153453d0e802..6a55b551b818 100644 --- a/x/auth/go.sum +++ b/x/auth/go.sum @@ -505,8 +505,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -588,12 +588,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/authz/go.mod b/x/authz/go.mod index 554a12cfd99e..d751919833e5 100644 --- a/x/authz/go.mod +++ b/x/authz/go.mod @@ -150,13 +150,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/authz/go.sum b/x/authz/go.sum index 153453d0e802..6a55b551b818 100644 --- a/x/authz/go.sum +++ b/x/authz/go.sum @@ -505,8 +505,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -588,12 +588,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/bank/go.mod b/x/bank/go.mod index 2b9e1f1cfe62..4aa7251c7041 100644 --- a/x/bank/go.mod +++ b/x/bank/go.mod @@ -149,13 +149,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/bank/go.sum b/x/bank/go.sum index 153453d0e802..6a55b551b818 100644 --- a/x/bank/go.sum +++ b/x/bank/go.sum @@ -505,8 +505,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -588,12 +588,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/circuit/go.mod b/x/circuit/go.mod index 7853c9d3f52d..4af9d344c44a 100644 --- a/x/circuit/go.mod +++ b/x/circuit/go.mod @@ -150,13 +150,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/circuit/go.sum b/x/circuit/go.sum index 67aa1b31cc92..9cea23da5e95 100644 --- a/x/circuit/go.sum +++ b/x/circuit/go.sum @@ -507,8 +507,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -590,12 +590,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/consensus/go.mod b/x/consensus/go.mod index 66bd812d0225..7d72583133d1 100644 --- a/x/consensus/go.mod +++ b/x/consensus/go.mod @@ -148,13 +148,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/consensus/go.sum b/x/consensus/go.sum index aa239110b9a6..e173e0113051 100644 --- a/x/consensus/go.sum +++ b/x/consensus/go.sum @@ -506,8 +506,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -587,12 +587,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/distribution/go.mod b/x/distribution/go.mod index 200b88b129d8..3f6acc7eda2c 100644 --- a/x/distribution/go.mod +++ b/x/distribution/go.mod @@ -155,13 +155,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/distribution/go.sum b/x/distribution/go.sum index 041175f77213..14f26e089dd9 100644 --- a/x/distribution/go.sum +++ b/x/distribution/go.sum @@ -507,8 +507,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -590,12 +590,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/epochs/go.mod b/x/epochs/go.mod index e2bbf5b35af6..ede8e5ccfc9c 100644 --- a/x/epochs/go.mod +++ b/x/epochs/go.mod @@ -145,13 +145,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/epochs/go.sum b/x/epochs/go.sum index aa239110b9a6..e173e0113051 100644 --- a/x/epochs/go.sum +++ b/x/epochs/go.sum @@ -506,8 +506,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -587,12 +587,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/evidence/go.mod b/x/evidence/go.mod index a5c4b9749f30..011e71716d8a 100644 --- a/x/evidence/go.mod +++ b/x/evidence/go.mod @@ -151,13 +151,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/evidence/go.sum b/x/evidence/go.sum index 67aa1b31cc92..9cea23da5e95 100644 --- a/x/evidence/go.sum +++ b/x/evidence/go.sum @@ -507,8 +507,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -590,12 +590,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/feegrant/go.mod b/x/feegrant/go.mod index b0fbeae2a16c..31b3629daf8b 100644 --- a/x/feegrant/go.mod +++ b/x/feegrant/go.mod @@ -155,13 +155,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/feegrant/go.sum b/x/feegrant/go.sum index 821584e4ef12..59a4832bba4a 100644 --- a/x/feegrant/go.sum +++ b/x/feegrant/go.sum @@ -515,8 +515,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -600,12 +600,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/gov/go.mod b/x/gov/go.mod index 5e770e8cd26d..9730ee3350ae 100644 --- a/x/gov/go.mod +++ b/x/gov/go.mod @@ -155,12 +155,12 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/gov/go.sum b/x/gov/go.sum index 2beb26d08975..6cf5f238d3d2 100644 --- a/x/gov/go.sum +++ b/x/gov/go.sum @@ -513,8 +513,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -598,12 +598,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/group/go.mod b/x/group/go.mod index be55278b52ff..37eccf21f606 100644 --- a/x/group/go.mod +++ b/x/group/go.mod @@ -162,12 +162,12 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/group/go.sum b/x/group/go.sum index 63afd05b8d0e..9887054997e1 100644 --- a/x/group/go.sum +++ b/x/group/go.sum @@ -519,8 +519,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -604,12 +604,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/mint/go.mod b/x/mint/go.mod index 3947437141ae..4e7a05b6ad20 100644 --- a/x/mint/go.mod +++ b/x/mint/go.mod @@ -140,13 +140,13 @@ require ( gitlab.com/yawning/tuplehash v0.0.0-20230713102510-df83abbf9a02 // indirect go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/mint/go.sum b/x/mint/go.sum index baa5d4c2a86b..4ec22d5ddd4e 100644 --- a/x/mint/go.sum +++ b/x/mint/go.sum @@ -509,8 +509,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -592,12 +592,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/nft/go.mod b/x/nft/go.mod index 2c6bc0be1015..4836516f8dbc 100644 --- a/x/nft/go.mod +++ b/x/nft/go.mod @@ -150,13 +150,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/nft/go.sum b/x/nft/go.sum index 67aa1b31cc92..9cea23da5e95 100644 --- a/x/nft/go.sum +++ b/x/nft/go.sum @@ -507,8 +507,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -590,12 +590,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/params/go.mod b/x/params/go.mod index 10a5ac955130..d06d3e6f0b6c 100644 --- a/x/params/go.mod +++ b/x/params/go.mod @@ -151,13 +151,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/params/go.sum b/x/params/go.sum index 67aa1b31cc92..9cea23da5e95 100644 --- a/x/params/go.sum +++ b/x/params/go.sum @@ -507,8 +507,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -590,12 +590,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/protocolpool/go.mod b/x/protocolpool/go.mod index 58be2b2ca19e..e48272258296 100644 --- a/x/protocolpool/go.mod +++ b/x/protocolpool/go.mod @@ -152,13 +152,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/protocolpool/go.sum b/x/protocolpool/go.sum index 67aa1b31cc92..9cea23da5e95 100644 --- a/x/protocolpool/go.sum +++ b/x/protocolpool/go.sum @@ -507,8 +507,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -590,12 +590,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/slashing/go.mod b/x/slashing/go.mod index 8ca9494512d3..43ffbe71354a 100644 --- a/x/slashing/go.mod +++ b/x/slashing/go.mod @@ -153,13 +153,13 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/slashing/go.sum b/x/slashing/go.sum index cd9403349eaa..4bca15775b26 100644 --- a/x/slashing/go.sum +++ b/x/slashing/go.sum @@ -509,8 +509,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -592,12 +592,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/staking/go.mod b/x/staking/go.mod index 7aa4d3ab46c4..a7ece3d42b25 100644 --- a/x/staking/go.mod +++ b/x/staking/go.mod @@ -139,12 +139,12 @@ require ( gitlab.com/yawning/tuplehash v0.0.0-20230713102510-df83abbf9a02 // indirect go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/x/staking/go.sum b/x/staking/go.sum index 153453d0e802..6a55b551b818 100644 --- a/x/staking/go.sum +++ b/x/staking/go.sum @@ -505,8 +505,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= @@ -588,12 +588,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/x/upgrade/go.mod b/x/upgrade/go.mod index e3d6e670acac..5183ae01f206 100644 --- a/x/upgrade/go.mod +++ b/x/upgrade/go.mod @@ -180,14 +180,14 @@ require ( go.opentelemetry.io/otel/metric v1.27.0 // indirect go.opentelemetry.io/otel/trace v1.27.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect diff --git a/x/upgrade/go.sum b/x/upgrade/go.sum index 7dde7b728ec9..0e652402effc 100644 --- a/x/upgrade/go.sum +++ b/x/upgrade/go.sum @@ -847,8 +847,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1068,13 +1068,13 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 356c67a6bcf4516a689528d34d38860fbbbbad51 Mon Sep 17 00:00:00 2001 From: krane <89357497+0xkrane@users.noreply.github.com> Date: Mon, 8 Jul 2024 13:50:33 +0400 Subject: [PATCH 14/17] docs: change deducted to deduced (#20898) --- docs/learn/beginner/04-gas-fees.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/beginner/04-gas-fees.md b/docs/learn/beginner/04-gas-fees.md index 086523b5ac60..783a2228b829 100644 --- a/docs/learn/beginner/04-gas-fees.md +++ b/docs/learn/beginner/04-gas-fees.md @@ -94,7 +94,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/proto/cosmos/tx/v1beta ``` * Verify signatures for each [`message`](../../build/building-modules/02-messages-and-queries.md#messages) contained in the transaction. Each `message` should be signed by one or multiple sender(s), and these signatures must be verified in the `anteHandler`. -* During `CheckTx`, verify that the gas prices provided with the transaction is greater than the local `min-gas-prices` (as a reminder, gas-prices can be deducted from the following equation: `fees = gas * gas-prices`). `min-gas-prices` is a parameter local to each full-node and used during `CheckTx` to discard transactions that do not provide a minimum amount of fees. This ensures that the mempool cannot be spammed with garbage transactions. +* During `CheckTx`, verify that the gas prices provided with the transaction is greater than the local `min-gas-prices` (as a reminder, gas-prices can be deduced from the following equation: `fees = gas * gas-prices`). `min-gas-prices` is a parameter local to each full-node and used during `CheckTx` to discard transactions that do not provide a minimum amount of fees. This ensures that the mempool cannot be spammed with garbage transactions. * Verify that the sender of the transaction has enough funds to cover for the `fees`. When the end-user generates a transaction, they must indicate 2 of the 3 following parameters (the third one being implicit): `fees`, `gas` and `gas-prices`. This signals how much they are willing to pay for nodes to execute their transaction. The provided `gas` value is stored in a parameter called `GasWanted` for later use. * Set `newCtx.GasMeter` to 0, with a limit of `GasWanted`. **This step is crucial**, as it not only makes sure the transaction cannot consume infinite gas, but also that `ctx.GasMeter` is reset in-between each transaction (`ctx` is set to `newCtx` after `anteHandler` is run, and the `anteHandler` is run each time a transactions executes). From 3ec041e5354eed7a2b415d15f1d536050ceeae2f Mon Sep 17 00:00:00 2001 From: GnaD <89174180+GNaD13@users.noreply.github.com> Date: Mon, 8 Jul 2024 19:04:04 +0700 Subject: [PATCH 15/17] fix(server/v2): Fix setup for testing TestServer (#20904) --- server/v2/testdata/app.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/v2/testdata/app.toml b/server/v2/testdata/app.toml index 512f0ce02033..34fb5b0b0239 100644 --- a/server/v2/testdata/app.toml +++ b/server/v2/testdata/app.toml @@ -1,4 +1,4 @@ -[grpc-server] +[grpc] # Enable defines if the gRPC server should be enabled. enable = true # Address defines the gRPC server address to bind to. From acfd1ac30a1b97f03189b1fc34315dea8e83e055 Mon Sep 17 00:00:00 2001 From: testinginprod <98415576+testinginprod@users.noreply.github.com> Date: Mon, 8 Jul 2024 16:15:17 +0200 Subject: [PATCH 16/17] refactor(auth): decouple auth from x/accounts account abstraction types (#20875) --- client/v2/go.mod | 1 - go.mod | 1 - server/v2/cometbft/go.mod | 1 - tests/e2e/accounts/base_account_test.go | 3 +-- tests/go.mod | 1 + tests/go.sum | 2 -- x/accounts/keeper_account_abstraction.go | 11 +++++++++-- x/auth/ante/sigverify.go | 24 ++++++++++++++---------- x/auth/go.mod | 1 - x/authz/go.mod | 1 - x/bank/go.mod | 1 - x/circuit/go.mod | 1 - x/consensus/go.mod | 1 - x/distribution/go.mod | 1 - x/epochs/go.mod | 1 - x/evidence/go.mod | 1 - x/feegrant/go.mod | 1 - x/gov/go.mod | 1 - x/mint/go.mod | 1 - x/nft/go.mod | 1 - x/params/go.mod | 1 - x/protocolpool/go.mod | 1 - x/slashing/go.mod | 1 - x/staking/go.mod | 1 - x/upgrade/go.mod | 1 - 25 files changed, 25 insertions(+), 36 deletions(-) diff --git a/client/v2/go.mod b/client/v2/go.mod index 8b8ad2fe1991..97c1c76d7852 100644 --- a/client/v2/go.mod +++ b/client/v2/go.mod @@ -30,7 +30,6 @@ require ( cosmossdk.io/log v1.3.1 // indirect cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 // indirect diff --git a/go.mod b/go.mod index 8527485c19e3..c78efc9c329e 100644 --- a/go.mod +++ b/go.mod @@ -69,7 +69,6 @@ require ( require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/DataDog/datadog-go v4.8.3+incompatible // indirect diff --git a/server/v2/cometbft/go.mod b/server/v2/cometbft/go.mod index b7b51b9287bf..6e3509c7c406 100644 --- a/server/v2/cometbft/go.mod +++ b/server/v2/cometbft/go.mod @@ -54,7 +54,6 @@ require ( cosmossdk.io/log v1.3.1 // indirect cosmossdk.io/math v1.3.0 // indirect cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/tx v0.13.3 // indirect diff --git a/tests/e2e/accounts/base_account_test.go b/tests/e2e/accounts/base_account_test.go index 64a6dff9a50a..fcd43e6940eb 100644 --- a/tests/e2e/accounts/base_account_test.go +++ b/tests/e2e/accounts/base_account_test.go @@ -43,9 +43,8 @@ func TestBaseAccount(t *testing.T) { func sendTx(t *testing.T, ctx sdk.Context, app *simapp.SimApp, sender []byte, msg sdk.Msg) { tx := sign(t, ctx, app, sender, privKey, msg) - res, _, err := app.SimDeliver(app.TxEncode, tx) + _, _, err := app.SimDeliver(app.TxEncode, tx) require.NoError(t, err) - t.Log(res) } func sign(t *testing.T, ctx sdk.Context, app *simapp.SimApp, from sdk.AccAddress, privKey cryptotypes.PrivKey, msg sdk.Msg) sdk.Tx { diff --git a/tests/go.mod b/tests/go.mod index efe255a58269..20ae5e3ae144 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -241,6 +241,7 @@ replace ( cosmossdk.io/core/testing => ../core/testing cosmossdk.io/depinject => ../depinject cosmossdk.io/log => ../log + cosmossdk.io/store => ../store cosmossdk.io/x/accounts => ../x/accounts cosmossdk.io/x/accounts/defaults/lockup => ../x/accounts/defaults/lockup cosmossdk.io/x/auth => ../x/auth diff --git a/tests/go.sum b/tests/go.sum index 17825fa82fc3..3070683b5280 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -196,8 +196,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/store v1.1.1-0.20240418092142-896cdf1971bc h1:R9O9d75e0qZYUsVV0zzi+D7cNLnX2JrUOQNoIPaF0Bg= -cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc/go.mod h1:amTTatOUV3u1PsKmNb87z6/galCxrRbz9kRdJkL0DyU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= diff --git a/x/accounts/keeper_account_abstraction.go b/x/accounts/keeper_account_abstraction.go index 377117db0f4b..47acac990d43 100644 --- a/x/accounts/keeper_account_abstraction.go +++ b/x/accounts/keeper_account_abstraction.go @@ -9,6 +9,7 @@ import ( aa_interface_v1 "cosmossdk.io/x/accounts/interfaces/account_abstraction/v1" "github.com/cosmos/cosmos-sdk/types/address" + "github.com/cosmos/cosmos-sdk/types/tx" ) var ( @@ -37,8 +38,14 @@ func (k Keeper) IsAbstractedAccount(ctx context.Context, addr []byte) (bool, err return impl.HasExec(&aa_interface_v1.MsgAuthenticate{}), nil } -func (k Keeper) AuthenticateAccount(ctx context.Context, addr []byte, msg *aa_interface_v1.MsgAuthenticate) error { - _, err := k.Execute(ctx, addr, address.Module("accounts"), msg, nil) +func (k Keeper) AuthenticateAccount(ctx context.Context, signer []byte, bundler string, rawTx *tx.TxRaw, protoTx *tx.Tx, signIndex uint32) error { + msg := &aa_interface_v1.MsgAuthenticate{ + Bundler: bundler, + RawTx: rawTx, + Tx: protoTx, + SignerIndex: signIndex, + } + _, err := k.Execute(ctx, signer, address.Module("accounts"), msg, nil) if err != nil { return fmt.Errorf("%w: %w", ErrAuthentication, err) } diff --git a/x/auth/ante/sigverify.go b/x/auth/ante/sigverify.go index 0f4e3999596d..c16ec1e40b5b 100644 --- a/x/auth/ante/sigverify.go +++ b/x/auth/ante/sigverify.go @@ -13,7 +13,6 @@ import ( "cosmossdk.io/core/transaction" errorsmod "cosmossdk.io/errors" storetypes "cosmossdk.io/store/types" - aa_interface_v1 "cosmossdk.io/x/accounts/interfaces/account_abstraction/v1" authsigning "cosmossdk.io/x/auth/signing" "cosmossdk.io/x/auth/types" txsigning "cosmossdk.io/x/tx/signing" @@ -52,7 +51,7 @@ type SignatureVerificationGasConsumer = func(meter storetypes.GasMeter, sig sign type AccountAbstractionKeeper interface { IsAbstractedAccount(ctx context.Context, addr []byte) (bool, error) - AuthenticateAccount(ctx context.Context, addr []byte, msg *aa_interface_v1.MsgAuthenticate) error + AuthenticateAccount(ctx context.Context, signer []byte, bundler string, rawTx *tx.TxRaw, protoTx *tx.Tx, signIndex uint32) error } // SigVerificationDecorator verifies all signatures for a tx and returns an @@ -434,16 +433,21 @@ func (svd SigVerificationDecorator) authenticateAbstractedAccount(ctx sdk.Contex } infoTx := authTx.(interface { - GetRawTx() *tx.TxRaw - GetProtoTx() *tx.Tx + AsTxRaw() (*tx.TxRaw, error) + AsTx() (*tx.Tx, error) }) - return svd.aaKeeper.AuthenticateAccount(ctx, signer, &aa_interface_v1.MsgAuthenticate{ - Bundler: selfBundler, - RawTx: infoTx.GetRawTx(), - Tx: infoTx.GetProtoTx(), - SignerIndex: uint32(index), - }) + txRaw, err := infoTx.AsTxRaw() + if err != nil { + return fmt.Errorf("unable to get raw tx: %w", err) + } + + protoTx, err := infoTx.AsTx() + if err != nil { + return fmt.Errorf("unable to get proto tx: %w", err) + } + + return svd.aaKeeper.AuthenticateAccount(ctx, signer, selfBundler, txRaw, protoTx, uint32(index)) } // ValidateSigCountDecorator takes in Params and returns errors if there are too many signatures in the tx for the given params diff --git a/x/auth/go.mod b/x/auth/go.mod index 8562bfda8b26..5546bd71de46 100644 --- a/x/auth/go.mod +++ b/x/auth/go.mod @@ -11,7 +11,6 @@ require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 cosmossdk.io/x/tx v0.13.3 github.com/cometbft/cometbft v1.0.0-rc1 diff --git a/x/authz/go.mod b/x/authz/go.mod index d751919833e5..f76a67cac84b 100644 --- a/x/authz/go.mod +++ b/x/authz/go.mod @@ -11,7 +11,6 @@ require ( cosmossdk.io/log v1.3.1 cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 cosmossdk.io/x/tx v0.13.3 diff --git a/x/bank/go.mod b/x/bank/go.mod index 4aa7251c7041..b6a0be5f191c 100644 --- a/x/bank/go.mod +++ b/x/bank/go.mod @@ -11,7 +11,6 @@ require ( cosmossdk.io/log v1.3.1 // indirect cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/cometbft/cometbft v1.0.0-rc1 github.com/cosmos/cosmos-proto v1.0.0-beta.5 diff --git a/x/circuit/go.mod b/x/circuit/go.mod index 4af9d344c44a..18714f7e8ac4 100644 --- a/x/circuit/go.mod +++ b/x/circuit/go.mod @@ -24,7 +24,6 @@ require ( buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect cosmossdk.io/log v1.3.1 // indirect cosmossdk.io/math v1.3.0 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 // indirect diff --git a/x/consensus/go.mod b/x/consensus/go.mod index 7d72583133d1..6adbd307ae80 100644 --- a/x/consensus/go.mod +++ b/x/consensus/go.mod @@ -26,7 +26,6 @@ require ( cosmossdk.io/errors v1.0.1 // indirect cosmossdk.io/log v1.3.1 // indirect cosmossdk.io/math v1.3.0 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 // indirect diff --git a/x/distribution/go.mod b/x/distribution/go.mod index 3f6acc7eda2c..8a0e9df7c681 100644 --- a/x/distribution/go.mod +++ b/x/distribution/go.mod @@ -38,7 +38,6 @@ require ( require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/tx v0.13.3 // indirect diff --git a/x/epochs/go.mod b/x/epochs/go.mod index ede8e5ccfc9c..7aaf3ebad844 100644 --- a/x/epochs/go.mod +++ b/x/epochs/go.mod @@ -23,7 +23,6 @@ require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect cosmossdk.io/math v1.3.0 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 // indirect diff --git a/x/evidence/go.mod b/x/evidence/go.mod index 011e71716d8a..2e45731e33c4 100644 --- a/x/evidence/go.mod +++ b/x/evidence/go.mod @@ -28,7 +28,6 @@ require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect cosmossdk.io/log v1.3.1 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 // indirect diff --git a/x/feegrant/go.mod b/x/feegrant/go.mod index 31b3629daf8b..0082f43338db 100644 --- a/x/feegrant/go.mod +++ b/x/feegrant/go.mod @@ -31,7 +31,6 @@ require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect cosmossdk.io/log v1.3.1 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 // indirect diff --git a/x/gov/go.mod b/x/gov/go.mod index 9730ee3350ae..92efbf8c3c80 100644 --- a/x/gov/go.mod +++ b/x/gov/go.mod @@ -12,7 +12,6 @@ require ( cosmossdk.io/log v1.3.1 // indirect cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect diff --git a/x/mint/go.mod b/x/mint/go.mod index 4e7a05b6ad20..f286acecd279 100644 --- a/x/mint/go.mod +++ b/x/mint/go.mod @@ -11,7 +11,6 @@ require ( cosmossdk.io/log v1.3.1 cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/epochs v0.0.0-20240522060652-a1ae4c3e0337 github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/cosmos/cosmos-proto v1.0.0-beta.5 diff --git a/x/nft/go.mod b/x/nft/go.mod index 4836516f8dbc..10037c6b0749 100644 --- a/x/nft/go.mod +++ b/x/nft/go.mod @@ -25,7 +25,6 @@ require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect cosmossdk.io/collections v0.4.0 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect diff --git a/x/params/go.mod b/x/params/go.mod index d06d3e6f0b6c..fc95311d927b 100644 --- a/x/params/go.mod +++ b/x/params/go.mod @@ -29,7 +29,6 @@ require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect cosmossdk.io/collections v0.4.0 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect diff --git a/x/protocolpool/go.mod b/x/protocolpool/go.mod index e48272258296..ec89c50376d1 100644 --- a/x/protocolpool/go.mod +++ b/x/protocolpool/go.mod @@ -28,7 +28,6 @@ require ( require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 // indirect diff --git a/x/slashing/go.mod b/x/slashing/go.mod index 43ffbe71354a..1d9ebe756497 100644 --- a/x/slashing/go.mod +++ b/x/slashing/go.mod @@ -30,7 +30,6 @@ require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.34.2-20240130113600-88ef6483f90f.2 // indirect cosmossdk.io/log v1.3.1 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/tx v0.13.3 // indirect diff --git a/x/staking/go.mod b/x/staking/go.mod index a7ece3d42b25..1d077317e32c 100644 --- a/x/staking/go.mod +++ b/x/staking/go.mod @@ -158,7 +158,6 @@ require ( require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.2-20240701160653-fedbb9acfd2f.2 // indirect cosmossdk.io/log v1.3.1 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 github.com/cosmos/crypto v0.1.1 // indirect github.com/dgraph-io/badger/v4 v4.2.0 // indirect diff --git a/x/upgrade/go.mod b/x/upgrade/go.mod index 5183ae01f206..11324a6d7465 100644 --- a/x/upgrade/go.mod +++ b/x/upgrade/go.mod @@ -44,7 +44,6 @@ require ( cloud.google.com/go/storage v1.42.0 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/math v1.3.0 // indirect - cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 // indirect cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/tx v0.13.3 // indirect From 25e99c54bac10e5680c25de7da38e1d5444907f9 Mon Sep 17 00:00:00 2001 From: Tuan Tran Date: Mon, 8 Jul 2024 21:21:07 +0700 Subject: [PATCH 17/17] chore(docs): comments should begin with the name of the thing being described (#20903) --- client/flags/flags.go | 4 ++-- client/rpc/tx.go | 2 +- crypto/hd/algo.go | 2 +- crypto/keyring/keyring.go | 2 +- crypto/keys/multisig/codec.go | 1 + 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/client/flags/flags.go b/client/flags/flags.go index 801b7f5796a8..ea8d5794d57f 100644 --- a/client/flags/flags.go +++ b/client/flags/flags.go @@ -18,7 +18,7 @@ const ( DefaultGasLimit = 200000 GasFlagAuto = "auto" - // DefaultKeyringBackend + // DefaultKeyringBackend defines the default keyring backend to be used DefaultKeyringBackend = keyring.BackendOS // BroadcastSync defines a tx broadcasting mode where the client waits for @@ -86,7 +86,7 @@ const ( // FlagOutput is the flag to set the output format. // This differs from FlagOutputDocument that is used to set the output file. FlagOutput = "output" - // Logging flags + // FlagLogLevel defines the flag for setting the log level FlagLogLevel = "log_level" FlagLogFormat = "log_format" FlagLogNoColor = "log_no_color" diff --git a/client/rpc/tx.go b/client/rpc/tx.go index f5de0dfb1d43..064859da8e67 100644 --- a/client/rpc/tx.go +++ b/client/rpc/tx.go @@ -94,7 +94,7 @@ func QueryEventForTxCmd() *cobra.Command { return WaitTxCmd() } -// WaitTx returns a CLI command that waits for a transaction with the given hash to be included in a block. +// WaitTxCmd returns a CLI command that waits for a transaction with the given hash to be included in a block. func WaitTxCmd() *cobra.Command { cmd := &cobra.Command{ Use: "wait-tx [hash]", diff --git a/crypto/hd/algo.go b/crypto/hd/algo.go index 32fb3af738fd..885490c811fd 100644 --- a/crypto/hd/algo.go +++ b/crypto/hd/algo.go @@ -19,7 +19,7 @@ const ( // Ed25519Type represents the Ed25519Type signature system. // It is currently not supported for end-user keys (wallets/ledgers). Ed25519Type = PubKeyType("ed25519") - // Ed25519Type represents the Ed25519Type signature system. + // Bls12_381Type represents the Bls12_381Type signature system. // It is currently not supported for end-user keys (wallets/ledgers). Bls12_381Type = PubKeyType("bls12_381") // Sr25519Type represents the Sr25519Type signature system. diff --git a/crypto/keyring/keyring.go b/crypto/keyring/keyring.go index c125383d543f..aee52a62563c 100644 --- a/crypto/keyring/keyring.go +++ b/crypto/keyring/keyring.go @@ -59,7 +59,7 @@ type Keyring interface { // Backend get the backend type used in the keyring config: "file", "os", "kwallet", "pass", "test", "memory". Backend() string - // Get the db keyring used in the keystore. + // DB get the db keyring used in the keystore. DB() keyring.Keyring // List all keys. diff --git a/crypto/keys/multisig/codec.go b/crypto/keys/multisig/codec.go index 47aa70060f7f..50877814e544 100644 --- a/crypto/keys/multisig/codec.go +++ b/crypto/keys/multisig/codec.go @@ -13,6 +13,7 @@ import ( // TODO: Figure out API for others to either add their own pubkey types, or // to make verify / marshal accept a AminoCdc. const ( + // PubKeyAminoRoute defines the amino route for a multisig threshold public key PubKeyAminoRoute = "tendermint/PubKeyMultisigThreshold" )