From ddeafadbac4ec04b3635548241ec394c83c6405c Mon Sep 17 00:00:00 2001 From: Marko Date: Mon, 16 Dec 2024 02:48:54 -0800 Subject: [PATCH] refactor(x/staking)!: removing unbonding queue index (#22795) (cherry picked from commit 234cdc45f2a87243f706c32e5f9ef8a635f36d25) # Conflicts: # api/cosmos/staking/v1beta1/staking.pulsar.go # tests/integration/staking/keeper/unbonding_test.go # x/staking/CHANGELOG.md # x/staking/testutil/expected_keepers_mocks.go # x/staking/types/staking.pb.go --- api/cosmos/staking/v1beta1/staking.pulsar.go | 16943 ++++++++++++++++ simapp/sim_test.go | 1 - .../staking/keeper/deterministic_test.go | 6 +- .../staking/keeper/msg_server_test.go | 1 - .../integration/staking/keeper/slash_test.go | 12 +- x/staking/CHANGELOG.md | 11 + x/staking/keeper/delegation.go | 50 +- x/staking/keeper/delegation_test.go | 30 +- x/staking/keeper/grpc_query.go | 1 - x/staking/keeper/keeper.go | 8 - x/staking/keeper/msg_server_test.go | 2 +- x/staking/keeper/slash.go | 4 +- x/staking/keeper/unbonding.go | 450 - x/staking/keeper/unbonding_test.go | 346 - x/staking/keeper/val_state_change.go | 15 - x/staking/keeper/validator.go | 21 +- x/staking/migrations/v6/keys.go | 3 + x/staking/migrations/v6/store.go | 3 + .../cosmos/staking/v1beta1/staking.proto | 2 +- x/staking/testutil/expected_keepers_mocks.go | 3 + x/staking/types/delegation.go | 46 +- x/staking/types/delegation_test.go | 14 +- x/staking/types/expected_keepers.go | 1 - x/staking/types/hooks.go | 9 - x/staking/types/keys.go | 4 - x/staking/types/staking.pb.go | 889 +- 26 files changed, 17902 insertions(+), 973 deletions(-) create mode 100644 api/cosmos/staking/v1beta1/staking.pulsar.go delete mode 100644 x/staking/keeper/unbonding.go delete mode 100644 x/staking/keeper/unbonding_test.go diff --git a/api/cosmos/staking/v1beta1/staking.pulsar.go b/api/cosmos/staking/v1beta1/staking.pulsar.go new file mode 100644 index 000000000000..1453eb53c79d --- /dev/null +++ b/api/cosmos/staking/v1beta1/staking.pulsar.go @@ -0,0 +1,16943 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package stakingv1beta1 + +import ( + v11 "buf.build/gen/go/cometbft/cometbft/protocolbuffers/go/cometbft/abci/v1" + v1 "buf.build/gen/go/cometbft/cometbft/protocolbuffers/go/cometbft/types/v1" + _ "cosmossdk.io/api/amino" + v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" + fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_HistoricalInfo_2_list)(nil) + +type _HistoricalInfo_2_list struct { + list *[]*Validator +} + +func (x *_HistoricalInfo_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_HistoricalInfo_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_HistoricalInfo_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Validator) + (*x.list)[i] = concreteValue +} + +func (x *_HistoricalInfo_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Validator) + *x.list = append(*x.list, concreteValue) +} + +func (x *_HistoricalInfo_2_list) AppendMutable() protoreflect.Value { + v := new(Validator) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_HistoricalInfo_2_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_HistoricalInfo_2_list) NewElement() protoreflect.Value { + v := new(Validator) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_HistoricalInfo_2_list) IsValid() bool { + return x.list != nil +} + +var ( + md_HistoricalInfo protoreflect.MessageDescriptor + fd_HistoricalInfo_header protoreflect.FieldDescriptor + fd_HistoricalInfo_valset protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_HistoricalInfo = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("HistoricalInfo") + fd_HistoricalInfo_header = md_HistoricalInfo.Fields().ByName("header") + fd_HistoricalInfo_valset = md_HistoricalInfo.Fields().ByName("valset") +} + +var _ protoreflect.Message = (*fastReflection_HistoricalInfo)(nil) + +type fastReflection_HistoricalInfo HistoricalInfo + +func (x *HistoricalInfo) ProtoReflect() protoreflect.Message { + return (*fastReflection_HistoricalInfo)(x) +} + +func (x *HistoricalInfo) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[0] + 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_HistoricalInfo_messageType fastReflection_HistoricalInfo_messageType +var _ protoreflect.MessageType = fastReflection_HistoricalInfo_messageType{} + +type fastReflection_HistoricalInfo_messageType struct{} + +func (x fastReflection_HistoricalInfo_messageType) Zero() protoreflect.Message { + return (*fastReflection_HistoricalInfo)(nil) +} +func (x fastReflection_HistoricalInfo_messageType) New() protoreflect.Message { + return new(fastReflection_HistoricalInfo) +} +func (x fastReflection_HistoricalInfo_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_HistoricalInfo +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_HistoricalInfo) Descriptor() protoreflect.MessageDescriptor { + return md_HistoricalInfo +} + +// 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_HistoricalInfo) Type() protoreflect.MessageType { + return _fastReflection_HistoricalInfo_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_HistoricalInfo) New() protoreflect.Message { + return new(fastReflection_HistoricalInfo) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_HistoricalInfo) Interface() protoreflect.ProtoMessage { + return (*HistoricalInfo)(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_HistoricalInfo) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Header != nil { + value := protoreflect.ValueOfMessage(x.Header.ProtoReflect()) + if !f(fd_HistoricalInfo_header, value) { + return + } + } + if len(x.Valset) != 0 { + value := protoreflect.ValueOfList(&_HistoricalInfo_2_list{list: &x.Valset}) + if !f(fd_HistoricalInfo_valset, 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_HistoricalInfo) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalInfo.header": + return x.Header != nil + case "cosmos.staking.v1beta1.HistoricalInfo.valset": + return len(x.Valset) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalInfo")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalInfo 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_HistoricalInfo) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalInfo.header": + x.Header = nil + case "cosmos.staking.v1beta1.HistoricalInfo.valset": + x.Valset = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalInfo")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalInfo 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_HistoricalInfo) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.HistoricalInfo.header": + value := x.Header + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.HistoricalInfo.valset": + if len(x.Valset) == 0 { + return protoreflect.ValueOfList(&_HistoricalInfo_2_list{}) + } + listValue := &_HistoricalInfo_2_list{list: &x.Valset} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalInfo")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalInfo 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_HistoricalInfo) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalInfo.header": + x.Header = value.Message().Interface().(*v1.Header) + case "cosmos.staking.v1beta1.HistoricalInfo.valset": + lv := value.List() + clv := lv.(*_HistoricalInfo_2_list) + x.Valset = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalInfo")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalInfo 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_HistoricalInfo) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalInfo.header": + if x.Header == nil { + x.Header = new(v1.Header) + } + return protoreflect.ValueOfMessage(x.Header.ProtoReflect()) + case "cosmos.staking.v1beta1.HistoricalInfo.valset": + if x.Valset == nil { + x.Valset = []*Validator{} + } + value := &_HistoricalInfo_2_list{list: &x.Valset} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalInfo")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalInfo 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_HistoricalInfo) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalInfo.header": + m := new(v1.Header) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.HistoricalInfo.valset": + list := []*Validator{} + return protoreflect.ValueOfList(&_HistoricalInfo_2_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalInfo")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalInfo 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_HistoricalInfo) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.HistoricalInfo", 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_HistoricalInfo) 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_HistoricalInfo) 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_HistoricalInfo) 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_HistoricalInfo) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*HistoricalInfo) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Header != nil { + l = options.Size(x.Header) + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Valset) > 0 { + for _, e := range x.Valset { + l = options.Size(e) + 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().(*HistoricalInfo) + 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.Valset) > 0 { + for iNdEx := len(x.Valset) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Valset[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + } + if x.Header != nil { + encoded, err := options.Marshal(x.Header) + 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] = 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().(*HistoricalInfo) + 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: HistoricalInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: HistoricalInfo: 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 Header", 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.Header == nil { + x.Header = &v1.Header{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Header); err != nil { + 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 Valset", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Valset = append(x.Valset, &Validator{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Valset[len(x.Valset)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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 + fd_CommissionRates_max_rate protoreflect.FieldDescriptor + fd_CommissionRates_max_change_rate protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_CommissionRates = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("CommissionRates") + fd_CommissionRates_rate = md_CommissionRates.Fields().ByName("rate") + fd_CommissionRates_max_rate = md_CommissionRates.Fields().ByName("max_rate") + fd_CommissionRates_max_change_rate = md_CommissionRates.Fields().ByName("max_change_rate") +} + +var _ protoreflect.Message = (*fastReflection_CommissionRates)(nil) + +type fastReflection_CommissionRates CommissionRates + +func (x *CommissionRates) ProtoReflect() protoreflect.Message { + return (*fastReflection_CommissionRates)(x) +} + +func (x *CommissionRates) 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_CommissionRates_messageType fastReflection_CommissionRates_messageType +var _ protoreflect.MessageType = fastReflection_CommissionRates_messageType{} + +type fastReflection_CommissionRates_messageType struct{} + +func (x fastReflection_CommissionRates_messageType) Zero() protoreflect.Message { + return (*fastReflection_CommissionRates)(nil) +} +func (x fastReflection_CommissionRates_messageType) New() protoreflect.Message { + return new(fastReflection_CommissionRates) +} +func (x fastReflection_CommissionRates_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_CommissionRates +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_CommissionRates) Descriptor() protoreflect.MessageDescriptor { + return md_CommissionRates +} + +// 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_CommissionRates) Type() protoreflect.MessageType { + return _fastReflection_CommissionRates_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_CommissionRates) New() protoreflect.Message { + return new(fastReflection_CommissionRates) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_CommissionRates) Interface() protoreflect.ProtoMessage { + return (*CommissionRates)(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_CommissionRates) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Rate != "" { + value := protoreflect.ValueOfString(x.Rate) + if !f(fd_CommissionRates_rate, value) { + return + } + } + if x.MaxRate != "" { + value := protoreflect.ValueOfString(x.MaxRate) + if !f(fd_CommissionRates_max_rate, value) { + return + } + } + if x.MaxChangeRate != "" { + value := protoreflect.ValueOfString(x.MaxChangeRate) + if !f(fd_CommissionRates_max_change_rate, 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_CommissionRates) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.CommissionRates.rate": + return x.Rate != "" + case "cosmos.staking.v1beta1.CommissionRates.max_rate": + return x.MaxRate != "" + case "cosmos.staking.v1beta1.CommissionRates.max_change_rate": + return x.MaxChangeRate != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.CommissionRates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.CommissionRates 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_CommissionRates) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.CommissionRates.rate": + x.Rate = "" + case "cosmos.staking.v1beta1.CommissionRates.max_rate": + x.MaxRate = "" + case "cosmos.staking.v1beta1.CommissionRates.max_change_rate": + x.MaxChangeRate = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.CommissionRates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.CommissionRates 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_CommissionRates) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.CommissionRates.rate": + value := x.Rate + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.CommissionRates.max_rate": + value := x.MaxRate + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.CommissionRates.max_change_rate": + value := x.MaxChangeRate + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.CommissionRates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.CommissionRates 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_CommissionRates) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.CommissionRates.rate": + x.Rate = value.Interface().(string) + case "cosmos.staking.v1beta1.CommissionRates.max_rate": + x.MaxRate = value.Interface().(string) + case "cosmos.staking.v1beta1.CommissionRates.max_change_rate": + x.MaxChangeRate = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.CommissionRates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.CommissionRates 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_CommissionRates) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.CommissionRates.rate": + panic(fmt.Errorf("field rate of message cosmos.staking.v1beta1.CommissionRates is not mutable")) + case "cosmos.staking.v1beta1.CommissionRates.max_rate": + panic(fmt.Errorf("field max_rate of message cosmos.staking.v1beta1.CommissionRates is not mutable")) + case "cosmos.staking.v1beta1.CommissionRates.max_change_rate": + panic(fmt.Errorf("field max_change_rate of message cosmos.staking.v1beta1.CommissionRates is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.CommissionRates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.CommissionRates 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_CommissionRates) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.CommissionRates.rate": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.CommissionRates.max_rate": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.CommissionRates.max_change_rate": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.CommissionRates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.CommissionRates 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_CommissionRates) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.CommissionRates", 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_CommissionRates) 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_CommissionRates) 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_CommissionRates) 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_CommissionRates) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*CommissionRates) + 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.Rate) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.MaxRate) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.MaxChangeRate) + 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().(*CommissionRates) + 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.MaxChangeRate) > 0 { + i -= len(x.MaxChangeRate) + copy(dAtA[i:], x.MaxChangeRate) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MaxChangeRate))) + i-- + dAtA[i] = 0x1a + } + if len(x.MaxRate) > 0 { + i -= len(x.MaxRate) + copy(dAtA[i:], x.MaxRate) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MaxRate))) + i-- + dAtA[i] = 0x12 + } + if len(x.Rate) > 0 { + i -= len(x.Rate) + copy(dAtA[i:], x.Rate) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Rate))) + 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().(*CommissionRates) + 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: CommissionRates: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: CommissionRates: 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 Rate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Rate = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MaxRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MaxRate = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MaxChangeRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MaxChangeRate = string(dAtA[iNdEx:postIndex]) + 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_Commission protoreflect.MessageDescriptor + fd_Commission_commission_rates protoreflect.FieldDescriptor + fd_Commission_update_time protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_Commission = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("Commission") + fd_Commission_commission_rates = md_Commission.Fields().ByName("commission_rates") + fd_Commission_update_time = md_Commission.Fields().ByName("update_time") +} + +var _ protoreflect.Message = (*fastReflection_Commission)(nil) + +type fastReflection_Commission Commission + +func (x *Commission) ProtoReflect() protoreflect.Message { + return (*fastReflection_Commission)(x) +} + +func (x *Commission) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Commission_messageType fastReflection_Commission_messageType +var _ protoreflect.MessageType = fastReflection_Commission_messageType{} + +type fastReflection_Commission_messageType struct{} + +func (x fastReflection_Commission_messageType) Zero() protoreflect.Message { + return (*fastReflection_Commission)(nil) +} +func (x fastReflection_Commission_messageType) New() protoreflect.Message { + return new(fastReflection_Commission) +} +func (x fastReflection_Commission_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Commission +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Commission) Descriptor() protoreflect.MessageDescriptor { + return md_Commission +} + +// 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_Commission) Type() protoreflect.MessageType { + return _fastReflection_Commission_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Commission) New() protoreflect.Message { + return new(fastReflection_Commission) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Commission) Interface() protoreflect.ProtoMessage { + return (*Commission)(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_Commission) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.CommissionRates != nil { + value := protoreflect.ValueOfMessage(x.CommissionRates.ProtoReflect()) + if !f(fd_Commission_commission_rates, value) { + return + } + } + if x.UpdateTime != nil { + value := protoreflect.ValueOfMessage(x.UpdateTime.ProtoReflect()) + if !f(fd_Commission_update_time, 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_Commission) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Commission.commission_rates": + return x.CommissionRates != nil + case "cosmos.staking.v1beta1.Commission.update_time": + return x.UpdateTime != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Commission")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Commission 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_Commission) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Commission.commission_rates": + x.CommissionRates = nil + case "cosmos.staking.v1beta1.Commission.update_time": + x.UpdateTime = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Commission")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Commission 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_Commission) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.Commission.commission_rates": + value := x.CommissionRates + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.Commission.update_time": + value := x.UpdateTime + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Commission")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Commission 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_Commission) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Commission.commission_rates": + x.CommissionRates = value.Message().Interface().(*CommissionRates) + case "cosmos.staking.v1beta1.Commission.update_time": + x.UpdateTime = value.Message().Interface().(*timestamppb.Timestamp) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Commission")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Commission 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_Commission) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Commission.commission_rates": + if x.CommissionRates == nil { + x.CommissionRates = new(CommissionRates) + } + return protoreflect.ValueOfMessage(x.CommissionRates.ProtoReflect()) + case "cosmos.staking.v1beta1.Commission.update_time": + if x.UpdateTime == nil { + x.UpdateTime = new(timestamppb.Timestamp) + } + return protoreflect.ValueOfMessage(x.UpdateTime.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Commission")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Commission 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_Commission) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Commission.commission_rates": + m := new(CommissionRates) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.Commission.update_time": + m := new(timestamppb.Timestamp) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Commission")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Commission 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_Commission) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.Commission", 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_Commission) 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_Commission) 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_Commission) 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_Commission) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Commission) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.CommissionRates != nil { + l = options.Size(x.CommissionRates) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.UpdateTime != nil { + l = options.Size(x.UpdateTime) + 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().(*Commission) + 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 x.UpdateTime != nil { + encoded, err := options.Marshal(x.UpdateTime) + 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.CommissionRates != nil { + encoded, err := options.Marshal(x.CommissionRates) + 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] = 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().(*Commission) + 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: Commission: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Commission: 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 CommissionRates", 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.CommissionRates == nil { + x.CommissionRates = &CommissionRates{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.CommissionRates); err != nil { + 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 UpdateTime", 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.UpdateTime == nil { + x.UpdateTime = ×tamppb.Timestamp{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.UpdateTime); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_Description protoreflect.MessageDescriptor + fd_Description_moniker protoreflect.FieldDescriptor + fd_Description_identity protoreflect.FieldDescriptor + fd_Description_website protoreflect.FieldDescriptor + fd_Description_security_contact protoreflect.FieldDescriptor + fd_Description_details protoreflect.FieldDescriptor + fd_Description_metadata protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_Description = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("Description") + fd_Description_moniker = md_Description.Fields().ByName("moniker") + fd_Description_identity = md_Description.Fields().ByName("identity") + fd_Description_website = md_Description.Fields().ByName("website") + fd_Description_security_contact = md_Description.Fields().ByName("security_contact") + fd_Description_details = md_Description.Fields().ByName("details") + fd_Description_metadata = md_Description.Fields().ByName("metadata") +} + +var _ protoreflect.Message = (*fastReflection_Description)(nil) + +type fastReflection_Description Description + +func (x *Description) ProtoReflect() protoreflect.Message { + return (*fastReflection_Description)(x) +} + +func (x *Description) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Description_messageType fastReflection_Description_messageType +var _ protoreflect.MessageType = fastReflection_Description_messageType{} + +type fastReflection_Description_messageType struct{} + +func (x fastReflection_Description_messageType) Zero() protoreflect.Message { + return (*fastReflection_Description)(nil) +} +func (x fastReflection_Description_messageType) New() protoreflect.Message { + return new(fastReflection_Description) +} +func (x fastReflection_Description_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Description +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Description) Descriptor() protoreflect.MessageDescriptor { + return md_Description +} + +// 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_Description) Type() protoreflect.MessageType { + return _fastReflection_Description_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Description) New() protoreflect.Message { + return new(fastReflection_Description) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Description) Interface() protoreflect.ProtoMessage { + return (*Description)(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_Description) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Moniker != "" { + value := protoreflect.ValueOfString(x.Moniker) + if !f(fd_Description_moniker, value) { + return + } + } + if x.Identity != "" { + value := protoreflect.ValueOfString(x.Identity) + if !f(fd_Description_identity, value) { + return + } + } + if x.Website != "" { + value := protoreflect.ValueOfString(x.Website) + if !f(fd_Description_website, value) { + return + } + } + if x.SecurityContact != "" { + value := protoreflect.ValueOfString(x.SecurityContact) + if !f(fd_Description_security_contact, value) { + return + } + } + if x.Details != "" { + value := protoreflect.ValueOfString(x.Details) + if !f(fd_Description_details, value) { + return + } + } + if x.Metadata != nil { + value := protoreflect.ValueOfMessage(x.Metadata.ProtoReflect()) + if !f(fd_Description_metadata, 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_Description) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Description.moniker": + return x.Moniker != "" + case "cosmos.staking.v1beta1.Description.identity": + return x.Identity != "" + case "cosmos.staking.v1beta1.Description.website": + return x.Website != "" + case "cosmos.staking.v1beta1.Description.security_contact": + return x.SecurityContact != "" + case "cosmos.staking.v1beta1.Description.details": + return x.Details != "" + case "cosmos.staking.v1beta1.Description.metadata": + return x.Metadata != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Description")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Description 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_Description) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Description.moniker": + x.Moniker = "" + case "cosmos.staking.v1beta1.Description.identity": + x.Identity = "" + case "cosmos.staking.v1beta1.Description.website": + x.Website = "" + case "cosmos.staking.v1beta1.Description.security_contact": + x.SecurityContact = "" + case "cosmos.staking.v1beta1.Description.details": + x.Details = "" + case "cosmos.staking.v1beta1.Description.metadata": + x.Metadata = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Description")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Description 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_Description) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.Description.moniker": + value := x.Moniker + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Description.identity": + value := x.Identity + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Description.website": + value := x.Website + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Description.security_contact": + value := x.SecurityContact + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Description.details": + value := x.Details + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Description.metadata": + value := x.Metadata + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Description")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Description 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_Description) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Description.moniker": + x.Moniker = value.Interface().(string) + case "cosmos.staking.v1beta1.Description.identity": + x.Identity = value.Interface().(string) + case "cosmos.staking.v1beta1.Description.website": + x.Website = value.Interface().(string) + case "cosmos.staking.v1beta1.Description.security_contact": + x.SecurityContact = value.Interface().(string) + case "cosmos.staking.v1beta1.Description.details": + x.Details = value.Interface().(string) + case "cosmos.staking.v1beta1.Description.metadata": + x.Metadata = value.Message().Interface().(*Metadata) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Description")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Description 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_Description) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Description.metadata": + if x.Metadata == nil { + x.Metadata = new(Metadata) + } + return protoreflect.ValueOfMessage(x.Metadata.ProtoReflect()) + case "cosmos.staking.v1beta1.Description.moniker": + panic(fmt.Errorf("field moniker of message cosmos.staking.v1beta1.Description is not mutable")) + case "cosmos.staking.v1beta1.Description.identity": + panic(fmt.Errorf("field identity of message cosmos.staking.v1beta1.Description is not mutable")) + case "cosmos.staking.v1beta1.Description.website": + panic(fmt.Errorf("field website of message cosmos.staking.v1beta1.Description is not mutable")) + case "cosmos.staking.v1beta1.Description.security_contact": + panic(fmt.Errorf("field security_contact of message cosmos.staking.v1beta1.Description is not mutable")) + case "cosmos.staking.v1beta1.Description.details": + panic(fmt.Errorf("field details of message cosmos.staking.v1beta1.Description is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Description")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Description 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_Description) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Description.moniker": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Description.identity": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Description.website": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Description.security_contact": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Description.details": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Description.metadata": + m := new(Metadata) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Description")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Description 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_Description) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.Description", 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_Description) 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_Description) 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_Description) 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_Description) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Description) + 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.Moniker) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Identity) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Website) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.SecurityContact) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Details) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Metadata != nil { + l = options.Size(x.Metadata) + 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().(*Description) + 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 x.Metadata != nil { + encoded, err := options.Marshal(x.Metadata) + 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] = 0x32 + } + if len(x.Details) > 0 { + i -= len(x.Details) + copy(dAtA[i:], x.Details) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Details))) + i-- + dAtA[i] = 0x2a + } + if len(x.SecurityContact) > 0 { + i -= len(x.SecurityContact) + copy(dAtA[i:], x.SecurityContact) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.SecurityContact))) + i-- + dAtA[i] = 0x22 + } + if len(x.Website) > 0 { + i -= len(x.Website) + copy(dAtA[i:], x.Website) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Website))) + i-- + dAtA[i] = 0x1a + } + if len(x.Identity) > 0 { + i -= len(x.Identity) + copy(dAtA[i:], x.Identity) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Identity))) + i-- + dAtA[i] = 0x12 + } + if len(x.Moniker) > 0 { + i -= len(x.Moniker) + copy(dAtA[i:], x.Moniker) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Moniker))) + 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().(*Description) + 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: Description: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Description: 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 Moniker", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Moniker = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Identity", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Identity = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Website", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Website = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SecurityContact", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.SecurityContact = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Details", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Details = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Metadata", 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.Metadata == nil { + x.Metadata = &Metadata{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Metadata); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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 _ protoreflect.List = (*_Metadata_2_list)(nil) + +type _Metadata_2_list struct { + list *[]string +} + +func (x *_Metadata_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Metadata_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_Metadata_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Metadata_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Metadata_2_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Metadata at list field SocialHandleUris as it is not of Message kind")) +} + +func (x *_Metadata_2_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Metadata_2_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_Metadata_2_list) IsValid() bool { + return x.list != nil +} + +var ( + md_Metadata protoreflect.MessageDescriptor + fd_Metadata_profile_pic_uri protoreflect.FieldDescriptor + fd_Metadata_social_handle_uris protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_Metadata = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("Metadata") + fd_Metadata_profile_pic_uri = md_Metadata.Fields().ByName("profile_pic_uri") + fd_Metadata_social_handle_uris = md_Metadata.Fields().ByName("social_handle_uris") +} + +var _ protoreflect.Message = (*fastReflection_Metadata)(nil) + +type fastReflection_Metadata Metadata + +func (x *Metadata) ProtoReflect() protoreflect.Message { + return (*fastReflection_Metadata)(x) +} + +func (x *Metadata) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Metadata_messageType fastReflection_Metadata_messageType +var _ protoreflect.MessageType = fastReflection_Metadata_messageType{} + +type fastReflection_Metadata_messageType struct{} + +func (x fastReflection_Metadata_messageType) Zero() protoreflect.Message { + return (*fastReflection_Metadata)(nil) +} +func (x fastReflection_Metadata_messageType) New() protoreflect.Message { + return new(fastReflection_Metadata) +} +func (x fastReflection_Metadata_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Metadata +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Metadata) Descriptor() protoreflect.MessageDescriptor { + return md_Metadata +} + +// 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_Metadata) Type() protoreflect.MessageType { + return _fastReflection_Metadata_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Metadata) New() protoreflect.Message { + return new(fastReflection_Metadata) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Metadata) Interface() protoreflect.ProtoMessage { + return (*Metadata)(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_Metadata) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.ProfilePicUri != "" { + value := protoreflect.ValueOfString(x.ProfilePicUri) + if !f(fd_Metadata_profile_pic_uri, value) { + return + } + } + if len(x.SocialHandleUris) != 0 { + value := protoreflect.ValueOfList(&_Metadata_2_list{list: &x.SocialHandleUris}) + if !f(fd_Metadata_social_handle_uris, 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_Metadata) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Metadata.profile_pic_uri": + return x.ProfilePicUri != "" + case "cosmos.staking.v1beta1.Metadata.social_handle_uris": + return len(x.SocialHandleUris) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Metadata")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Metadata 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_Metadata) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Metadata.profile_pic_uri": + x.ProfilePicUri = "" + case "cosmos.staking.v1beta1.Metadata.social_handle_uris": + x.SocialHandleUris = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Metadata")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Metadata 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_Metadata) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.Metadata.profile_pic_uri": + value := x.ProfilePicUri + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Metadata.social_handle_uris": + if len(x.SocialHandleUris) == 0 { + return protoreflect.ValueOfList(&_Metadata_2_list{}) + } + listValue := &_Metadata_2_list{list: &x.SocialHandleUris} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Metadata")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Metadata 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_Metadata) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Metadata.profile_pic_uri": + x.ProfilePicUri = value.Interface().(string) + case "cosmos.staking.v1beta1.Metadata.social_handle_uris": + lv := value.List() + clv := lv.(*_Metadata_2_list) + x.SocialHandleUris = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Metadata")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Metadata 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_Metadata) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Metadata.social_handle_uris": + if x.SocialHandleUris == nil { + x.SocialHandleUris = []string{} + } + value := &_Metadata_2_list{list: &x.SocialHandleUris} + return protoreflect.ValueOfList(value) + case "cosmos.staking.v1beta1.Metadata.profile_pic_uri": + panic(fmt.Errorf("field profile_pic_uri of message cosmos.staking.v1beta1.Metadata is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Metadata")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Metadata 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_Metadata) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Metadata.profile_pic_uri": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Metadata.social_handle_uris": + list := []string{} + return protoreflect.ValueOfList(&_Metadata_2_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Metadata")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Metadata 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_Metadata) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.Metadata", 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_Metadata) 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_Metadata) 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_Metadata) 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_Metadata) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Metadata) + 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.ProfilePicUri) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.SocialHandleUris) > 0 { + for _, s := range x.SocialHandleUris { + l = len(s) + 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().(*Metadata) + 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.SocialHandleUris) > 0 { + for iNdEx := len(x.SocialHandleUris) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.SocialHandleUris[iNdEx]) + copy(dAtA[i:], x.SocialHandleUris[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.SocialHandleUris[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(x.ProfilePicUri) > 0 { + i -= len(x.ProfilePicUri) + copy(dAtA[i:], x.ProfilePicUri) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ProfilePicUri))) + 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().(*Metadata) + 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: Metadata: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Metadata: 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 ProfilePicUri", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ProfilePicUri = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SocialHandleUris", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.SocialHandleUris = append(x.SocialHandleUris, string(dAtA[iNdEx:postIndex])) + 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 _ protoreflect.List = (*_Validator_13_list)(nil) + +type _Validator_13_list struct { + list *[]uint64 +} + +func (x *_Validator_13_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Validator_13_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfUint64((*x.list)[i]) +} + +func (x *_Validator_13_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Validator_13_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Validator_13_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Validator at list field UnbondingIds as it is not of Message kind")) +} + +func (x *_Validator_13_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Validator_13_list) NewElement() protoreflect.Value { + v := uint64(0) + return protoreflect.ValueOfUint64(v) +} + +func (x *_Validator_13_list) IsValid() bool { + return x.list != nil +} + +var ( + md_Validator protoreflect.MessageDescriptor + fd_Validator_operator_address protoreflect.FieldDescriptor + fd_Validator_consensus_pubkey protoreflect.FieldDescriptor + fd_Validator_jailed protoreflect.FieldDescriptor + fd_Validator_status protoreflect.FieldDescriptor + fd_Validator_tokens protoreflect.FieldDescriptor + fd_Validator_delegator_shares protoreflect.FieldDescriptor + fd_Validator_description protoreflect.FieldDescriptor + fd_Validator_unbonding_height protoreflect.FieldDescriptor + fd_Validator_unbonding_time protoreflect.FieldDescriptor + fd_Validator_commission protoreflect.FieldDescriptor + fd_Validator_min_self_delegation protoreflect.FieldDescriptor + fd_Validator_unbonding_on_hold_ref_count protoreflect.FieldDescriptor + fd_Validator_unbonding_ids protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_Validator = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("Validator") + fd_Validator_operator_address = md_Validator.Fields().ByName("operator_address") + fd_Validator_consensus_pubkey = md_Validator.Fields().ByName("consensus_pubkey") + fd_Validator_jailed = md_Validator.Fields().ByName("jailed") + fd_Validator_status = md_Validator.Fields().ByName("status") + fd_Validator_tokens = md_Validator.Fields().ByName("tokens") + fd_Validator_delegator_shares = md_Validator.Fields().ByName("delegator_shares") + fd_Validator_description = md_Validator.Fields().ByName("description") + fd_Validator_unbonding_height = md_Validator.Fields().ByName("unbonding_height") + fd_Validator_unbonding_time = md_Validator.Fields().ByName("unbonding_time") + fd_Validator_commission = md_Validator.Fields().ByName("commission") + fd_Validator_min_self_delegation = md_Validator.Fields().ByName("min_self_delegation") + fd_Validator_unbonding_on_hold_ref_count = md_Validator.Fields().ByName("unbonding_on_hold_ref_count") + fd_Validator_unbonding_ids = md_Validator.Fields().ByName("unbonding_ids") +} + +var _ protoreflect.Message = (*fastReflection_Validator)(nil) + +type fastReflection_Validator Validator + +func (x *Validator) ProtoReflect() protoreflect.Message { + return (*fastReflection_Validator)(x) +} + +func (x *Validator) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Validator_messageType fastReflection_Validator_messageType +var _ protoreflect.MessageType = fastReflection_Validator_messageType{} + +type fastReflection_Validator_messageType struct{} + +func (x fastReflection_Validator_messageType) Zero() protoreflect.Message { + return (*fastReflection_Validator)(nil) +} +func (x fastReflection_Validator_messageType) New() protoreflect.Message { + return new(fastReflection_Validator) +} +func (x fastReflection_Validator_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Validator +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Validator) Descriptor() protoreflect.MessageDescriptor { + return md_Validator +} + +// 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_Validator) Type() protoreflect.MessageType { + return _fastReflection_Validator_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Validator) New() protoreflect.Message { + return new(fastReflection_Validator) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Validator) Interface() protoreflect.ProtoMessage { + return (*Validator)(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_Validator) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.OperatorAddress != "" { + value := protoreflect.ValueOfString(x.OperatorAddress) + if !f(fd_Validator_operator_address, value) { + return + } + } + if x.ConsensusPubkey != nil { + value := protoreflect.ValueOfMessage(x.ConsensusPubkey.ProtoReflect()) + if !f(fd_Validator_consensus_pubkey, value) { + return + } + } + if x.Jailed != false { + value := protoreflect.ValueOfBool(x.Jailed) + if !f(fd_Validator_jailed, value) { + return + } + } + if x.Status != 0 { + value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Status)) + if !f(fd_Validator_status, value) { + return + } + } + if x.Tokens != "" { + value := protoreflect.ValueOfString(x.Tokens) + if !f(fd_Validator_tokens, value) { + return + } + } + if x.DelegatorShares != "" { + value := protoreflect.ValueOfString(x.DelegatorShares) + if !f(fd_Validator_delegator_shares, value) { + return + } + } + if x.Description != nil { + value := protoreflect.ValueOfMessage(x.Description.ProtoReflect()) + if !f(fd_Validator_description, value) { + return + } + } + if x.UnbondingHeight != int64(0) { + value := protoreflect.ValueOfInt64(x.UnbondingHeight) + if !f(fd_Validator_unbonding_height, value) { + return + } + } + if x.UnbondingTime != nil { + value := protoreflect.ValueOfMessage(x.UnbondingTime.ProtoReflect()) + if !f(fd_Validator_unbonding_time, value) { + return + } + } + if x.Commission != nil { + value := protoreflect.ValueOfMessage(x.Commission.ProtoReflect()) + if !f(fd_Validator_commission, value) { + return + } + } + if x.MinSelfDelegation != "" { + value := protoreflect.ValueOfString(x.MinSelfDelegation) + if !f(fd_Validator_min_self_delegation, value) { + return + } + } + if x.UnbondingOnHoldRefCount != int64(0) { + value := protoreflect.ValueOfInt64(x.UnbondingOnHoldRefCount) + if !f(fd_Validator_unbonding_on_hold_ref_count, value) { + return + } + } + if len(x.UnbondingIds) != 0 { + value := protoreflect.ValueOfList(&_Validator_13_list{list: &x.UnbondingIds}) + if !f(fd_Validator_unbonding_ids, 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_Validator) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Validator.operator_address": + return x.OperatorAddress != "" + case "cosmos.staking.v1beta1.Validator.consensus_pubkey": + return x.ConsensusPubkey != nil + case "cosmos.staking.v1beta1.Validator.jailed": + return x.Jailed != false + case "cosmos.staking.v1beta1.Validator.status": + return x.Status != 0 + case "cosmos.staking.v1beta1.Validator.tokens": + return x.Tokens != "" + case "cosmos.staking.v1beta1.Validator.delegator_shares": + return x.DelegatorShares != "" + case "cosmos.staking.v1beta1.Validator.description": + return x.Description != nil + case "cosmos.staking.v1beta1.Validator.unbonding_height": + return x.UnbondingHeight != int64(0) + case "cosmos.staking.v1beta1.Validator.unbonding_time": + return x.UnbondingTime != nil + case "cosmos.staking.v1beta1.Validator.commission": + return x.Commission != nil + case "cosmos.staking.v1beta1.Validator.min_self_delegation": + return x.MinSelfDelegation != "" + case "cosmos.staking.v1beta1.Validator.unbonding_on_hold_ref_count": + return x.UnbondingOnHoldRefCount != int64(0) + case "cosmos.staking.v1beta1.Validator.unbonding_ids": + return len(x.UnbondingIds) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Validator")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Validator 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_Validator) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Validator.operator_address": + x.OperatorAddress = "" + case "cosmos.staking.v1beta1.Validator.consensus_pubkey": + x.ConsensusPubkey = nil + case "cosmos.staking.v1beta1.Validator.jailed": + x.Jailed = false + case "cosmos.staking.v1beta1.Validator.status": + x.Status = 0 + case "cosmos.staking.v1beta1.Validator.tokens": + x.Tokens = "" + case "cosmos.staking.v1beta1.Validator.delegator_shares": + x.DelegatorShares = "" + case "cosmos.staking.v1beta1.Validator.description": + x.Description = nil + case "cosmos.staking.v1beta1.Validator.unbonding_height": + x.UnbondingHeight = int64(0) + case "cosmos.staking.v1beta1.Validator.unbonding_time": + x.UnbondingTime = nil + case "cosmos.staking.v1beta1.Validator.commission": + x.Commission = nil + case "cosmos.staking.v1beta1.Validator.min_self_delegation": + x.MinSelfDelegation = "" + case "cosmos.staking.v1beta1.Validator.unbonding_on_hold_ref_count": + x.UnbondingOnHoldRefCount = int64(0) + case "cosmos.staking.v1beta1.Validator.unbonding_ids": + x.UnbondingIds = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Validator")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Validator 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_Validator) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.Validator.operator_address": + value := x.OperatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Validator.consensus_pubkey": + value := x.ConsensusPubkey + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.jailed": + value := x.Jailed + return protoreflect.ValueOfBool(value) + case "cosmos.staking.v1beta1.Validator.status": + value := x.Status + return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value)) + case "cosmos.staking.v1beta1.Validator.tokens": + value := x.Tokens + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Validator.delegator_shares": + value := x.DelegatorShares + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Validator.description": + value := x.Description + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.unbonding_height": + value := x.UnbondingHeight + return protoreflect.ValueOfInt64(value) + case "cosmos.staking.v1beta1.Validator.unbonding_time": + value := x.UnbondingTime + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.commission": + value := x.Commission + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.min_self_delegation": + value := x.MinSelfDelegation + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Validator.unbonding_on_hold_ref_count": + value := x.UnbondingOnHoldRefCount + return protoreflect.ValueOfInt64(value) + case "cosmos.staking.v1beta1.Validator.unbonding_ids": + if len(x.UnbondingIds) == 0 { + return protoreflect.ValueOfList(&_Validator_13_list{}) + } + listValue := &_Validator_13_list{list: &x.UnbondingIds} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Validator")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Validator 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_Validator) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Validator.operator_address": + x.OperatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.Validator.consensus_pubkey": + x.ConsensusPubkey = value.Message().Interface().(*anypb.Any) + case "cosmos.staking.v1beta1.Validator.jailed": + x.Jailed = value.Bool() + case "cosmos.staking.v1beta1.Validator.status": + x.Status = (BondStatus)(value.Enum()) + case "cosmos.staking.v1beta1.Validator.tokens": + x.Tokens = value.Interface().(string) + case "cosmos.staking.v1beta1.Validator.delegator_shares": + x.DelegatorShares = value.Interface().(string) + case "cosmos.staking.v1beta1.Validator.description": + x.Description = value.Message().Interface().(*Description) + case "cosmos.staking.v1beta1.Validator.unbonding_height": + x.UnbondingHeight = value.Int() + case "cosmos.staking.v1beta1.Validator.unbonding_time": + x.UnbondingTime = value.Message().Interface().(*timestamppb.Timestamp) + case "cosmos.staking.v1beta1.Validator.commission": + x.Commission = value.Message().Interface().(*Commission) + case "cosmos.staking.v1beta1.Validator.min_self_delegation": + x.MinSelfDelegation = value.Interface().(string) + case "cosmos.staking.v1beta1.Validator.unbonding_on_hold_ref_count": + x.UnbondingOnHoldRefCount = value.Int() + case "cosmos.staking.v1beta1.Validator.unbonding_ids": + lv := value.List() + clv := lv.(*_Validator_13_list) + x.UnbondingIds = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Validator")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Validator 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_Validator) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Validator.consensus_pubkey": + if x.ConsensusPubkey == nil { + x.ConsensusPubkey = new(anypb.Any) + } + return protoreflect.ValueOfMessage(x.ConsensusPubkey.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.description": + if x.Description == nil { + x.Description = new(Description) + } + return protoreflect.ValueOfMessage(x.Description.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.unbonding_time": + if x.UnbondingTime == nil { + x.UnbondingTime = new(timestamppb.Timestamp) + } + return protoreflect.ValueOfMessage(x.UnbondingTime.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.commission": + if x.Commission == nil { + x.Commission = new(Commission) + } + return protoreflect.ValueOfMessage(x.Commission.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.unbonding_ids": + if x.UnbondingIds == nil { + x.UnbondingIds = []uint64{} + } + value := &_Validator_13_list{list: &x.UnbondingIds} + return protoreflect.ValueOfList(value) + case "cosmos.staking.v1beta1.Validator.operator_address": + panic(fmt.Errorf("field operator_address of message cosmos.staking.v1beta1.Validator is not mutable")) + case "cosmos.staking.v1beta1.Validator.jailed": + panic(fmt.Errorf("field jailed of message cosmos.staking.v1beta1.Validator is not mutable")) + case "cosmos.staking.v1beta1.Validator.status": + panic(fmt.Errorf("field status of message cosmos.staking.v1beta1.Validator is not mutable")) + case "cosmos.staking.v1beta1.Validator.tokens": + panic(fmt.Errorf("field tokens of message cosmos.staking.v1beta1.Validator is not mutable")) + case "cosmos.staking.v1beta1.Validator.delegator_shares": + panic(fmt.Errorf("field delegator_shares of message cosmos.staking.v1beta1.Validator is not mutable")) + case "cosmos.staking.v1beta1.Validator.unbonding_height": + panic(fmt.Errorf("field unbonding_height of message cosmos.staking.v1beta1.Validator is not mutable")) + case "cosmos.staking.v1beta1.Validator.min_self_delegation": + panic(fmt.Errorf("field min_self_delegation of message cosmos.staking.v1beta1.Validator is not mutable")) + case "cosmos.staking.v1beta1.Validator.unbonding_on_hold_ref_count": + panic(fmt.Errorf("field unbonding_on_hold_ref_count of message cosmos.staking.v1beta1.Validator is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Validator")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Validator 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_Validator) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Validator.operator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Validator.consensus_pubkey": + m := new(anypb.Any) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.jailed": + return protoreflect.ValueOfBool(false) + case "cosmos.staking.v1beta1.Validator.status": + return protoreflect.ValueOfEnum(0) + case "cosmos.staking.v1beta1.Validator.tokens": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Validator.delegator_shares": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Validator.description": + m := new(Description) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.unbonding_height": + return protoreflect.ValueOfInt64(int64(0)) + case "cosmos.staking.v1beta1.Validator.unbonding_time": + m := new(timestamppb.Timestamp) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.commission": + m := new(Commission) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.Validator.min_self_delegation": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Validator.unbonding_on_hold_ref_count": + return protoreflect.ValueOfInt64(int64(0)) + case "cosmos.staking.v1beta1.Validator.unbonding_ids": + list := []uint64{} + return protoreflect.ValueOfList(&_Validator_13_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Validator")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Validator 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_Validator) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.Validator", 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_Validator) 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_Validator) 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_Validator) 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_Validator) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Validator) + 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.OperatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.ConsensusPubkey != nil { + l = options.Size(x.ConsensusPubkey) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Jailed { + n += 2 + } + if x.Status != 0 { + n += 1 + runtime.Sov(uint64(x.Status)) + } + l = len(x.Tokens) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.DelegatorShares) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Description != nil { + l = options.Size(x.Description) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.UnbondingHeight != 0 { + n += 1 + runtime.Sov(uint64(x.UnbondingHeight)) + } + if x.UnbondingTime != nil { + l = options.Size(x.UnbondingTime) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Commission != nil { + l = options.Size(x.Commission) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.MinSelfDelegation) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.UnbondingOnHoldRefCount != 0 { + n += 1 + runtime.Sov(uint64(x.UnbondingOnHoldRefCount)) + } + if len(x.UnbondingIds) > 0 { + l = 0 + for _, e := range x.UnbondingIds { + l += runtime.Sov(uint64(e)) + } + n += 1 + runtime.Sov(uint64(l)) + l + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Validator) + 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.UnbondingIds) > 0 { + var pksize2 int + for _, num := range x.UnbondingIds { + pksize2 += runtime.Sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num := range x.UnbondingIds { + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0x6a + } + if x.UnbondingOnHoldRefCount != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.UnbondingOnHoldRefCount)) + i-- + dAtA[i] = 0x60 + } + if len(x.MinSelfDelegation) > 0 { + i -= len(x.MinSelfDelegation) + copy(dAtA[i:], x.MinSelfDelegation) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MinSelfDelegation))) + i-- + dAtA[i] = 0x5a + } + if x.Commission != nil { + encoded, err := options.Marshal(x.Commission) + 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] = 0x52 + } + if x.UnbondingTime != nil { + encoded, err := options.Marshal(x.UnbondingTime) + 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] = 0x4a + } + if x.UnbondingHeight != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.UnbondingHeight)) + i-- + dAtA[i] = 0x40 + } + if x.Description != nil { + encoded, err := options.Marshal(x.Description) + 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] = 0x3a + } + if len(x.DelegatorShares) > 0 { + i -= len(x.DelegatorShares) + copy(dAtA[i:], x.DelegatorShares) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DelegatorShares))) + i-- + dAtA[i] = 0x32 + } + if len(x.Tokens) > 0 { + i -= len(x.Tokens) + copy(dAtA[i:], x.Tokens) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Tokens))) + i-- + dAtA[i] = 0x2a + } + if x.Status != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Status)) + i-- + dAtA[i] = 0x20 + } + if x.Jailed { + i-- + if x.Jailed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if x.ConsensusPubkey != nil { + encoded, err := options.Marshal(x.ConsensusPubkey) + 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.OperatorAddress) > 0 { + i -= len(x.OperatorAddress) + copy(dAtA[i:], x.OperatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OperatorAddress))) + 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().(*Validator) + 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: Validator: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Validator: 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 OperatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.OperatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ConsensusPubkey", 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.ConsensusPubkey == nil { + x.ConsensusPubkey = &anypb.Any{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ConsensusPubkey); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Jailed", wireType) + } + var v 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++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Jailed = bool(v != 0) + case 4: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + x.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Status |= BondStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Tokens", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Tokens = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DelegatorShares", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.DelegatorShares = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Description", 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.Description == nil { + x.Description = &Description{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Description); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 8: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnbondingHeight", wireType) + } + x.UnbondingHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.UnbondingHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnbondingTime", 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.UnbondingTime == nil { + x.UnbondingTime = ×tamppb.Timestamp{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.UnbondingTime); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Commission", 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.Commission == nil { + x.Commission = &Commission{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Commission); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MinSelfDelegation", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MinSelfDelegation = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnbondingOnHoldRefCount", wireType) + } + x.UnbondingOnHoldRefCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.UnbondingOnHoldRefCount |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 13: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.UnbondingIds = append(x.UnbondingIds, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(x.UnbondingIds) == 0 { + x.UnbondingIds = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.UnbondingIds = append(x.UnbondingIds, v) + } + } else { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnbondingIds", wireType) + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_ValAddresses_1_list)(nil) + +type _ValAddresses_1_list struct { + list *[]string +} + +func (x *_ValAddresses_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_ValAddresses_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_ValAddresses_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_ValAddresses_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_ValAddresses_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message ValAddresses at list field Addresses as it is not of Message kind")) +} + +func (x *_ValAddresses_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_ValAddresses_1_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_ValAddresses_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_ValAddresses protoreflect.MessageDescriptor + fd_ValAddresses_addresses protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_ValAddresses = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("ValAddresses") + fd_ValAddresses_addresses = md_ValAddresses.Fields().ByName("addresses") +} + +var _ protoreflect.Message = (*fastReflection_ValAddresses)(nil) + +type fastReflection_ValAddresses ValAddresses + +func (x *ValAddresses) ProtoReflect() protoreflect.Message { + return (*fastReflection_ValAddresses)(x) +} + +func (x *ValAddresses) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_ValAddresses_messageType fastReflection_ValAddresses_messageType +var _ protoreflect.MessageType = fastReflection_ValAddresses_messageType{} + +type fastReflection_ValAddresses_messageType struct{} + +func (x fastReflection_ValAddresses_messageType) Zero() protoreflect.Message { + return (*fastReflection_ValAddresses)(nil) +} +func (x fastReflection_ValAddresses_messageType) New() protoreflect.Message { + return new(fastReflection_ValAddresses) +} +func (x fastReflection_ValAddresses_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ValAddresses +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_ValAddresses) Descriptor() protoreflect.MessageDescriptor { + return md_ValAddresses +} + +// 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_ValAddresses) Type() protoreflect.MessageType { + return _fastReflection_ValAddresses_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_ValAddresses) New() protoreflect.Message { + return new(fastReflection_ValAddresses) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_ValAddresses) Interface() protoreflect.ProtoMessage { + return (*ValAddresses)(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_ValAddresses) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Addresses) != 0 { + value := protoreflect.ValueOfList(&_ValAddresses_1_list{list: &x.Addresses}) + if !f(fd_ValAddresses_addresses, 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_ValAddresses) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddresses.addresses": + return len(x.Addresses) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddresses")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddresses 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_ValAddresses) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddresses.addresses": + x.Addresses = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddresses")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddresses 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_ValAddresses) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.ValAddresses.addresses": + if len(x.Addresses) == 0 { + return protoreflect.ValueOfList(&_ValAddresses_1_list{}) + } + listValue := &_ValAddresses_1_list{list: &x.Addresses} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddresses")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddresses 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_ValAddresses) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddresses.addresses": + lv := value.List() + clv := lv.(*_ValAddresses_1_list) + x.Addresses = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddresses")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddresses 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_ValAddresses) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddresses.addresses": + if x.Addresses == nil { + x.Addresses = []string{} + } + value := &_ValAddresses_1_list{list: &x.Addresses} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddresses")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddresses 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_ValAddresses) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddresses.addresses": + list := []string{} + return protoreflect.ValueOfList(&_ValAddresses_1_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddresses")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddresses 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_ValAddresses) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.ValAddresses", 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_ValAddresses) 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_ValAddresses) 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_ValAddresses) 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_ValAddresses) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*ValAddresses) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Addresses) > 0 { + for _, s := range x.Addresses { + l = len(s) + 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().(*ValAddresses) + 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.Addresses) > 0 { + for iNdEx := len(x.Addresses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.Addresses[iNdEx]) + copy(dAtA[i:], x.Addresses[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Addresses[iNdEx]))) + 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().(*ValAddresses) + 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: ValAddresses: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ValAddresses: 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 Addresses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Addresses = append(x.Addresses, string(dAtA[iNdEx:postIndex])) + 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_DVPair protoreflect.MessageDescriptor + fd_DVPair_delegator_address protoreflect.FieldDescriptor + fd_DVPair_validator_address protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_DVPair = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("DVPair") + fd_DVPair_delegator_address = md_DVPair.Fields().ByName("delegator_address") + fd_DVPair_validator_address = md_DVPair.Fields().ByName("validator_address") +} + +var _ protoreflect.Message = (*fastReflection_DVPair)(nil) + +type fastReflection_DVPair DVPair + +func (x *DVPair) ProtoReflect() protoreflect.Message { + return (*fastReflection_DVPair)(x) +} + +func (x *DVPair) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_DVPair_messageType fastReflection_DVPair_messageType +var _ protoreflect.MessageType = fastReflection_DVPair_messageType{} + +type fastReflection_DVPair_messageType struct{} + +func (x fastReflection_DVPair_messageType) Zero() protoreflect.Message { + return (*fastReflection_DVPair)(nil) +} +func (x fastReflection_DVPair_messageType) New() protoreflect.Message { + return new(fastReflection_DVPair) +} +func (x fastReflection_DVPair_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_DVPair +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_DVPair) Descriptor() protoreflect.MessageDescriptor { + return md_DVPair +} + +// 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_DVPair) Type() protoreflect.MessageType { + return _fastReflection_DVPair_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_DVPair) New() protoreflect.Message { + return new(fastReflection_DVPair) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_DVPair) Interface() protoreflect.ProtoMessage { + return (*DVPair)(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_DVPair) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.DelegatorAddress != "" { + value := protoreflect.ValueOfString(x.DelegatorAddress) + if !f(fd_DVPair_delegator_address, value) { + return + } + } + if x.ValidatorAddress != "" { + value := protoreflect.ValueOfString(x.ValidatorAddress) + if !f(fd_DVPair_validator_address, 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_DVPair) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPair.delegator_address": + return x.DelegatorAddress != "" + case "cosmos.staking.v1beta1.DVPair.validator_address": + return x.ValidatorAddress != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPair")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPair 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_DVPair) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPair.delegator_address": + x.DelegatorAddress = "" + case "cosmos.staking.v1beta1.DVPair.validator_address": + x.ValidatorAddress = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPair")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPair 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_DVPair) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.DVPair.delegator_address": + value := x.DelegatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.DVPair.validator_address": + value := x.ValidatorAddress + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPair")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPair 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_DVPair) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPair.delegator_address": + x.DelegatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.DVPair.validator_address": + x.ValidatorAddress = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPair")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPair 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_DVPair) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPair.delegator_address": + panic(fmt.Errorf("field delegator_address of message cosmos.staking.v1beta1.DVPair is not mutable")) + case "cosmos.staking.v1beta1.DVPair.validator_address": + panic(fmt.Errorf("field validator_address of message cosmos.staking.v1beta1.DVPair is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPair")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPair 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_DVPair) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPair.delegator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.DVPair.validator_address": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPair")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPair 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_DVPair) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.DVPair", 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_DVPair) 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_DVPair) 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_DVPair) 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_DVPair) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*DVPair) + 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.DelegatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ValidatorAddress) + 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().(*DVPair) + 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.ValidatorAddress) > 0 { + i -= len(x.ValidatorAddress) + copy(dAtA[i:], x.ValidatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorAddress))) + i-- + dAtA[i] = 0x12 + } + if len(x.DelegatorAddress) > 0 { + i -= len(x.DelegatorAddress) + copy(dAtA[i:], x.DelegatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DelegatorAddress))) + 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().(*DVPair) + 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: DVPair: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: DVPair: 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 DelegatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.DelegatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ValidatorAddress = string(dAtA[iNdEx:postIndex]) + 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 _ protoreflect.List = (*_DVPairs_1_list)(nil) + +type _DVPairs_1_list struct { + list *[]*DVPair +} + +func (x *_DVPairs_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_DVPairs_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_DVPairs_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*DVPair) + (*x.list)[i] = concreteValue +} + +func (x *_DVPairs_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*DVPair) + *x.list = append(*x.list, concreteValue) +} + +func (x *_DVPairs_1_list) AppendMutable() protoreflect.Value { + v := new(DVPair) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_DVPairs_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_DVPairs_1_list) NewElement() protoreflect.Value { + v := new(DVPair) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_DVPairs_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_DVPairs protoreflect.MessageDescriptor + fd_DVPairs_pairs protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_DVPairs = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("DVPairs") + fd_DVPairs_pairs = md_DVPairs.Fields().ByName("pairs") +} + +var _ protoreflect.Message = (*fastReflection_DVPairs)(nil) + +type fastReflection_DVPairs DVPairs + +func (x *DVPairs) ProtoReflect() protoreflect.Message { + return (*fastReflection_DVPairs)(x) +} + +func (x *DVPairs) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_DVPairs_messageType fastReflection_DVPairs_messageType +var _ protoreflect.MessageType = fastReflection_DVPairs_messageType{} + +type fastReflection_DVPairs_messageType struct{} + +func (x fastReflection_DVPairs_messageType) Zero() protoreflect.Message { + return (*fastReflection_DVPairs)(nil) +} +func (x fastReflection_DVPairs_messageType) New() protoreflect.Message { + return new(fastReflection_DVPairs) +} +func (x fastReflection_DVPairs_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_DVPairs +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_DVPairs) Descriptor() protoreflect.MessageDescriptor { + return md_DVPairs +} + +// 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_DVPairs) Type() protoreflect.MessageType { + return _fastReflection_DVPairs_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_DVPairs) New() protoreflect.Message { + return new(fastReflection_DVPairs) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_DVPairs) Interface() protoreflect.ProtoMessage { + return (*DVPairs)(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_DVPairs) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Pairs) != 0 { + value := protoreflect.ValueOfList(&_DVPairs_1_list{list: &x.Pairs}) + if !f(fd_DVPairs_pairs, 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_DVPairs) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPairs.pairs": + return len(x.Pairs) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPairs")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPairs 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_DVPairs) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPairs.pairs": + x.Pairs = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPairs")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPairs 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_DVPairs) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.DVPairs.pairs": + if len(x.Pairs) == 0 { + return protoreflect.ValueOfList(&_DVPairs_1_list{}) + } + listValue := &_DVPairs_1_list{list: &x.Pairs} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPairs")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPairs 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_DVPairs) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPairs.pairs": + lv := value.List() + clv := lv.(*_DVPairs_1_list) + x.Pairs = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPairs")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPairs 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_DVPairs) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPairs.pairs": + if x.Pairs == nil { + x.Pairs = []*DVPair{} + } + value := &_DVPairs_1_list{list: &x.Pairs} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPairs")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPairs 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_DVPairs) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVPairs.pairs": + list := []*DVPair{} + return protoreflect.ValueOfList(&_DVPairs_1_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVPairs")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVPairs 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_DVPairs) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.DVPairs", 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_DVPairs) 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_DVPairs) 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_DVPairs) 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_DVPairs) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*DVPairs) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Pairs) > 0 { + for _, e := range x.Pairs { + l = options.Size(e) + 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().(*DVPairs) + 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.Pairs) > 0 { + for iNdEx := len(x.Pairs) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Pairs[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 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().(*DVPairs) + 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: DVPairs: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: DVPairs: 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 Pairs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Pairs = append(x.Pairs, &DVPair{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Pairs[len(x.Pairs)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_DVVTriplet protoreflect.MessageDescriptor + fd_DVVTriplet_delegator_address protoreflect.FieldDescriptor + fd_DVVTriplet_validator_src_address protoreflect.FieldDescriptor + fd_DVVTriplet_validator_dst_address protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_DVVTriplet = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("DVVTriplet") + fd_DVVTriplet_delegator_address = md_DVVTriplet.Fields().ByName("delegator_address") + fd_DVVTriplet_validator_src_address = md_DVVTriplet.Fields().ByName("validator_src_address") + fd_DVVTriplet_validator_dst_address = md_DVVTriplet.Fields().ByName("validator_dst_address") +} + +var _ protoreflect.Message = (*fastReflection_DVVTriplet)(nil) + +type fastReflection_DVVTriplet DVVTriplet + +func (x *DVVTriplet) ProtoReflect() protoreflect.Message { + return (*fastReflection_DVVTriplet)(x) +} + +func (x *DVVTriplet) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_DVVTriplet_messageType fastReflection_DVVTriplet_messageType +var _ protoreflect.MessageType = fastReflection_DVVTriplet_messageType{} + +type fastReflection_DVVTriplet_messageType struct{} + +func (x fastReflection_DVVTriplet_messageType) Zero() protoreflect.Message { + return (*fastReflection_DVVTriplet)(nil) +} +func (x fastReflection_DVVTriplet_messageType) New() protoreflect.Message { + return new(fastReflection_DVVTriplet) +} +func (x fastReflection_DVVTriplet_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_DVVTriplet +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_DVVTriplet) Descriptor() protoreflect.MessageDescriptor { + return md_DVVTriplet +} + +// 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_DVVTriplet) Type() protoreflect.MessageType { + return _fastReflection_DVVTriplet_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_DVVTriplet) New() protoreflect.Message { + return new(fastReflection_DVVTriplet) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_DVVTriplet) Interface() protoreflect.ProtoMessage { + return (*DVVTriplet)(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_DVVTriplet) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.DelegatorAddress != "" { + value := protoreflect.ValueOfString(x.DelegatorAddress) + if !f(fd_DVVTriplet_delegator_address, value) { + return + } + } + if x.ValidatorSrcAddress != "" { + value := protoreflect.ValueOfString(x.ValidatorSrcAddress) + if !f(fd_DVVTriplet_validator_src_address, value) { + return + } + } + if x.ValidatorDstAddress != "" { + value := protoreflect.ValueOfString(x.ValidatorDstAddress) + if !f(fd_DVVTriplet_validator_dst_address, 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_DVVTriplet) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplet.delegator_address": + return x.DelegatorAddress != "" + case "cosmos.staking.v1beta1.DVVTriplet.validator_src_address": + return x.ValidatorSrcAddress != "" + case "cosmos.staking.v1beta1.DVVTriplet.validator_dst_address": + return x.ValidatorDstAddress != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplet")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplet 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_DVVTriplet) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplet.delegator_address": + x.DelegatorAddress = "" + case "cosmos.staking.v1beta1.DVVTriplet.validator_src_address": + x.ValidatorSrcAddress = "" + case "cosmos.staking.v1beta1.DVVTriplet.validator_dst_address": + x.ValidatorDstAddress = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplet")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplet 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_DVVTriplet) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.DVVTriplet.delegator_address": + value := x.DelegatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.DVVTriplet.validator_src_address": + value := x.ValidatorSrcAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.DVVTriplet.validator_dst_address": + value := x.ValidatorDstAddress + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplet")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplet 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_DVVTriplet) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplet.delegator_address": + x.DelegatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.DVVTriplet.validator_src_address": + x.ValidatorSrcAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.DVVTriplet.validator_dst_address": + x.ValidatorDstAddress = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplet")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplet 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_DVVTriplet) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplet.delegator_address": + panic(fmt.Errorf("field delegator_address of message cosmos.staking.v1beta1.DVVTriplet is not mutable")) + case "cosmos.staking.v1beta1.DVVTriplet.validator_src_address": + panic(fmt.Errorf("field validator_src_address of message cosmos.staking.v1beta1.DVVTriplet is not mutable")) + case "cosmos.staking.v1beta1.DVVTriplet.validator_dst_address": + panic(fmt.Errorf("field validator_dst_address of message cosmos.staking.v1beta1.DVVTriplet is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplet")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplet 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_DVVTriplet) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplet.delegator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.DVVTriplet.validator_src_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.DVVTriplet.validator_dst_address": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplet")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplet 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_DVVTriplet) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.DVVTriplet", 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_DVVTriplet) 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_DVVTriplet) 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_DVVTriplet) 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_DVVTriplet) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*DVVTriplet) + 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.DelegatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ValidatorSrcAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ValidatorDstAddress) + 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().(*DVVTriplet) + 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.ValidatorDstAddress) > 0 { + i -= len(x.ValidatorDstAddress) + copy(dAtA[i:], x.ValidatorDstAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorDstAddress))) + i-- + dAtA[i] = 0x1a + } + if len(x.ValidatorSrcAddress) > 0 { + i -= len(x.ValidatorSrcAddress) + copy(dAtA[i:], x.ValidatorSrcAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorSrcAddress))) + i-- + dAtA[i] = 0x12 + } + if len(x.DelegatorAddress) > 0 { + i -= len(x.DelegatorAddress) + copy(dAtA[i:], x.DelegatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DelegatorAddress))) + 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().(*DVVTriplet) + 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: DVVTriplet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: DVVTriplet: 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 DelegatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.DelegatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorSrcAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ValidatorSrcAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorDstAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ValidatorDstAddress = string(dAtA[iNdEx:postIndex]) + 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 _ protoreflect.List = (*_DVVTriplets_1_list)(nil) + +type _DVVTriplets_1_list struct { + list *[]*DVVTriplet +} + +func (x *_DVVTriplets_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_DVVTriplets_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_DVVTriplets_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*DVVTriplet) + (*x.list)[i] = concreteValue +} + +func (x *_DVVTriplets_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*DVVTriplet) + *x.list = append(*x.list, concreteValue) +} + +func (x *_DVVTriplets_1_list) AppendMutable() protoreflect.Value { + v := new(DVVTriplet) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_DVVTriplets_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_DVVTriplets_1_list) NewElement() protoreflect.Value { + v := new(DVVTriplet) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_DVVTriplets_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_DVVTriplets protoreflect.MessageDescriptor + fd_DVVTriplets_triplets protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_DVVTriplets = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("DVVTriplets") + fd_DVVTriplets_triplets = md_DVVTriplets.Fields().ByName("triplets") +} + +var _ protoreflect.Message = (*fastReflection_DVVTriplets)(nil) + +type fastReflection_DVVTriplets DVVTriplets + +func (x *DVVTriplets) ProtoReflect() protoreflect.Message { + return (*fastReflection_DVVTriplets)(x) +} + +func (x *DVVTriplets) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_DVVTriplets_messageType fastReflection_DVVTriplets_messageType +var _ protoreflect.MessageType = fastReflection_DVVTriplets_messageType{} + +type fastReflection_DVVTriplets_messageType struct{} + +func (x fastReflection_DVVTriplets_messageType) Zero() protoreflect.Message { + return (*fastReflection_DVVTriplets)(nil) +} +func (x fastReflection_DVVTriplets_messageType) New() protoreflect.Message { + return new(fastReflection_DVVTriplets) +} +func (x fastReflection_DVVTriplets_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_DVVTriplets +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_DVVTriplets) Descriptor() protoreflect.MessageDescriptor { + return md_DVVTriplets +} + +// 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_DVVTriplets) Type() protoreflect.MessageType { + return _fastReflection_DVVTriplets_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_DVVTriplets) New() protoreflect.Message { + return new(fastReflection_DVVTriplets) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_DVVTriplets) Interface() protoreflect.ProtoMessage { + return (*DVVTriplets)(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_DVVTriplets) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Triplets) != 0 { + value := protoreflect.ValueOfList(&_DVVTriplets_1_list{list: &x.Triplets}) + if !f(fd_DVVTriplets_triplets, 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_DVVTriplets) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplets.triplets": + return len(x.Triplets) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplets")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplets 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_DVVTriplets) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplets.triplets": + x.Triplets = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplets")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplets 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_DVVTriplets) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.DVVTriplets.triplets": + if len(x.Triplets) == 0 { + return protoreflect.ValueOfList(&_DVVTriplets_1_list{}) + } + listValue := &_DVVTriplets_1_list{list: &x.Triplets} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplets")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplets 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_DVVTriplets) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplets.triplets": + lv := value.List() + clv := lv.(*_DVVTriplets_1_list) + x.Triplets = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplets")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplets 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_DVVTriplets) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplets.triplets": + if x.Triplets == nil { + x.Triplets = []*DVVTriplet{} + } + value := &_DVVTriplets_1_list{list: &x.Triplets} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplets")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplets 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_DVVTriplets) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DVVTriplets.triplets": + list := []*DVVTriplet{} + return protoreflect.ValueOfList(&_DVVTriplets_1_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DVVTriplets")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DVVTriplets 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_DVVTriplets) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.DVVTriplets", 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_DVVTriplets) 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_DVVTriplets) 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_DVVTriplets) 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_DVVTriplets) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*DVVTriplets) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Triplets) > 0 { + for _, e := range x.Triplets { + l = options.Size(e) + 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().(*DVVTriplets) + 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.Triplets) > 0 { + for iNdEx := len(x.Triplets) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Triplets[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 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().(*DVVTriplets) + 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: DVVTriplets: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: DVVTriplets: 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 Triplets", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Triplets = append(x.Triplets, &DVVTriplet{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Triplets[len(x.Triplets)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_Delegation protoreflect.MessageDescriptor + fd_Delegation_delegator_address protoreflect.FieldDescriptor + fd_Delegation_validator_address protoreflect.FieldDescriptor + fd_Delegation_shares protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_Delegation = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("Delegation") + fd_Delegation_delegator_address = md_Delegation.Fields().ByName("delegator_address") + fd_Delegation_validator_address = md_Delegation.Fields().ByName("validator_address") + fd_Delegation_shares = md_Delegation.Fields().ByName("shares") +} + +var _ protoreflect.Message = (*fastReflection_Delegation)(nil) + +type fastReflection_Delegation Delegation + +func (x *Delegation) ProtoReflect() protoreflect.Message { + return (*fastReflection_Delegation)(x) +} + +func (x *Delegation) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Delegation_messageType fastReflection_Delegation_messageType +var _ protoreflect.MessageType = fastReflection_Delegation_messageType{} + +type fastReflection_Delegation_messageType struct{} + +func (x fastReflection_Delegation_messageType) Zero() protoreflect.Message { + return (*fastReflection_Delegation)(nil) +} +func (x fastReflection_Delegation_messageType) New() protoreflect.Message { + return new(fastReflection_Delegation) +} +func (x fastReflection_Delegation_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Delegation +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Delegation) Descriptor() protoreflect.MessageDescriptor { + return md_Delegation +} + +// 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_Delegation) Type() protoreflect.MessageType { + return _fastReflection_Delegation_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Delegation) New() protoreflect.Message { + return new(fastReflection_Delegation) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Delegation) Interface() protoreflect.ProtoMessage { + return (*Delegation)(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_Delegation) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.DelegatorAddress != "" { + value := protoreflect.ValueOfString(x.DelegatorAddress) + if !f(fd_Delegation_delegator_address, value) { + return + } + } + if x.ValidatorAddress != "" { + value := protoreflect.ValueOfString(x.ValidatorAddress) + if !f(fd_Delegation_validator_address, value) { + return + } + } + if x.Shares != "" { + value := protoreflect.ValueOfString(x.Shares) + if !f(fd_Delegation_shares, 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_Delegation) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Delegation.delegator_address": + return x.DelegatorAddress != "" + case "cosmos.staking.v1beta1.Delegation.validator_address": + return x.ValidatorAddress != "" + case "cosmos.staking.v1beta1.Delegation.shares": + return x.Shares != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Delegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Delegation 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_Delegation) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Delegation.delegator_address": + x.DelegatorAddress = "" + case "cosmos.staking.v1beta1.Delegation.validator_address": + x.ValidatorAddress = "" + case "cosmos.staking.v1beta1.Delegation.shares": + x.Shares = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Delegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Delegation 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_Delegation) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.Delegation.delegator_address": + value := x.DelegatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Delegation.validator_address": + value := x.ValidatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Delegation.shares": + value := x.Shares + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Delegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Delegation 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_Delegation) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Delegation.delegator_address": + x.DelegatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.Delegation.validator_address": + x.ValidatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.Delegation.shares": + x.Shares = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Delegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Delegation 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_Delegation) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Delegation.delegator_address": + panic(fmt.Errorf("field delegator_address of message cosmos.staking.v1beta1.Delegation is not mutable")) + case "cosmos.staking.v1beta1.Delegation.validator_address": + panic(fmt.Errorf("field validator_address of message cosmos.staking.v1beta1.Delegation is not mutable")) + case "cosmos.staking.v1beta1.Delegation.shares": + panic(fmt.Errorf("field shares of message cosmos.staking.v1beta1.Delegation is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Delegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Delegation 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_Delegation) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Delegation.delegator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Delegation.validator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Delegation.shares": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Delegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Delegation 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_Delegation) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.Delegation", 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_Delegation) 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_Delegation) 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_Delegation) 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_Delegation) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Delegation) + 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.DelegatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ValidatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Shares) + 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().(*Delegation) + 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.Shares) > 0 { + i -= len(x.Shares) + copy(dAtA[i:], x.Shares) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Shares))) + i-- + dAtA[i] = 0x1a + } + if len(x.ValidatorAddress) > 0 { + i -= len(x.ValidatorAddress) + copy(dAtA[i:], x.ValidatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorAddress))) + i-- + dAtA[i] = 0x12 + } + if len(x.DelegatorAddress) > 0 { + i -= len(x.DelegatorAddress) + copy(dAtA[i:], x.DelegatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DelegatorAddress))) + 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().(*Delegation) + 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: Delegation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Delegation: 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 DelegatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.DelegatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ValidatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Shares", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Shares = string(dAtA[iNdEx:postIndex]) + 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 _ protoreflect.List = (*_UnbondingDelegation_3_list)(nil) + +type _UnbondingDelegation_3_list struct { + list *[]*UnbondingDelegationEntry +} + +func (x *_UnbondingDelegation_3_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_UnbondingDelegation_3_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_UnbondingDelegation_3_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*UnbondingDelegationEntry) + (*x.list)[i] = concreteValue +} + +func (x *_UnbondingDelegation_3_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*UnbondingDelegationEntry) + *x.list = append(*x.list, concreteValue) +} + +func (x *_UnbondingDelegation_3_list) AppendMutable() protoreflect.Value { + v := new(UnbondingDelegationEntry) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_UnbondingDelegation_3_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_UnbondingDelegation_3_list) NewElement() protoreflect.Value { + v := new(UnbondingDelegationEntry) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_UnbondingDelegation_3_list) IsValid() bool { + return x.list != nil +} + +var ( + md_UnbondingDelegation protoreflect.MessageDescriptor + fd_UnbondingDelegation_delegator_address protoreflect.FieldDescriptor + fd_UnbondingDelegation_validator_address protoreflect.FieldDescriptor + fd_UnbondingDelegation_entries protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_UnbondingDelegation = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("UnbondingDelegation") + fd_UnbondingDelegation_delegator_address = md_UnbondingDelegation.Fields().ByName("delegator_address") + fd_UnbondingDelegation_validator_address = md_UnbondingDelegation.Fields().ByName("validator_address") + fd_UnbondingDelegation_entries = md_UnbondingDelegation.Fields().ByName("entries") +} + +var _ protoreflect.Message = (*fastReflection_UnbondingDelegation)(nil) + +type fastReflection_UnbondingDelegation UnbondingDelegation + +func (x *UnbondingDelegation) ProtoReflect() protoreflect.Message { + return (*fastReflection_UnbondingDelegation)(x) +} + +func (x *UnbondingDelegation) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_UnbondingDelegation_messageType fastReflection_UnbondingDelegation_messageType +var _ protoreflect.MessageType = fastReflection_UnbondingDelegation_messageType{} + +type fastReflection_UnbondingDelegation_messageType struct{} + +func (x fastReflection_UnbondingDelegation_messageType) Zero() protoreflect.Message { + return (*fastReflection_UnbondingDelegation)(nil) +} +func (x fastReflection_UnbondingDelegation_messageType) New() protoreflect.Message { + return new(fastReflection_UnbondingDelegation) +} +func (x fastReflection_UnbondingDelegation_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_UnbondingDelegation +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_UnbondingDelegation) Descriptor() protoreflect.MessageDescriptor { + return md_UnbondingDelegation +} + +// 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_UnbondingDelegation) Type() protoreflect.MessageType { + return _fastReflection_UnbondingDelegation_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_UnbondingDelegation) New() protoreflect.Message { + return new(fastReflection_UnbondingDelegation) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_UnbondingDelegation) Interface() protoreflect.ProtoMessage { + return (*UnbondingDelegation)(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_UnbondingDelegation) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.DelegatorAddress != "" { + value := protoreflect.ValueOfString(x.DelegatorAddress) + if !f(fd_UnbondingDelegation_delegator_address, value) { + return + } + } + if x.ValidatorAddress != "" { + value := protoreflect.ValueOfString(x.ValidatorAddress) + if !f(fd_UnbondingDelegation_validator_address, value) { + return + } + } + if len(x.Entries) != 0 { + value := protoreflect.ValueOfList(&_UnbondingDelegation_3_list{list: &x.Entries}) + if !f(fd_UnbondingDelegation_entries, 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_UnbondingDelegation) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegation.delegator_address": + return x.DelegatorAddress != "" + case "cosmos.staking.v1beta1.UnbondingDelegation.validator_address": + return x.ValidatorAddress != "" + case "cosmos.staking.v1beta1.UnbondingDelegation.entries": + return len(x.Entries) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegation 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_UnbondingDelegation) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegation.delegator_address": + x.DelegatorAddress = "" + case "cosmos.staking.v1beta1.UnbondingDelegation.validator_address": + x.ValidatorAddress = "" + case "cosmos.staking.v1beta1.UnbondingDelegation.entries": + x.Entries = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegation 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_UnbondingDelegation) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegation.delegator_address": + value := x.DelegatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.UnbondingDelegation.validator_address": + value := x.ValidatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.UnbondingDelegation.entries": + if len(x.Entries) == 0 { + return protoreflect.ValueOfList(&_UnbondingDelegation_3_list{}) + } + listValue := &_UnbondingDelegation_3_list{list: &x.Entries} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegation 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_UnbondingDelegation) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegation.delegator_address": + x.DelegatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.UnbondingDelegation.validator_address": + x.ValidatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.UnbondingDelegation.entries": + lv := value.List() + clv := lv.(*_UnbondingDelegation_3_list) + x.Entries = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegation 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_UnbondingDelegation) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegation.entries": + if x.Entries == nil { + x.Entries = []*UnbondingDelegationEntry{} + } + value := &_UnbondingDelegation_3_list{list: &x.Entries} + return protoreflect.ValueOfList(value) + case "cosmos.staking.v1beta1.UnbondingDelegation.delegator_address": + panic(fmt.Errorf("field delegator_address of message cosmos.staking.v1beta1.UnbondingDelegation is not mutable")) + case "cosmos.staking.v1beta1.UnbondingDelegation.validator_address": + panic(fmt.Errorf("field validator_address of message cosmos.staking.v1beta1.UnbondingDelegation is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegation 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_UnbondingDelegation) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegation.delegator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.UnbondingDelegation.validator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.UnbondingDelegation.entries": + list := []*UnbondingDelegationEntry{} + return protoreflect.ValueOfList(&_UnbondingDelegation_3_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegation 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_UnbondingDelegation) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.UnbondingDelegation", 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_UnbondingDelegation) 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_UnbondingDelegation) 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_UnbondingDelegation) 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_UnbondingDelegation) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*UnbondingDelegation) + 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.DelegatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ValidatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Entries) > 0 { + for _, e := range x.Entries { + l = options.Size(e) + 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().(*UnbondingDelegation) + 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.Entries) > 0 { + for iNdEx := len(x.Entries) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Entries[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + } + if len(x.ValidatorAddress) > 0 { + i -= len(x.ValidatorAddress) + copy(dAtA[i:], x.ValidatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorAddress))) + i-- + dAtA[i] = 0x12 + } + if len(x.DelegatorAddress) > 0 { + i -= len(x.DelegatorAddress) + copy(dAtA[i:], x.DelegatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DelegatorAddress))) + 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().(*UnbondingDelegation) + 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: UnbondingDelegation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: UnbondingDelegation: 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 DelegatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.DelegatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ValidatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Entries", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Entries = append(x.Entries, &UnbondingDelegationEntry{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Entries[len(x.Entries)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_UnbondingDelegationEntry protoreflect.MessageDescriptor + fd_UnbondingDelegationEntry_creation_height protoreflect.FieldDescriptor + fd_UnbondingDelegationEntry_completion_time protoreflect.FieldDescriptor + fd_UnbondingDelegationEntry_initial_balance protoreflect.FieldDescriptor + fd_UnbondingDelegationEntry_balance protoreflect.FieldDescriptor + fd_UnbondingDelegationEntry_unbonding_id protoreflect.FieldDescriptor + fd_UnbondingDelegationEntry_unbonding_on_hold_ref_count protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_UnbondingDelegationEntry = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("UnbondingDelegationEntry") + fd_UnbondingDelegationEntry_creation_height = md_UnbondingDelegationEntry.Fields().ByName("creation_height") + fd_UnbondingDelegationEntry_completion_time = md_UnbondingDelegationEntry.Fields().ByName("completion_time") + fd_UnbondingDelegationEntry_initial_balance = md_UnbondingDelegationEntry.Fields().ByName("initial_balance") + fd_UnbondingDelegationEntry_balance = md_UnbondingDelegationEntry.Fields().ByName("balance") + fd_UnbondingDelegationEntry_unbonding_id = md_UnbondingDelegationEntry.Fields().ByName("unbonding_id") + fd_UnbondingDelegationEntry_unbonding_on_hold_ref_count = md_UnbondingDelegationEntry.Fields().ByName("unbonding_on_hold_ref_count") +} + +var _ protoreflect.Message = (*fastReflection_UnbondingDelegationEntry)(nil) + +type fastReflection_UnbondingDelegationEntry UnbondingDelegationEntry + +func (x *UnbondingDelegationEntry) ProtoReflect() protoreflect.Message { + return (*fastReflection_UnbondingDelegationEntry)(x) +} + +func (x *UnbondingDelegationEntry) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_UnbondingDelegationEntry_messageType fastReflection_UnbondingDelegationEntry_messageType +var _ protoreflect.MessageType = fastReflection_UnbondingDelegationEntry_messageType{} + +type fastReflection_UnbondingDelegationEntry_messageType struct{} + +func (x fastReflection_UnbondingDelegationEntry_messageType) Zero() protoreflect.Message { + return (*fastReflection_UnbondingDelegationEntry)(nil) +} +func (x fastReflection_UnbondingDelegationEntry_messageType) New() protoreflect.Message { + return new(fastReflection_UnbondingDelegationEntry) +} +func (x fastReflection_UnbondingDelegationEntry_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_UnbondingDelegationEntry +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_UnbondingDelegationEntry) Descriptor() protoreflect.MessageDescriptor { + return md_UnbondingDelegationEntry +} + +// 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_UnbondingDelegationEntry) Type() protoreflect.MessageType { + return _fastReflection_UnbondingDelegationEntry_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_UnbondingDelegationEntry) New() protoreflect.Message { + return new(fastReflection_UnbondingDelegationEntry) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_UnbondingDelegationEntry) Interface() protoreflect.ProtoMessage { + return (*UnbondingDelegationEntry)(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_UnbondingDelegationEntry) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.CreationHeight != int64(0) { + value := protoreflect.ValueOfInt64(x.CreationHeight) + if !f(fd_UnbondingDelegationEntry_creation_height, value) { + return + } + } + if x.CompletionTime != nil { + value := protoreflect.ValueOfMessage(x.CompletionTime.ProtoReflect()) + if !f(fd_UnbondingDelegationEntry_completion_time, value) { + return + } + } + if x.InitialBalance != "" { + value := protoreflect.ValueOfString(x.InitialBalance) + if !f(fd_UnbondingDelegationEntry_initial_balance, value) { + return + } + } + if x.Balance != "" { + value := protoreflect.ValueOfString(x.Balance) + if !f(fd_UnbondingDelegationEntry_balance, value) { + return + } + } + if x.UnbondingId != uint64(0) { + value := protoreflect.ValueOfUint64(x.UnbondingId) + if !f(fd_UnbondingDelegationEntry_unbonding_id, value) { + return + } + } + if x.UnbondingOnHoldRefCount != int64(0) { + value := protoreflect.ValueOfInt64(x.UnbondingOnHoldRefCount) + if !f(fd_UnbondingDelegationEntry_unbonding_on_hold_ref_count, 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_UnbondingDelegationEntry) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.creation_height": + return x.CreationHeight != int64(0) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time": + return x.CompletionTime != nil + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.initial_balance": + return x.InitialBalance != "" + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.balance": + return x.Balance != "" + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_id": + return x.UnbondingId != uint64(0) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_on_hold_ref_count": + return x.UnbondingOnHoldRefCount != int64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegationEntry 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_UnbondingDelegationEntry) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.creation_height": + x.CreationHeight = int64(0) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time": + x.CompletionTime = nil + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.initial_balance": + x.InitialBalance = "" + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.balance": + x.Balance = "" + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_id": + x.UnbondingId = uint64(0) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_on_hold_ref_count": + x.UnbondingOnHoldRefCount = int64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegationEntry 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_UnbondingDelegationEntry) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.creation_height": + value := x.CreationHeight + return protoreflect.ValueOfInt64(value) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time": + value := x.CompletionTime + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.initial_balance": + value := x.InitialBalance + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.balance": + value := x.Balance + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_id": + value := x.UnbondingId + return protoreflect.ValueOfUint64(value) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_on_hold_ref_count": + value := x.UnbondingOnHoldRefCount + return protoreflect.ValueOfInt64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegationEntry 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_UnbondingDelegationEntry) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.creation_height": + x.CreationHeight = value.Int() + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time": + x.CompletionTime = value.Message().Interface().(*timestamppb.Timestamp) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.initial_balance": + x.InitialBalance = value.Interface().(string) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.balance": + x.Balance = value.Interface().(string) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_id": + x.UnbondingId = value.Uint() + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_on_hold_ref_count": + x.UnbondingOnHoldRefCount = value.Int() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegationEntry 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_UnbondingDelegationEntry) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time": + if x.CompletionTime == nil { + x.CompletionTime = new(timestamppb.Timestamp) + } + return protoreflect.ValueOfMessage(x.CompletionTime.ProtoReflect()) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.creation_height": + panic(fmt.Errorf("field creation_height of message cosmos.staking.v1beta1.UnbondingDelegationEntry is not mutable")) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.initial_balance": + panic(fmt.Errorf("field initial_balance of message cosmos.staking.v1beta1.UnbondingDelegationEntry is not mutable")) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.balance": + panic(fmt.Errorf("field balance of message cosmos.staking.v1beta1.UnbondingDelegationEntry is not mutable")) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_id": + panic(fmt.Errorf("field unbonding_id of message cosmos.staking.v1beta1.UnbondingDelegationEntry is not mutable")) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_on_hold_ref_count": + panic(fmt.Errorf("field unbonding_on_hold_ref_count of message cosmos.staking.v1beta1.UnbondingDelegationEntry is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegationEntry 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_UnbondingDelegationEntry) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.creation_height": + return protoreflect.ValueOfInt64(int64(0)) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time": + m := new(timestamppb.Timestamp) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.initial_balance": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.balance": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_id": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.staking.v1beta1.UnbondingDelegationEntry.unbonding_on_hold_ref_count": + return protoreflect.ValueOfInt64(int64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.UnbondingDelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.UnbondingDelegationEntry 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_UnbondingDelegationEntry) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.UnbondingDelegationEntry", 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_UnbondingDelegationEntry) 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_UnbondingDelegationEntry) 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_UnbondingDelegationEntry) 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_UnbondingDelegationEntry) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*UnbondingDelegationEntry) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.CreationHeight != 0 { + n += 1 + runtime.Sov(uint64(x.CreationHeight)) + } + if x.CompletionTime != nil { + l = options.Size(x.CompletionTime) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.InitialBalance) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Balance) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.UnbondingId != 0 { + n += 1 + runtime.Sov(uint64(x.UnbondingId)) + } + if x.UnbondingOnHoldRefCount != 0 { + n += 1 + runtime.Sov(uint64(x.UnbondingOnHoldRefCount)) + } + 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().(*UnbondingDelegationEntry) + 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 x.UnbondingOnHoldRefCount != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.UnbondingOnHoldRefCount)) + i-- + dAtA[i] = 0x30 + } + if x.UnbondingId != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.UnbondingId)) + i-- + dAtA[i] = 0x28 + } + if len(x.Balance) > 0 { + i -= len(x.Balance) + copy(dAtA[i:], x.Balance) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Balance))) + i-- + dAtA[i] = 0x22 + } + if len(x.InitialBalance) > 0 { + i -= len(x.InitialBalance) + copy(dAtA[i:], x.InitialBalance) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.InitialBalance))) + i-- + dAtA[i] = 0x1a + } + if x.CompletionTime != nil { + encoded, err := options.Marshal(x.CompletionTime) + 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.CreationHeight != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.CreationHeight)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*UnbondingDelegationEntry) + 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: UnbondingDelegationEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: UnbondingDelegationEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CreationHeight", wireType) + } + x.CreationHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.CreationHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CompletionTime", 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.CompletionTime == nil { + x.CompletionTime = ×tamppb.Timestamp{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.CompletionTime); 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 InitialBalance", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.InitialBalance = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Balance = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnbondingId", wireType) + } + x.UnbondingId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.UnbondingId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnbondingOnHoldRefCount", wireType) + } + x.UnbondingOnHoldRefCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.UnbondingOnHoldRefCount |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + 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_RedelegationEntry protoreflect.MessageDescriptor + fd_RedelegationEntry_creation_height protoreflect.FieldDescriptor + fd_RedelegationEntry_completion_time protoreflect.FieldDescriptor + fd_RedelegationEntry_initial_balance protoreflect.FieldDescriptor + fd_RedelegationEntry_shares_dst protoreflect.FieldDescriptor + fd_RedelegationEntry_unbonding_id protoreflect.FieldDescriptor + fd_RedelegationEntry_unbonding_on_hold_ref_count protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_RedelegationEntry = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("RedelegationEntry") + fd_RedelegationEntry_creation_height = md_RedelegationEntry.Fields().ByName("creation_height") + fd_RedelegationEntry_completion_time = md_RedelegationEntry.Fields().ByName("completion_time") + fd_RedelegationEntry_initial_balance = md_RedelegationEntry.Fields().ByName("initial_balance") + fd_RedelegationEntry_shares_dst = md_RedelegationEntry.Fields().ByName("shares_dst") + fd_RedelegationEntry_unbonding_id = md_RedelegationEntry.Fields().ByName("unbonding_id") + fd_RedelegationEntry_unbonding_on_hold_ref_count = md_RedelegationEntry.Fields().ByName("unbonding_on_hold_ref_count") +} + +var _ protoreflect.Message = (*fastReflection_RedelegationEntry)(nil) + +type fastReflection_RedelegationEntry RedelegationEntry + +func (x *RedelegationEntry) ProtoReflect() protoreflect.Message { + return (*fastReflection_RedelegationEntry)(x) +} + +func (x *RedelegationEntry) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_RedelegationEntry_messageType fastReflection_RedelegationEntry_messageType +var _ protoreflect.MessageType = fastReflection_RedelegationEntry_messageType{} + +type fastReflection_RedelegationEntry_messageType struct{} + +func (x fastReflection_RedelegationEntry_messageType) Zero() protoreflect.Message { + return (*fastReflection_RedelegationEntry)(nil) +} +func (x fastReflection_RedelegationEntry_messageType) New() protoreflect.Message { + return new(fastReflection_RedelegationEntry) +} +func (x fastReflection_RedelegationEntry_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_RedelegationEntry +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_RedelegationEntry) Descriptor() protoreflect.MessageDescriptor { + return md_RedelegationEntry +} + +// 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_RedelegationEntry) Type() protoreflect.MessageType { + return _fastReflection_RedelegationEntry_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_RedelegationEntry) New() protoreflect.Message { + return new(fastReflection_RedelegationEntry) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_RedelegationEntry) Interface() protoreflect.ProtoMessage { + return (*RedelegationEntry)(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_RedelegationEntry) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.CreationHeight != int64(0) { + value := protoreflect.ValueOfInt64(x.CreationHeight) + if !f(fd_RedelegationEntry_creation_height, value) { + return + } + } + if x.CompletionTime != nil { + value := protoreflect.ValueOfMessage(x.CompletionTime.ProtoReflect()) + if !f(fd_RedelegationEntry_completion_time, value) { + return + } + } + if x.InitialBalance != "" { + value := protoreflect.ValueOfString(x.InitialBalance) + if !f(fd_RedelegationEntry_initial_balance, value) { + return + } + } + if x.SharesDst != "" { + value := protoreflect.ValueOfString(x.SharesDst) + if !f(fd_RedelegationEntry_shares_dst, value) { + return + } + } + if x.UnbondingId != uint64(0) { + value := protoreflect.ValueOfUint64(x.UnbondingId) + if !f(fd_RedelegationEntry_unbonding_id, value) { + return + } + } + if x.UnbondingOnHoldRefCount != int64(0) { + value := protoreflect.ValueOfInt64(x.UnbondingOnHoldRefCount) + if !f(fd_RedelegationEntry_unbonding_on_hold_ref_count, 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_RedelegationEntry) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntry.creation_height": + return x.CreationHeight != int64(0) + case "cosmos.staking.v1beta1.RedelegationEntry.completion_time": + return x.CompletionTime != nil + case "cosmos.staking.v1beta1.RedelegationEntry.initial_balance": + return x.InitialBalance != "" + case "cosmos.staking.v1beta1.RedelegationEntry.shares_dst": + return x.SharesDst != "" + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_id": + return x.UnbondingId != uint64(0) + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_on_hold_ref_count": + return x.UnbondingOnHoldRefCount != int64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntry 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_RedelegationEntry) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntry.creation_height": + x.CreationHeight = int64(0) + case "cosmos.staking.v1beta1.RedelegationEntry.completion_time": + x.CompletionTime = nil + case "cosmos.staking.v1beta1.RedelegationEntry.initial_balance": + x.InitialBalance = "" + case "cosmos.staking.v1beta1.RedelegationEntry.shares_dst": + x.SharesDst = "" + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_id": + x.UnbondingId = uint64(0) + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_on_hold_ref_count": + x.UnbondingOnHoldRefCount = int64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntry 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_RedelegationEntry) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntry.creation_height": + value := x.CreationHeight + return protoreflect.ValueOfInt64(value) + case "cosmos.staking.v1beta1.RedelegationEntry.completion_time": + value := x.CompletionTime + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.RedelegationEntry.initial_balance": + value := x.InitialBalance + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.RedelegationEntry.shares_dst": + value := x.SharesDst + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_id": + value := x.UnbondingId + return protoreflect.ValueOfUint64(value) + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_on_hold_ref_count": + value := x.UnbondingOnHoldRefCount + return protoreflect.ValueOfInt64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntry 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_RedelegationEntry) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntry.creation_height": + x.CreationHeight = value.Int() + case "cosmos.staking.v1beta1.RedelegationEntry.completion_time": + x.CompletionTime = value.Message().Interface().(*timestamppb.Timestamp) + case "cosmos.staking.v1beta1.RedelegationEntry.initial_balance": + x.InitialBalance = value.Interface().(string) + case "cosmos.staking.v1beta1.RedelegationEntry.shares_dst": + x.SharesDst = value.Interface().(string) + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_id": + x.UnbondingId = value.Uint() + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_on_hold_ref_count": + x.UnbondingOnHoldRefCount = value.Int() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntry 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_RedelegationEntry) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntry.completion_time": + if x.CompletionTime == nil { + x.CompletionTime = new(timestamppb.Timestamp) + } + return protoreflect.ValueOfMessage(x.CompletionTime.ProtoReflect()) + case "cosmos.staking.v1beta1.RedelegationEntry.creation_height": + panic(fmt.Errorf("field creation_height of message cosmos.staking.v1beta1.RedelegationEntry is not mutable")) + case "cosmos.staking.v1beta1.RedelegationEntry.initial_balance": + panic(fmt.Errorf("field initial_balance of message cosmos.staking.v1beta1.RedelegationEntry is not mutable")) + case "cosmos.staking.v1beta1.RedelegationEntry.shares_dst": + panic(fmt.Errorf("field shares_dst of message cosmos.staking.v1beta1.RedelegationEntry is not mutable")) + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_id": + panic(fmt.Errorf("field unbonding_id of message cosmos.staking.v1beta1.RedelegationEntry is not mutable")) + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_on_hold_ref_count": + panic(fmt.Errorf("field unbonding_on_hold_ref_count of message cosmos.staking.v1beta1.RedelegationEntry is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntry 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_RedelegationEntry) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntry.creation_height": + return protoreflect.ValueOfInt64(int64(0)) + case "cosmos.staking.v1beta1.RedelegationEntry.completion_time": + m := new(timestamppb.Timestamp) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.RedelegationEntry.initial_balance": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.RedelegationEntry.shares_dst": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_id": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.staking.v1beta1.RedelegationEntry.unbonding_on_hold_ref_count": + return protoreflect.ValueOfInt64(int64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntry")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntry 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_RedelegationEntry) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.RedelegationEntry", 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_RedelegationEntry) 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_RedelegationEntry) 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_RedelegationEntry) 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_RedelegationEntry) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*RedelegationEntry) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.CreationHeight != 0 { + n += 1 + runtime.Sov(uint64(x.CreationHeight)) + } + if x.CompletionTime != nil { + l = options.Size(x.CompletionTime) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.InitialBalance) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.SharesDst) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.UnbondingId != 0 { + n += 1 + runtime.Sov(uint64(x.UnbondingId)) + } + if x.UnbondingOnHoldRefCount != 0 { + n += 1 + runtime.Sov(uint64(x.UnbondingOnHoldRefCount)) + } + 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().(*RedelegationEntry) + 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 x.UnbondingOnHoldRefCount != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.UnbondingOnHoldRefCount)) + i-- + dAtA[i] = 0x30 + } + if x.UnbondingId != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.UnbondingId)) + i-- + dAtA[i] = 0x28 + } + if len(x.SharesDst) > 0 { + i -= len(x.SharesDst) + copy(dAtA[i:], x.SharesDst) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.SharesDst))) + i-- + dAtA[i] = 0x22 + } + if len(x.InitialBalance) > 0 { + i -= len(x.InitialBalance) + copy(dAtA[i:], x.InitialBalance) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.InitialBalance))) + i-- + dAtA[i] = 0x1a + } + if x.CompletionTime != nil { + encoded, err := options.Marshal(x.CompletionTime) + 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.CreationHeight != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.CreationHeight)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*RedelegationEntry) + 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: RedelegationEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RedelegationEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CreationHeight", wireType) + } + x.CreationHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.CreationHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CompletionTime", 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.CompletionTime == nil { + x.CompletionTime = ×tamppb.Timestamp{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.CompletionTime); 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 InitialBalance", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.InitialBalance = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SharesDst", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.SharesDst = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnbondingId", wireType) + } + x.UnbondingId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.UnbondingId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnbondingOnHoldRefCount", wireType) + } + x.UnbondingOnHoldRefCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.UnbondingOnHoldRefCount |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + 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 _ protoreflect.List = (*_Redelegation_4_list)(nil) + +type _Redelegation_4_list struct { + list *[]*RedelegationEntry +} + +func (x *_Redelegation_4_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Redelegation_4_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_Redelegation_4_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*RedelegationEntry) + (*x.list)[i] = concreteValue +} + +func (x *_Redelegation_4_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*RedelegationEntry) + *x.list = append(*x.list, concreteValue) +} + +func (x *_Redelegation_4_list) AppendMutable() protoreflect.Value { + v := new(RedelegationEntry) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_Redelegation_4_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_Redelegation_4_list) NewElement() protoreflect.Value { + v := new(RedelegationEntry) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_Redelegation_4_list) IsValid() bool { + return x.list != nil +} + +var ( + md_Redelegation protoreflect.MessageDescriptor + fd_Redelegation_delegator_address protoreflect.FieldDescriptor + fd_Redelegation_validator_src_address protoreflect.FieldDescriptor + fd_Redelegation_validator_dst_address protoreflect.FieldDescriptor + fd_Redelegation_entries protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_Redelegation = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("Redelegation") + fd_Redelegation_delegator_address = md_Redelegation.Fields().ByName("delegator_address") + fd_Redelegation_validator_src_address = md_Redelegation.Fields().ByName("validator_src_address") + fd_Redelegation_validator_dst_address = md_Redelegation.Fields().ByName("validator_dst_address") + fd_Redelegation_entries = md_Redelegation.Fields().ByName("entries") +} + +var _ protoreflect.Message = (*fastReflection_Redelegation)(nil) + +type fastReflection_Redelegation Redelegation + +func (x *Redelegation) ProtoReflect() protoreflect.Message { + return (*fastReflection_Redelegation)(x) +} + +func (x *Redelegation) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Redelegation_messageType fastReflection_Redelegation_messageType +var _ protoreflect.MessageType = fastReflection_Redelegation_messageType{} + +type fastReflection_Redelegation_messageType struct{} + +func (x fastReflection_Redelegation_messageType) Zero() protoreflect.Message { + return (*fastReflection_Redelegation)(nil) +} +func (x fastReflection_Redelegation_messageType) New() protoreflect.Message { + return new(fastReflection_Redelegation) +} +func (x fastReflection_Redelegation_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Redelegation +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Redelegation) Descriptor() protoreflect.MessageDescriptor { + return md_Redelegation +} + +// 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_Redelegation) Type() protoreflect.MessageType { + return _fastReflection_Redelegation_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Redelegation) New() protoreflect.Message { + return new(fastReflection_Redelegation) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Redelegation) Interface() protoreflect.ProtoMessage { + return (*Redelegation)(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_Redelegation) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.DelegatorAddress != "" { + value := protoreflect.ValueOfString(x.DelegatorAddress) + if !f(fd_Redelegation_delegator_address, value) { + return + } + } + if x.ValidatorSrcAddress != "" { + value := protoreflect.ValueOfString(x.ValidatorSrcAddress) + if !f(fd_Redelegation_validator_src_address, value) { + return + } + } + if x.ValidatorDstAddress != "" { + value := protoreflect.ValueOfString(x.ValidatorDstAddress) + if !f(fd_Redelegation_validator_dst_address, value) { + return + } + } + if len(x.Entries) != 0 { + value := protoreflect.ValueOfList(&_Redelegation_4_list{list: &x.Entries}) + if !f(fd_Redelegation_entries, 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_Redelegation) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Redelegation.delegator_address": + return x.DelegatorAddress != "" + case "cosmos.staking.v1beta1.Redelegation.validator_src_address": + return x.ValidatorSrcAddress != "" + case "cosmos.staking.v1beta1.Redelegation.validator_dst_address": + return x.ValidatorDstAddress != "" + case "cosmos.staking.v1beta1.Redelegation.entries": + return len(x.Entries) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Redelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Redelegation 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_Redelegation) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Redelegation.delegator_address": + x.DelegatorAddress = "" + case "cosmos.staking.v1beta1.Redelegation.validator_src_address": + x.ValidatorSrcAddress = "" + case "cosmos.staking.v1beta1.Redelegation.validator_dst_address": + x.ValidatorDstAddress = "" + case "cosmos.staking.v1beta1.Redelegation.entries": + x.Entries = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Redelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Redelegation 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_Redelegation) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.Redelegation.delegator_address": + value := x.DelegatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Redelegation.validator_src_address": + value := x.ValidatorSrcAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Redelegation.validator_dst_address": + value := x.ValidatorDstAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Redelegation.entries": + if len(x.Entries) == 0 { + return protoreflect.ValueOfList(&_Redelegation_4_list{}) + } + listValue := &_Redelegation_4_list{list: &x.Entries} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Redelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Redelegation 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_Redelegation) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Redelegation.delegator_address": + x.DelegatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.Redelegation.validator_src_address": + x.ValidatorSrcAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.Redelegation.validator_dst_address": + x.ValidatorDstAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.Redelegation.entries": + lv := value.List() + clv := lv.(*_Redelegation_4_list) + x.Entries = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Redelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Redelegation 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_Redelegation) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Redelegation.entries": + if x.Entries == nil { + x.Entries = []*RedelegationEntry{} + } + value := &_Redelegation_4_list{list: &x.Entries} + return protoreflect.ValueOfList(value) + case "cosmos.staking.v1beta1.Redelegation.delegator_address": + panic(fmt.Errorf("field delegator_address of message cosmos.staking.v1beta1.Redelegation is not mutable")) + case "cosmos.staking.v1beta1.Redelegation.validator_src_address": + panic(fmt.Errorf("field validator_src_address of message cosmos.staking.v1beta1.Redelegation is not mutable")) + case "cosmos.staking.v1beta1.Redelegation.validator_dst_address": + panic(fmt.Errorf("field validator_dst_address of message cosmos.staking.v1beta1.Redelegation is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Redelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Redelegation 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_Redelegation) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Redelegation.delegator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Redelegation.validator_src_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Redelegation.validator_dst_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Redelegation.entries": + list := []*RedelegationEntry{} + return protoreflect.ValueOfList(&_Redelegation_4_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Redelegation")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Redelegation 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_Redelegation) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.Redelegation", 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_Redelegation) 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_Redelegation) 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_Redelegation) 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_Redelegation) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Redelegation) + 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.DelegatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ValidatorSrcAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ValidatorDstAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Entries) > 0 { + for _, e := range x.Entries { + l = options.Size(e) + 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().(*Redelegation) + 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.Entries) > 0 { + for iNdEx := len(x.Entries) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Entries[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x22 + } + } + if len(x.ValidatorDstAddress) > 0 { + i -= len(x.ValidatorDstAddress) + copy(dAtA[i:], x.ValidatorDstAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorDstAddress))) + i-- + dAtA[i] = 0x1a + } + if len(x.ValidatorSrcAddress) > 0 { + i -= len(x.ValidatorSrcAddress) + copy(dAtA[i:], x.ValidatorSrcAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorSrcAddress))) + i-- + dAtA[i] = 0x12 + } + if len(x.DelegatorAddress) > 0 { + i -= len(x.DelegatorAddress) + copy(dAtA[i:], x.DelegatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DelegatorAddress))) + 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().(*Redelegation) + 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: Redelegation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Redelegation: 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 DelegatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.DelegatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorSrcAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ValidatorSrcAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorDstAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ValidatorDstAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Entries", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Entries = append(x.Entries, &RedelegationEntry{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Entries[len(x.Entries)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_Params protoreflect.MessageDescriptor + fd_Params_unbonding_time protoreflect.FieldDescriptor + fd_Params_max_validators protoreflect.FieldDescriptor + fd_Params_max_entries protoreflect.FieldDescriptor + fd_Params_historical_entries protoreflect.FieldDescriptor + fd_Params_bond_denom protoreflect.FieldDescriptor + fd_Params_min_commission_rate protoreflect.FieldDescriptor + fd_Params_key_rotation_fee protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_Params = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("Params") + fd_Params_unbonding_time = md_Params.Fields().ByName("unbonding_time") + fd_Params_max_validators = md_Params.Fields().ByName("max_validators") + fd_Params_max_entries = md_Params.Fields().ByName("max_entries") + fd_Params_historical_entries = md_Params.Fields().ByName("historical_entries") + fd_Params_bond_denom = md_Params.Fields().ByName("bond_denom") + fd_Params_min_commission_rate = md_Params.Fields().ByName("min_commission_rate") + fd_Params_key_rotation_fee = md_Params.Fields().ByName("key_rotation_fee") +} + +var _ protoreflect.Message = (*fastReflection_Params)(nil) + +type fastReflection_Params Params + +func (x *Params) ProtoReflect() protoreflect.Message { + return (*fastReflection_Params)(x) +} + +func (x *Params) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Params_messageType fastReflection_Params_messageType +var _ protoreflect.MessageType = fastReflection_Params_messageType{} + +type fastReflection_Params_messageType struct{} + +func (x fastReflection_Params_messageType) Zero() protoreflect.Message { + return (*fastReflection_Params)(nil) +} +func (x fastReflection_Params_messageType) New() protoreflect.Message { + return new(fastReflection_Params) +} +func (x fastReflection_Params_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Params +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Params) Descriptor() protoreflect.MessageDescriptor { + return md_Params +} + +// 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_Params) Type() protoreflect.MessageType { + return _fastReflection_Params_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Params) New() protoreflect.Message { + return new(fastReflection_Params) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Params) Interface() protoreflect.ProtoMessage { + return (*Params)(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_Params) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.UnbondingTime != nil { + value := protoreflect.ValueOfMessage(x.UnbondingTime.ProtoReflect()) + if !f(fd_Params_unbonding_time, value) { + return + } + } + if x.MaxValidators != uint32(0) { + value := protoreflect.ValueOfUint32(x.MaxValidators) + if !f(fd_Params_max_validators, value) { + return + } + } + if x.MaxEntries != uint32(0) { + value := protoreflect.ValueOfUint32(x.MaxEntries) + if !f(fd_Params_max_entries, value) { + return + } + } + if x.HistoricalEntries != uint32(0) { + value := protoreflect.ValueOfUint32(x.HistoricalEntries) + if !f(fd_Params_historical_entries, value) { + return + } + } + if x.BondDenom != "" { + value := protoreflect.ValueOfString(x.BondDenom) + if !f(fd_Params_bond_denom, value) { + return + } + } + if x.MinCommissionRate != "" { + value := protoreflect.ValueOfString(x.MinCommissionRate) + if !f(fd_Params_min_commission_rate, value) { + return + } + } + if x.KeyRotationFee != nil { + value := protoreflect.ValueOfMessage(x.KeyRotationFee.ProtoReflect()) + if !f(fd_Params_key_rotation_fee, 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_Params) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Params.unbonding_time": + return x.UnbondingTime != nil + case "cosmos.staking.v1beta1.Params.max_validators": + return x.MaxValidators != uint32(0) + case "cosmos.staking.v1beta1.Params.max_entries": + return x.MaxEntries != uint32(0) + case "cosmos.staking.v1beta1.Params.historical_entries": + return x.HistoricalEntries != uint32(0) + case "cosmos.staking.v1beta1.Params.bond_denom": + return x.BondDenom != "" + case "cosmos.staking.v1beta1.Params.min_commission_rate": + return x.MinCommissionRate != "" + case "cosmos.staking.v1beta1.Params.key_rotation_fee": + return x.KeyRotationFee != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Params 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_Params) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Params.unbonding_time": + x.UnbondingTime = nil + case "cosmos.staking.v1beta1.Params.max_validators": + x.MaxValidators = uint32(0) + case "cosmos.staking.v1beta1.Params.max_entries": + x.MaxEntries = uint32(0) + case "cosmos.staking.v1beta1.Params.historical_entries": + x.HistoricalEntries = uint32(0) + case "cosmos.staking.v1beta1.Params.bond_denom": + x.BondDenom = "" + case "cosmos.staking.v1beta1.Params.min_commission_rate": + x.MinCommissionRate = "" + case "cosmos.staking.v1beta1.Params.key_rotation_fee": + x.KeyRotationFee = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Params 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_Params) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.Params.unbonding_time": + value := x.UnbondingTime + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.Params.max_validators": + value := x.MaxValidators + return protoreflect.ValueOfUint32(value) + case "cosmos.staking.v1beta1.Params.max_entries": + value := x.MaxEntries + return protoreflect.ValueOfUint32(value) + case "cosmos.staking.v1beta1.Params.historical_entries": + value := x.HistoricalEntries + return protoreflect.ValueOfUint32(value) + case "cosmos.staking.v1beta1.Params.bond_denom": + value := x.BondDenom + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Params.min_commission_rate": + value := x.MinCommissionRate + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Params.key_rotation_fee": + value := x.KeyRotationFee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Params 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_Params) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Params.unbonding_time": + x.UnbondingTime = value.Message().Interface().(*durationpb.Duration) + case "cosmos.staking.v1beta1.Params.max_validators": + x.MaxValidators = uint32(value.Uint()) + case "cosmos.staking.v1beta1.Params.max_entries": + x.MaxEntries = uint32(value.Uint()) + case "cosmos.staking.v1beta1.Params.historical_entries": + x.HistoricalEntries = uint32(value.Uint()) + case "cosmos.staking.v1beta1.Params.bond_denom": + x.BondDenom = value.Interface().(string) + case "cosmos.staking.v1beta1.Params.min_commission_rate": + x.MinCommissionRate = value.Interface().(string) + case "cosmos.staking.v1beta1.Params.key_rotation_fee": + x.KeyRotationFee = value.Message().Interface().(*v1beta1.Coin) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Params 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_Params) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Params.unbonding_time": + if x.UnbondingTime == nil { + x.UnbondingTime = new(durationpb.Duration) + } + return protoreflect.ValueOfMessage(x.UnbondingTime.ProtoReflect()) + case "cosmos.staking.v1beta1.Params.key_rotation_fee": + if x.KeyRotationFee == nil { + x.KeyRotationFee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.KeyRotationFee.ProtoReflect()) + case "cosmos.staking.v1beta1.Params.max_validators": + panic(fmt.Errorf("field max_validators of message cosmos.staking.v1beta1.Params is not mutable")) + case "cosmos.staking.v1beta1.Params.max_entries": + panic(fmt.Errorf("field max_entries of message cosmos.staking.v1beta1.Params is not mutable")) + case "cosmos.staking.v1beta1.Params.historical_entries": + panic(fmt.Errorf("field historical_entries of message cosmos.staking.v1beta1.Params is not mutable")) + case "cosmos.staking.v1beta1.Params.bond_denom": + panic(fmt.Errorf("field bond_denom of message cosmos.staking.v1beta1.Params is not mutable")) + case "cosmos.staking.v1beta1.Params.min_commission_rate": + panic(fmt.Errorf("field min_commission_rate of message cosmos.staking.v1beta1.Params is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Params 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_Params) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Params.unbonding_time": + m := new(durationpb.Duration) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.Params.max_validators": + return protoreflect.ValueOfUint32(uint32(0)) + case "cosmos.staking.v1beta1.Params.max_entries": + return protoreflect.ValueOfUint32(uint32(0)) + case "cosmos.staking.v1beta1.Params.historical_entries": + return protoreflect.ValueOfUint32(uint32(0)) + case "cosmos.staking.v1beta1.Params.bond_denom": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Params.min_commission_rate": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Params.key_rotation_fee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Params 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_Params) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.Params", 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_Params) 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_Params) 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_Params) 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_Params) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Params) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.UnbondingTime != nil { + l = options.Size(x.UnbondingTime) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.MaxValidators != 0 { + n += 1 + runtime.Sov(uint64(x.MaxValidators)) + } + if x.MaxEntries != 0 { + n += 1 + runtime.Sov(uint64(x.MaxEntries)) + } + if x.HistoricalEntries != 0 { + n += 1 + runtime.Sov(uint64(x.HistoricalEntries)) + } + l = len(x.BondDenom) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.MinCommissionRate) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.KeyRotationFee != nil { + l = options.Size(x.KeyRotationFee) + 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().(*Params) + 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 x.KeyRotationFee != nil { + encoded, err := options.Marshal(x.KeyRotationFee) + 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] = 0x3a + } + if len(x.MinCommissionRate) > 0 { + i -= len(x.MinCommissionRate) + copy(dAtA[i:], x.MinCommissionRate) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MinCommissionRate))) + i-- + dAtA[i] = 0x32 + } + if len(x.BondDenom) > 0 { + i -= len(x.BondDenom) + copy(dAtA[i:], x.BondDenom) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BondDenom))) + i-- + dAtA[i] = 0x2a + } + if x.HistoricalEntries != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.HistoricalEntries)) + i-- + dAtA[i] = 0x20 + } + if x.MaxEntries != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.MaxEntries)) + i-- + dAtA[i] = 0x18 + } + if x.MaxValidators != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.MaxValidators)) + i-- + dAtA[i] = 0x10 + } + if x.UnbondingTime != nil { + encoded, err := options.Marshal(x.UnbondingTime) + 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] = 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().(*Params) + 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: Params: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Params: 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 UnbondingTime", 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.UnbondingTime == nil { + x.UnbondingTime = &durationpb.Duration{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.UnbondingTime); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MaxValidators", wireType) + } + x.MaxValidators = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.MaxValidators |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MaxEntries", wireType) + } + x.MaxEntries = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.MaxEntries |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HistoricalEntries", wireType) + } + x.HistoricalEntries = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.HistoricalEntries |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BondDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.BondDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MinCommissionRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MinCommissionRate = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field KeyRotationFee", 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.KeyRotationFee == nil { + x.KeyRotationFee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.KeyRotationFee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_DelegationResponse protoreflect.MessageDescriptor + fd_DelegationResponse_delegation protoreflect.FieldDescriptor + fd_DelegationResponse_balance protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_DelegationResponse = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("DelegationResponse") + fd_DelegationResponse_delegation = md_DelegationResponse.Fields().ByName("delegation") + fd_DelegationResponse_balance = md_DelegationResponse.Fields().ByName("balance") +} + +var _ protoreflect.Message = (*fastReflection_DelegationResponse)(nil) + +type fastReflection_DelegationResponse DelegationResponse + +func (x *DelegationResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_DelegationResponse)(x) +} + +func (x *DelegationResponse) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_DelegationResponse_messageType fastReflection_DelegationResponse_messageType +var _ protoreflect.MessageType = fastReflection_DelegationResponse_messageType{} + +type fastReflection_DelegationResponse_messageType struct{} + +func (x fastReflection_DelegationResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_DelegationResponse)(nil) +} +func (x fastReflection_DelegationResponse_messageType) New() protoreflect.Message { + return new(fastReflection_DelegationResponse) +} +func (x fastReflection_DelegationResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_DelegationResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_DelegationResponse) Descriptor() protoreflect.MessageDescriptor { + return md_DelegationResponse +} + +// 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_DelegationResponse) Type() protoreflect.MessageType { + return _fastReflection_DelegationResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_DelegationResponse) New() protoreflect.Message { + return new(fastReflection_DelegationResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_DelegationResponse) Interface() protoreflect.ProtoMessage { + return (*DelegationResponse)(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_DelegationResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Delegation != nil { + value := protoreflect.ValueOfMessage(x.Delegation.ProtoReflect()) + if !f(fd_DelegationResponse_delegation, value) { + return + } + } + if x.Balance != nil { + value := protoreflect.ValueOfMessage(x.Balance.ProtoReflect()) + if !f(fd_DelegationResponse_balance, 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_DelegationResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DelegationResponse.delegation": + return x.Delegation != nil + case "cosmos.staking.v1beta1.DelegationResponse.balance": + return x.Balance != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DelegationResponse 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_DelegationResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DelegationResponse.delegation": + x.Delegation = nil + case "cosmos.staking.v1beta1.DelegationResponse.balance": + x.Balance = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DelegationResponse 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_DelegationResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.DelegationResponse.delegation": + value := x.Delegation + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.DelegationResponse.balance": + value := x.Balance + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DelegationResponse 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_DelegationResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DelegationResponse.delegation": + x.Delegation = value.Message().Interface().(*Delegation) + case "cosmos.staking.v1beta1.DelegationResponse.balance": + x.Balance = value.Message().Interface().(*v1beta1.Coin) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DelegationResponse 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_DelegationResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DelegationResponse.delegation": + if x.Delegation == nil { + x.Delegation = new(Delegation) + } + return protoreflect.ValueOfMessage(x.Delegation.ProtoReflect()) + case "cosmos.staking.v1beta1.DelegationResponse.balance": + if x.Balance == nil { + x.Balance = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.Balance.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DelegationResponse 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_DelegationResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.DelegationResponse.delegation": + m := new(Delegation) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.DelegationResponse.balance": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.DelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.DelegationResponse 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_DelegationResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.DelegationResponse", 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_DelegationResponse) 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_DelegationResponse) 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_DelegationResponse) 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_DelegationResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*DelegationResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Delegation != nil { + l = options.Size(x.Delegation) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Balance != nil { + l = options.Size(x.Balance) + 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().(*DelegationResponse) + 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 x.Balance != nil { + encoded, err := options.Marshal(x.Balance) + 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.Delegation != nil { + encoded, err := options.Marshal(x.Delegation) + 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] = 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().(*DelegationResponse) + 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: DelegationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: DelegationResponse: 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 Delegation", 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.Delegation == nil { + x.Delegation = &Delegation{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Delegation); err != nil { + 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 Balance", 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.Balance == nil { + x.Balance = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Balance); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_RedelegationEntryResponse protoreflect.MessageDescriptor + fd_RedelegationEntryResponse_redelegation_entry protoreflect.FieldDescriptor + fd_RedelegationEntryResponse_balance protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_RedelegationEntryResponse = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("RedelegationEntryResponse") + fd_RedelegationEntryResponse_redelegation_entry = md_RedelegationEntryResponse.Fields().ByName("redelegation_entry") + fd_RedelegationEntryResponse_balance = md_RedelegationEntryResponse.Fields().ByName("balance") +} + +var _ protoreflect.Message = (*fastReflection_RedelegationEntryResponse)(nil) + +type fastReflection_RedelegationEntryResponse RedelegationEntryResponse + +func (x *RedelegationEntryResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_RedelegationEntryResponse)(x) +} + +func (x *RedelegationEntryResponse) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_RedelegationEntryResponse_messageType fastReflection_RedelegationEntryResponse_messageType +var _ protoreflect.MessageType = fastReflection_RedelegationEntryResponse_messageType{} + +type fastReflection_RedelegationEntryResponse_messageType struct{} + +func (x fastReflection_RedelegationEntryResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_RedelegationEntryResponse)(nil) +} +func (x fastReflection_RedelegationEntryResponse_messageType) New() protoreflect.Message { + return new(fastReflection_RedelegationEntryResponse) +} +func (x fastReflection_RedelegationEntryResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_RedelegationEntryResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_RedelegationEntryResponse) Descriptor() protoreflect.MessageDescriptor { + return md_RedelegationEntryResponse +} + +// 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_RedelegationEntryResponse) Type() protoreflect.MessageType { + return _fastReflection_RedelegationEntryResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_RedelegationEntryResponse) New() protoreflect.Message { + return new(fastReflection_RedelegationEntryResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_RedelegationEntryResponse) Interface() protoreflect.ProtoMessage { + return (*RedelegationEntryResponse)(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_RedelegationEntryResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.RedelegationEntry != nil { + value := protoreflect.ValueOfMessage(x.RedelegationEntry.ProtoReflect()) + if !f(fd_RedelegationEntryResponse_redelegation_entry, value) { + return + } + } + if x.Balance != "" { + value := protoreflect.ValueOfString(x.Balance) + if !f(fd_RedelegationEntryResponse_balance, 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_RedelegationEntryResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry": + return x.RedelegationEntry != nil + case "cosmos.staking.v1beta1.RedelegationEntryResponse.balance": + return x.Balance != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntryResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntryResponse 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_RedelegationEntryResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry": + x.RedelegationEntry = nil + case "cosmos.staking.v1beta1.RedelegationEntryResponse.balance": + x.Balance = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntryResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntryResponse 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_RedelegationEntryResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry": + value := x.RedelegationEntry + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.RedelegationEntryResponse.balance": + value := x.Balance + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntryResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntryResponse 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_RedelegationEntryResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry": + x.RedelegationEntry = value.Message().Interface().(*RedelegationEntry) + case "cosmos.staking.v1beta1.RedelegationEntryResponse.balance": + x.Balance = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntryResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntryResponse 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_RedelegationEntryResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry": + if x.RedelegationEntry == nil { + x.RedelegationEntry = new(RedelegationEntry) + } + return protoreflect.ValueOfMessage(x.RedelegationEntry.ProtoReflect()) + case "cosmos.staking.v1beta1.RedelegationEntryResponse.balance": + panic(fmt.Errorf("field balance of message cosmos.staking.v1beta1.RedelegationEntryResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntryResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntryResponse 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_RedelegationEntryResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry": + m := new(RedelegationEntry) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.RedelegationEntryResponse.balance": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationEntryResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationEntryResponse 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_RedelegationEntryResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.RedelegationEntryResponse", 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_RedelegationEntryResponse) 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_RedelegationEntryResponse) 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_RedelegationEntryResponse) 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_RedelegationEntryResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*RedelegationEntryResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.RedelegationEntry != nil { + l = options.Size(x.RedelegationEntry) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Balance) + 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().(*RedelegationEntryResponse) + 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.Balance) > 0 { + i -= len(x.Balance) + copy(dAtA[i:], x.Balance) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Balance))) + i-- + dAtA[i] = 0x22 + } + if x.RedelegationEntry != nil { + encoded, err := options.Marshal(x.RedelegationEntry) + 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] = 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().(*RedelegationEntryResponse) + 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: RedelegationEntryResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RedelegationEntryResponse: 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 RedelegationEntry", 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.RedelegationEntry == nil { + x.RedelegationEntry = &RedelegationEntry{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.RedelegationEntry); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Balance = string(dAtA[iNdEx:postIndex]) + 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 _ protoreflect.List = (*_RedelegationResponse_2_list)(nil) + +type _RedelegationResponse_2_list struct { + list *[]*RedelegationEntryResponse +} + +func (x *_RedelegationResponse_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_RedelegationResponse_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_RedelegationResponse_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*RedelegationEntryResponse) + (*x.list)[i] = concreteValue +} + +func (x *_RedelegationResponse_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*RedelegationEntryResponse) + *x.list = append(*x.list, concreteValue) +} + +func (x *_RedelegationResponse_2_list) AppendMutable() protoreflect.Value { + v := new(RedelegationEntryResponse) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_RedelegationResponse_2_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_RedelegationResponse_2_list) NewElement() protoreflect.Value { + v := new(RedelegationEntryResponse) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_RedelegationResponse_2_list) IsValid() bool { + return x.list != nil +} + +var ( + md_RedelegationResponse protoreflect.MessageDescriptor + fd_RedelegationResponse_redelegation protoreflect.FieldDescriptor + fd_RedelegationResponse_entries protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_RedelegationResponse = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("RedelegationResponse") + fd_RedelegationResponse_redelegation = md_RedelegationResponse.Fields().ByName("redelegation") + fd_RedelegationResponse_entries = md_RedelegationResponse.Fields().ByName("entries") +} + +var _ protoreflect.Message = (*fastReflection_RedelegationResponse)(nil) + +type fastReflection_RedelegationResponse RedelegationResponse + +func (x *RedelegationResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_RedelegationResponse)(x) +} + +func (x *RedelegationResponse) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_RedelegationResponse_messageType fastReflection_RedelegationResponse_messageType +var _ protoreflect.MessageType = fastReflection_RedelegationResponse_messageType{} + +type fastReflection_RedelegationResponse_messageType struct{} + +func (x fastReflection_RedelegationResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_RedelegationResponse)(nil) +} +func (x fastReflection_RedelegationResponse_messageType) New() protoreflect.Message { + return new(fastReflection_RedelegationResponse) +} +func (x fastReflection_RedelegationResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_RedelegationResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_RedelegationResponse) Descriptor() protoreflect.MessageDescriptor { + return md_RedelegationResponse +} + +// 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_RedelegationResponse) Type() protoreflect.MessageType { + return _fastReflection_RedelegationResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_RedelegationResponse) New() protoreflect.Message { + return new(fastReflection_RedelegationResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_RedelegationResponse) Interface() protoreflect.ProtoMessage { + return (*RedelegationResponse)(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_RedelegationResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Redelegation != nil { + value := protoreflect.ValueOfMessage(x.Redelegation.ProtoReflect()) + if !f(fd_RedelegationResponse_redelegation, value) { + return + } + } + if len(x.Entries) != 0 { + value := protoreflect.ValueOfList(&_RedelegationResponse_2_list{list: &x.Entries}) + if !f(fd_RedelegationResponse_entries, 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_RedelegationResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationResponse.redelegation": + return x.Redelegation != nil + case "cosmos.staking.v1beta1.RedelegationResponse.entries": + return len(x.Entries) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationResponse 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_RedelegationResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationResponse.redelegation": + x.Redelegation = nil + case "cosmos.staking.v1beta1.RedelegationResponse.entries": + x.Entries = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationResponse 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_RedelegationResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.RedelegationResponse.redelegation": + value := x.Redelegation + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.RedelegationResponse.entries": + if len(x.Entries) == 0 { + return protoreflect.ValueOfList(&_RedelegationResponse_2_list{}) + } + listValue := &_RedelegationResponse_2_list{list: &x.Entries} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationResponse 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_RedelegationResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationResponse.redelegation": + x.Redelegation = value.Message().Interface().(*Redelegation) + case "cosmos.staking.v1beta1.RedelegationResponse.entries": + lv := value.List() + clv := lv.(*_RedelegationResponse_2_list) + x.Entries = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationResponse 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_RedelegationResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationResponse.redelegation": + if x.Redelegation == nil { + x.Redelegation = new(Redelegation) + } + return protoreflect.ValueOfMessage(x.Redelegation.ProtoReflect()) + case "cosmos.staking.v1beta1.RedelegationResponse.entries": + if x.Entries == nil { + x.Entries = []*RedelegationEntryResponse{} + } + value := &_RedelegationResponse_2_list{list: &x.Entries} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationResponse 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_RedelegationResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.RedelegationResponse.redelegation": + m := new(Redelegation) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.RedelegationResponse.entries": + list := []*RedelegationEntryResponse{} + return protoreflect.ValueOfList(&_RedelegationResponse_2_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.RedelegationResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.RedelegationResponse 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_RedelegationResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.RedelegationResponse", 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_RedelegationResponse) 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_RedelegationResponse) 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_RedelegationResponse) 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_RedelegationResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*RedelegationResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Redelegation != nil { + l = options.Size(x.Redelegation) + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Entries) > 0 { + for _, e := range x.Entries { + l = options.Size(e) + 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().(*RedelegationResponse) + 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.Entries) > 0 { + for iNdEx := len(x.Entries) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Entries[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + } + if x.Redelegation != nil { + encoded, err := options.Marshal(x.Redelegation) + 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] = 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().(*RedelegationResponse) + 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: RedelegationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RedelegationResponse: 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 Redelegation", 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.Redelegation == nil { + x.Redelegation = &Redelegation{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Redelegation); err != nil { + 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 Entries", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Entries = append(x.Entries, &RedelegationEntryResponse{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Entries[len(x.Entries)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_Pool protoreflect.MessageDescriptor + fd_Pool_not_bonded_tokens protoreflect.FieldDescriptor + fd_Pool_bonded_tokens protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_Pool = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("Pool") + fd_Pool_not_bonded_tokens = md_Pool.Fields().ByName("not_bonded_tokens") + fd_Pool_bonded_tokens = md_Pool.Fields().ByName("bonded_tokens") +} + +var _ protoreflect.Message = (*fastReflection_Pool)(nil) + +type fastReflection_Pool Pool + +func (x *Pool) ProtoReflect() protoreflect.Message { + return (*fastReflection_Pool)(x) +} + +func (x *Pool) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Pool_messageType fastReflection_Pool_messageType +var _ protoreflect.MessageType = fastReflection_Pool_messageType{} + +type fastReflection_Pool_messageType struct{} + +func (x fastReflection_Pool_messageType) Zero() protoreflect.Message { + return (*fastReflection_Pool)(nil) +} +func (x fastReflection_Pool_messageType) New() protoreflect.Message { + return new(fastReflection_Pool) +} +func (x fastReflection_Pool_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Pool +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Pool) Descriptor() protoreflect.MessageDescriptor { + return md_Pool +} + +// 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_Pool) Type() protoreflect.MessageType { + return _fastReflection_Pool_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Pool) New() protoreflect.Message { + return new(fastReflection_Pool) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Pool) Interface() protoreflect.ProtoMessage { + return (*Pool)(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_Pool) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.NotBondedTokens != "" { + value := protoreflect.ValueOfString(x.NotBondedTokens) + if !f(fd_Pool_not_bonded_tokens, value) { + return + } + } + if x.BondedTokens != "" { + value := protoreflect.ValueOfString(x.BondedTokens) + if !f(fd_Pool_bonded_tokens, 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_Pool) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Pool.not_bonded_tokens": + return x.NotBondedTokens != "" + case "cosmos.staking.v1beta1.Pool.bonded_tokens": + return x.BondedTokens != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Pool")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Pool 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_Pool) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Pool.not_bonded_tokens": + x.NotBondedTokens = "" + case "cosmos.staking.v1beta1.Pool.bonded_tokens": + x.BondedTokens = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Pool")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Pool 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_Pool) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.Pool.not_bonded_tokens": + value := x.NotBondedTokens + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.Pool.bonded_tokens": + value := x.BondedTokens + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Pool")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Pool 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_Pool) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Pool.not_bonded_tokens": + x.NotBondedTokens = value.Interface().(string) + case "cosmos.staking.v1beta1.Pool.bonded_tokens": + x.BondedTokens = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Pool")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Pool 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_Pool) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Pool.not_bonded_tokens": + panic(fmt.Errorf("field not_bonded_tokens of message cosmos.staking.v1beta1.Pool is not mutable")) + case "cosmos.staking.v1beta1.Pool.bonded_tokens": + panic(fmt.Errorf("field bonded_tokens of message cosmos.staking.v1beta1.Pool is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Pool")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Pool 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_Pool) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.Pool.not_bonded_tokens": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.Pool.bonded_tokens": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Pool")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.Pool 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_Pool) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.Pool", 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_Pool) 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_Pool) 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_Pool) 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_Pool) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Pool) + 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.NotBondedTokens) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.BondedTokens) + 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().(*Pool) + 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.BondedTokens) > 0 { + i -= len(x.BondedTokens) + copy(dAtA[i:], x.BondedTokens) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BondedTokens))) + i-- + dAtA[i] = 0x12 + } + if len(x.NotBondedTokens) > 0 { + i -= len(x.NotBondedTokens) + copy(dAtA[i:], x.NotBondedTokens) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NotBondedTokens))) + 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().(*Pool) + 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: Pool: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Pool: 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 NotBondedTokens", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NotBondedTokens = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BondedTokens", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.BondedTokens = string(dAtA[iNdEx:postIndex]) + 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 _ protoreflect.List = (*_ValidatorUpdates_1_list)(nil) + +type _ValidatorUpdates_1_list struct { + list *[]*v11.ValidatorUpdate +} + +func (x *_ValidatorUpdates_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_ValidatorUpdates_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_ValidatorUpdates_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*v11.ValidatorUpdate) + (*x.list)[i] = concreteValue +} + +func (x *_ValidatorUpdates_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*v11.ValidatorUpdate) + *x.list = append(*x.list, concreteValue) +} + +func (x *_ValidatorUpdates_1_list) AppendMutable() protoreflect.Value { + v := new(v11.ValidatorUpdate) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_ValidatorUpdates_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_ValidatorUpdates_1_list) NewElement() protoreflect.Value { + v := new(v11.ValidatorUpdate) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_ValidatorUpdates_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_ValidatorUpdates protoreflect.MessageDescriptor + fd_ValidatorUpdates_updates protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_ValidatorUpdates = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("ValidatorUpdates") + fd_ValidatorUpdates_updates = md_ValidatorUpdates.Fields().ByName("updates") +} + +var _ protoreflect.Message = (*fastReflection_ValidatorUpdates)(nil) + +type fastReflection_ValidatorUpdates ValidatorUpdates + +func (x *ValidatorUpdates) ProtoReflect() protoreflect.Message { + return (*fastReflection_ValidatorUpdates)(x) +} + +func (x *ValidatorUpdates) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_ValidatorUpdates_messageType fastReflection_ValidatorUpdates_messageType +var _ protoreflect.MessageType = fastReflection_ValidatorUpdates_messageType{} + +type fastReflection_ValidatorUpdates_messageType struct{} + +func (x fastReflection_ValidatorUpdates_messageType) Zero() protoreflect.Message { + return (*fastReflection_ValidatorUpdates)(nil) +} +func (x fastReflection_ValidatorUpdates_messageType) New() protoreflect.Message { + return new(fastReflection_ValidatorUpdates) +} +func (x fastReflection_ValidatorUpdates_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ValidatorUpdates +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_ValidatorUpdates) Descriptor() protoreflect.MessageDescriptor { + return md_ValidatorUpdates +} + +// 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_ValidatorUpdates) Type() protoreflect.MessageType { + return _fastReflection_ValidatorUpdates_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_ValidatorUpdates) New() protoreflect.Message { + return new(fastReflection_ValidatorUpdates) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_ValidatorUpdates) Interface() protoreflect.ProtoMessage { + return (*ValidatorUpdates)(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_ValidatorUpdates) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Updates) != 0 { + value := protoreflect.ValueOfList(&_ValidatorUpdates_1_list{list: &x.Updates}) + if !f(fd_ValidatorUpdates_updates, 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_ValidatorUpdates) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValidatorUpdates.updates": + return len(x.Updates) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValidatorUpdates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValidatorUpdates 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_ValidatorUpdates) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValidatorUpdates.updates": + x.Updates = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValidatorUpdates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValidatorUpdates 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_ValidatorUpdates) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.ValidatorUpdates.updates": + if len(x.Updates) == 0 { + return protoreflect.ValueOfList(&_ValidatorUpdates_1_list{}) + } + listValue := &_ValidatorUpdates_1_list{list: &x.Updates} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValidatorUpdates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValidatorUpdates 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_ValidatorUpdates) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValidatorUpdates.updates": + lv := value.List() + clv := lv.(*_ValidatorUpdates_1_list) + x.Updates = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValidatorUpdates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValidatorUpdates 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_ValidatorUpdates) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValidatorUpdates.updates": + if x.Updates == nil { + x.Updates = []*v11.ValidatorUpdate{} + } + value := &_ValidatorUpdates_1_list{list: &x.Updates} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValidatorUpdates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValidatorUpdates 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_ValidatorUpdates) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValidatorUpdates.updates": + list := []*v11.ValidatorUpdate{} + return protoreflect.ValueOfList(&_ValidatorUpdates_1_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValidatorUpdates")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValidatorUpdates 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_ValidatorUpdates) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.ValidatorUpdates", 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_ValidatorUpdates) 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_ValidatorUpdates) 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_ValidatorUpdates) 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_ValidatorUpdates) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*ValidatorUpdates) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Updates) > 0 { + for _, e := range x.Updates { + l = options.Size(e) + 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().(*ValidatorUpdates) + 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.Updates) > 0 { + for iNdEx := len(x.Updates) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Updates[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 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().(*ValidatorUpdates) + 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: ValidatorUpdates: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ValidatorUpdates: 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 Updates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Updates = append(x.Updates, &v11.ValidatorUpdate{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Updates[len(x.Updates)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_ConsPubKeyRotationHistory protoreflect.MessageDescriptor + fd_ConsPubKeyRotationHistory_operator_address protoreflect.FieldDescriptor + fd_ConsPubKeyRotationHistory_old_cons_pubkey protoreflect.FieldDescriptor + fd_ConsPubKeyRotationHistory_new_cons_pubkey protoreflect.FieldDescriptor + fd_ConsPubKeyRotationHistory_height protoreflect.FieldDescriptor + fd_ConsPubKeyRotationHistory_fee protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_ConsPubKeyRotationHistory = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("ConsPubKeyRotationHistory") + fd_ConsPubKeyRotationHistory_operator_address = md_ConsPubKeyRotationHistory.Fields().ByName("operator_address") + fd_ConsPubKeyRotationHistory_old_cons_pubkey = md_ConsPubKeyRotationHistory.Fields().ByName("old_cons_pubkey") + fd_ConsPubKeyRotationHistory_new_cons_pubkey = md_ConsPubKeyRotationHistory.Fields().ByName("new_cons_pubkey") + fd_ConsPubKeyRotationHistory_height = md_ConsPubKeyRotationHistory.Fields().ByName("height") + fd_ConsPubKeyRotationHistory_fee = md_ConsPubKeyRotationHistory.Fields().ByName("fee") +} + +var _ protoreflect.Message = (*fastReflection_ConsPubKeyRotationHistory)(nil) + +type fastReflection_ConsPubKeyRotationHistory ConsPubKeyRotationHistory + +func (x *ConsPubKeyRotationHistory) ProtoReflect() protoreflect.Message { + return (*fastReflection_ConsPubKeyRotationHistory)(x) +} + +func (x *ConsPubKeyRotationHistory) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_ConsPubKeyRotationHistory_messageType fastReflection_ConsPubKeyRotationHistory_messageType +var _ protoreflect.MessageType = fastReflection_ConsPubKeyRotationHistory_messageType{} + +type fastReflection_ConsPubKeyRotationHistory_messageType struct{} + +func (x fastReflection_ConsPubKeyRotationHistory_messageType) Zero() protoreflect.Message { + return (*fastReflection_ConsPubKeyRotationHistory)(nil) +} +func (x fastReflection_ConsPubKeyRotationHistory_messageType) New() protoreflect.Message { + return new(fastReflection_ConsPubKeyRotationHistory) +} +func (x fastReflection_ConsPubKeyRotationHistory_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ConsPubKeyRotationHistory +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_ConsPubKeyRotationHistory) Descriptor() protoreflect.MessageDescriptor { + return md_ConsPubKeyRotationHistory +} + +// 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_ConsPubKeyRotationHistory) Type() protoreflect.MessageType { + return _fastReflection_ConsPubKeyRotationHistory_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_ConsPubKeyRotationHistory) New() protoreflect.Message { + return new(fastReflection_ConsPubKeyRotationHistory) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_ConsPubKeyRotationHistory) Interface() protoreflect.ProtoMessage { + return (*ConsPubKeyRotationHistory)(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_ConsPubKeyRotationHistory) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.OperatorAddress) != 0 { + value := protoreflect.ValueOfBytes(x.OperatorAddress) + if !f(fd_ConsPubKeyRotationHistory_operator_address, value) { + return + } + } + if x.OldConsPubkey != nil { + value := protoreflect.ValueOfMessage(x.OldConsPubkey.ProtoReflect()) + if !f(fd_ConsPubKeyRotationHistory_old_cons_pubkey, value) { + return + } + } + if x.NewConsPubkey != nil { + value := protoreflect.ValueOfMessage(x.NewConsPubkey.ProtoReflect()) + if !f(fd_ConsPubKeyRotationHistory_new_cons_pubkey, value) { + return + } + } + if x.Height != uint64(0) { + value := protoreflect.ValueOfUint64(x.Height) + if !f(fd_ConsPubKeyRotationHistory_height, value) { + return + } + } + if x.Fee != nil { + value := protoreflect.ValueOfMessage(x.Fee.ProtoReflect()) + if !f(fd_ConsPubKeyRotationHistory_fee, 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_ConsPubKeyRotationHistory) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + return len(x.OperatorAddress) != 0 + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + return x.OldConsPubkey != nil + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + return x.NewConsPubkey != nil + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + return x.Height != uint64(0) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + return x.Fee != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory 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_ConsPubKeyRotationHistory) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + x.OperatorAddress = nil + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + x.OldConsPubkey = nil + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + x.NewConsPubkey = nil + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + x.Height = uint64(0) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + x.Fee = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory 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_ConsPubKeyRotationHistory) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + value := x.OperatorAddress + return protoreflect.ValueOfBytes(value) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + value := x.OldConsPubkey + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + value := x.NewConsPubkey + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + value := x.Height + return protoreflect.ValueOfUint64(value) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + value := x.Fee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory 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_ConsPubKeyRotationHistory) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + x.OperatorAddress = value.Bytes() + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + x.OldConsPubkey = value.Message().Interface().(*anypb.Any) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + x.NewConsPubkey = value.Message().Interface().(*anypb.Any) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + x.Height = value.Uint() + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + x.Fee = value.Message().Interface().(*v1beta1.Coin) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory 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_ConsPubKeyRotationHistory) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + if x.OldConsPubkey == nil { + x.OldConsPubkey = new(anypb.Any) + } + return protoreflect.ValueOfMessage(x.OldConsPubkey.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + if x.NewConsPubkey == nil { + x.NewConsPubkey = new(anypb.Any) + } + return protoreflect.ValueOfMessage(x.NewConsPubkey.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + if x.Fee == nil { + x.Fee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.Fee.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + panic(fmt.Errorf("field operator_address of message cosmos.staking.v1beta1.ConsPubKeyRotationHistory is not mutable")) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + panic(fmt.Errorf("field height of message cosmos.staking.v1beta1.ConsPubKeyRotationHistory is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory 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_ConsPubKeyRotationHistory) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + return protoreflect.ValueOfBytes(nil) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + m := new(anypb.Any) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + m := new(anypb.Any) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory 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_ConsPubKeyRotationHistory) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.ConsPubKeyRotationHistory", 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_ConsPubKeyRotationHistory) 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_ConsPubKeyRotationHistory) 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_ConsPubKeyRotationHistory) 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_ConsPubKeyRotationHistory) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*ConsPubKeyRotationHistory) + 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.OperatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.OldConsPubkey != nil { + l = options.Size(x.OldConsPubkey) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.NewConsPubkey != nil { + l = options.Size(x.NewConsPubkey) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Height != 0 { + n += 1 + runtime.Sov(uint64(x.Height)) + } + if x.Fee != nil { + l = options.Size(x.Fee) + 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().(*ConsPubKeyRotationHistory) + 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 x.Fee != nil { + encoded, err := options.Marshal(x.Fee) + 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] = 0x2a + } + if x.Height != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Height)) + i-- + dAtA[i] = 0x20 + } + if x.NewConsPubkey != nil { + encoded, err := options.Marshal(x.NewConsPubkey) + 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] = 0x1a + } + if x.OldConsPubkey != nil { + encoded, err := options.Marshal(x.OldConsPubkey) + 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.OperatorAddress) > 0 { + i -= len(x.OperatorAddress) + copy(dAtA[i:], x.OperatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OperatorAddress))) + 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().(*ConsPubKeyRotationHistory) + 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: ConsPubKeyRotationHistory: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ConsPubKeyRotationHistory: 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 OperatorAddress", 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.OperatorAddress = append(x.OperatorAddress[:0], dAtA[iNdEx:postIndex]...) + if x.OperatorAddress == nil { + x.OperatorAddress = []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 OldConsPubkey", 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.OldConsPubkey == nil { + x.OldConsPubkey = &anypb.Any{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.OldConsPubkey); 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 NewConsPubkey", 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.NewConsPubkey == nil { + x.NewConsPubkey = &anypb.Any{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NewConsPubkey); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + x.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Height |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Fee", 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.Fee == nil { + x.Fee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Fee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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 _ protoreflect.List = (*_ValAddrsOfRotatedConsKeys_1_list)(nil) + +type _ValAddrsOfRotatedConsKeys_1_list struct { + list *[][]byte +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfBytes((*x.list)[i]) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Bytes() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Bytes() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message ValAddrsOfRotatedConsKeys at list field Addresses as it is not of Message kind")) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) NewElement() protoreflect.Value { + var v []byte + return protoreflect.ValueOfBytes(v) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_ValAddrsOfRotatedConsKeys protoreflect.MessageDescriptor + fd_ValAddrsOfRotatedConsKeys_addresses protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_ValAddrsOfRotatedConsKeys = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("ValAddrsOfRotatedConsKeys") + fd_ValAddrsOfRotatedConsKeys_addresses = md_ValAddrsOfRotatedConsKeys.Fields().ByName("addresses") +} + +var _ protoreflect.Message = (*fastReflection_ValAddrsOfRotatedConsKeys)(nil) + +type fastReflection_ValAddrsOfRotatedConsKeys ValAddrsOfRotatedConsKeys + +func (x *ValAddrsOfRotatedConsKeys) ProtoReflect() protoreflect.Message { + return (*fastReflection_ValAddrsOfRotatedConsKeys)(x) +} + +func (x *ValAddrsOfRotatedConsKeys) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[23] + 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_ValAddrsOfRotatedConsKeys_messageType fastReflection_ValAddrsOfRotatedConsKeys_messageType +var _ protoreflect.MessageType = fastReflection_ValAddrsOfRotatedConsKeys_messageType{} + +type fastReflection_ValAddrsOfRotatedConsKeys_messageType struct{} + +func (x fastReflection_ValAddrsOfRotatedConsKeys_messageType) Zero() protoreflect.Message { + return (*fastReflection_ValAddrsOfRotatedConsKeys)(nil) +} +func (x fastReflection_ValAddrsOfRotatedConsKeys_messageType) New() protoreflect.Message { + return new(fastReflection_ValAddrsOfRotatedConsKeys) +} +func (x fastReflection_ValAddrsOfRotatedConsKeys_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ValAddrsOfRotatedConsKeys +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Descriptor() protoreflect.MessageDescriptor { + return md_ValAddrsOfRotatedConsKeys +} + +// 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_ValAddrsOfRotatedConsKeys) Type() protoreflect.MessageType { + return _fastReflection_ValAddrsOfRotatedConsKeys_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) New() protoreflect.Message { + return new(fastReflection_ValAddrsOfRotatedConsKeys) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Interface() protoreflect.ProtoMessage { + return (*ValAddrsOfRotatedConsKeys)(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_ValAddrsOfRotatedConsKeys) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Addresses) != 0 { + value := protoreflect.ValueOfList(&_ValAddrsOfRotatedConsKeys_1_list{list: &x.Addresses}) + if !f(fd_ValAddrsOfRotatedConsKeys_addresses, 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_ValAddrsOfRotatedConsKeys) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + return len(x.Addresses) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys 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_ValAddrsOfRotatedConsKeys) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + x.Addresses = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys 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_ValAddrsOfRotatedConsKeys) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + if len(x.Addresses) == 0 { + return protoreflect.ValueOfList(&_ValAddrsOfRotatedConsKeys_1_list{}) + } + listValue := &_ValAddrsOfRotatedConsKeys_1_list{list: &x.Addresses} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys 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_ValAddrsOfRotatedConsKeys) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + lv := value.List() + clv := lv.(*_ValAddrsOfRotatedConsKeys_1_list) + x.Addresses = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys 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_ValAddrsOfRotatedConsKeys) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + if x.Addresses == nil { + x.Addresses = [][]byte{} + } + value := &_ValAddrsOfRotatedConsKeys_1_list{list: &x.Addresses} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys 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_ValAddrsOfRotatedConsKeys) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + list := [][]byte{} + return protoreflect.ValueOfList(&_ValAddrsOfRotatedConsKeys_1_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys 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_ValAddrsOfRotatedConsKeys) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys", 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_ValAddrsOfRotatedConsKeys) 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_ValAddrsOfRotatedConsKeys) 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_ValAddrsOfRotatedConsKeys) 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_ValAddrsOfRotatedConsKeys) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*ValAddrsOfRotatedConsKeys) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Addresses) > 0 { + for _, b := range x.Addresses { + l = len(b) + 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().(*ValAddrsOfRotatedConsKeys) + 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.Addresses) > 0 { + for iNdEx := len(x.Addresses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.Addresses[iNdEx]) + copy(dAtA[i:], x.Addresses[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Addresses[iNdEx]))) + 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().(*ValAddrsOfRotatedConsKeys) + 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: ValAddrsOfRotatedConsKeys: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ValAddrsOfRotatedConsKeys: 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 Addresses", 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.Addresses = append(x.Addresses, make([]byte, postIndex-iNdEx)) + copy(x.Addresses[len(x.Addresses)-1], dAtA[iNdEx:postIndex]) + 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, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cosmos/staking/v1beta1/staking.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// BondStatus is the status of a validator. +type BondStatus int32 + +const ( + // UNSPECIFIED defines an invalid validator status. + BondStatus_BOND_STATUS_UNSPECIFIED BondStatus = 0 + // UNBONDED defines a validator that is not bonded. + BondStatus_BOND_STATUS_UNBONDED BondStatus = 1 + // UNBONDING defines a validator that is unbonding. + BondStatus_BOND_STATUS_UNBONDING BondStatus = 2 + // BONDED defines a validator that is bonded. + BondStatus_BOND_STATUS_BONDED BondStatus = 3 +) + +// Enum value maps for BondStatus. +var ( + BondStatus_name = map[int32]string{ + 0: "BOND_STATUS_UNSPECIFIED", + 1: "BOND_STATUS_UNBONDED", + 2: "BOND_STATUS_UNBONDING", + 3: "BOND_STATUS_BONDED", + } + BondStatus_value = map[string]int32{ + "BOND_STATUS_UNSPECIFIED": 0, + "BOND_STATUS_UNBONDED": 1, + "BOND_STATUS_UNBONDING": 2, + "BOND_STATUS_BONDED": 3, + } +) + +func (x BondStatus) Enum() *BondStatus { + p := new(BondStatus) + *p = x + return p +} + +func (x BondStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BondStatus) Descriptor() protoreflect.EnumDescriptor { + return file_cosmos_staking_v1beta1_staking_proto_enumTypes[0].Descriptor() +} + +func (BondStatus) Type() protoreflect.EnumType { + return &file_cosmos_staking_v1beta1_staking_proto_enumTypes[0] +} + +func (x BondStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BondStatus.Descriptor instead. +func (BondStatus) EnumDescriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{0} +} + +// Infraction indicates the infraction a validator committed. +type Infraction int32 + +const ( + // UNSPECIFIED defines an empty infraction. + Infraction_INFRACTION_UNSPECIFIED Infraction = 0 + // DOUBLE_SIGN defines a validator that double-signs a block. + Infraction_INFRACTION_DOUBLE_SIGN Infraction = 1 + // DOWNTIME defines a validator that missed signing too many blocks. + Infraction_INFRACTION_DOWNTIME Infraction = 2 +) + +// Enum value maps for Infraction. +var ( + Infraction_name = map[int32]string{ + 0: "INFRACTION_UNSPECIFIED", + 1: "INFRACTION_DOUBLE_SIGN", + 2: "INFRACTION_DOWNTIME", + } + Infraction_value = map[string]int32{ + "INFRACTION_UNSPECIFIED": 0, + "INFRACTION_DOUBLE_SIGN": 1, + "INFRACTION_DOWNTIME": 2, + } +) + +func (x Infraction) Enum() *Infraction { + p := new(Infraction) + *p = x + return p +} + +func (x Infraction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Infraction) Descriptor() protoreflect.EnumDescriptor { + return file_cosmos_staking_v1beta1_staking_proto_enumTypes[1].Descriptor() +} + +func (Infraction) Type() protoreflect.EnumType { + return &file_cosmos_staking_v1beta1_staking_proto_enumTypes[1] +} + +func (x Infraction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Infraction.Descriptor instead. +func (Infraction) EnumDescriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{1} +} + +// HistoricalInfo contains header and validator information for a given block. +// 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). +// +// Deprecated: Do not use. +type HistoricalInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Header *v1.Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Valset []*Validator `protobuf:"bytes,2,rep,name=valset,proto3" json:"valset,omitempty"` +} + +func (x *HistoricalInfo) Reset() { + *x = HistoricalInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoricalInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoricalInfo) ProtoMessage() {} + +// Deprecated: Use HistoricalInfo.ProtoReflect.Descriptor instead. +func (*HistoricalInfo) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{0} +} + +func (x *HistoricalInfo) GetHeader() *v1.Header { + if x != nil { + return x.Header + } + return nil +} + +func (x *HistoricalInfo) GetValset() []*Validator { + if x != nil { + return x.Valset + } + return nil +} + +// CommissionRates defines the initial commission rates to be used for creating +// a validator. +type CommissionRates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // rate is the commission rate charged to delegators, as a fraction. + Rate string `protobuf:"bytes,1,opt,name=rate,proto3" json:"rate,omitempty"` + // max_rate defines the maximum commission rate which validator can ever charge, as a fraction. + MaxRate string `protobuf:"bytes,2,opt,name=max_rate,json=maxRate,proto3" json:"max_rate,omitempty"` + // max_change_rate defines the maximum daily increase of the validator commission, as a fraction. + MaxChangeRate string `protobuf:"bytes,3,opt,name=max_change_rate,json=maxChangeRate,proto3" json:"max_change_rate,omitempty"` +} + +func (x *CommissionRates) Reset() { + *x = CommissionRates{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommissionRates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommissionRates) ProtoMessage() {} + +// Deprecated: Use CommissionRates.ProtoReflect.Descriptor instead. +func (*CommissionRates) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{1} +} + +func (x *CommissionRates) GetRate() string { + if x != nil { + return x.Rate + } + return "" +} + +func (x *CommissionRates) GetMaxRate() string { + if x != nil { + return x.MaxRate + } + return "" +} + +func (x *CommissionRates) GetMaxChangeRate() string { + if x != nil { + return x.MaxChangeRate + } + return "" +} + +// Commission defines commission parameters for a given validator. +type Commission struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // commission_rates defines the initial commission rates to be used for creating a validator. + CommissionRates *CommissionRates `protobuf:"bytes,1,opt,name=commission_rates,json=commissionRates,proto3" json:"commission_rates,omitempty"` + // update_time is the last time the commission rate was changed. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *Commission) Reset() { + *x = Commission{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Commission) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Commission) ProtoMessage() {} + +// Deprecated: Use Commission.ProtoReflect.Descriptor instead. +func (*Commission) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{2} +} + +func (x *Commission) GetCommissionRates() *CommissionRates { + if x != nil { + return x.CommissionRates + } + return nil +} + +func (x *Commission) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Description defines a validator description. +type Description struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // moniker defines a human-readable name for the validator. + Moniker string `protobuf:"bytes,1,opt,name=moniker,proto3" json:"moniker,omitempty"` + // identity defines an optional identity signature (ex. UPort or Keybase). + Identity string `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"` + // website defines an optional website link. + Website string `protobuf:"bytes,3,opt,name=website,proto3" json:"website,omitempty"` + // security_contact defines an optional email for security contact. + SecurityContact string `protobuf:"bytes,4,opt,name=security_contact,json=securityContact,proto3" json:"security_contact,omitempty"` + // details define other optional details. + Details string `protobuf:"bytes,5,opt,name=details,proto3" json:"details,omitempty"` + // metadata defines extra information about the validator. + Metadata *Metadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *Description) Reset() { + *x = Description{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Description) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Description) ProtoMessage() {} + +// Deprecated: Use Description.ProtoReflect.Descriptor instead. +func (*Description) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{3} +} + +func (x *Description) GetMoniker() string { + if x != nil { + return x.Moniker + } + return "" +} + +func (x *Description) GetIdentity() string { + if x != nil { + return x.Identity + } + return "" +} + +func (x *Description) GetWebsite() string { + if x != nil { + return x.Website + } + return "" +} + +func (x *Description) GetSecurityContact() string { + if x != nil { + return x.SecurityContact + } + return "" +} + +func (x *Description) GetDetails() string { + if x != nil { + return x.Details + } + return "" +} + +func (x *Description) GetMetadata() *Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +// Metadata defines extra information about the validator. +type Metadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // profile_pic_uri defines a link to the validator profile picture. + ProfilePicUri string `protobuf:"bytes,1,opt,name=profile_pic_uri,json=profilePicUri,proto3" json:"profile_pic_uri,omitempty"` + // social_handle_uris defines a string array of uris to the validator's social handles. + SocialHandleUris []string `protobuf:"bytes,2,rep,name=social_handle_uris,json=socialHandleUris,proto3" json:"social_handle_uris,omitempty"` +} + +func (x *Metadata) Reset() { + *x = Metadata{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Metadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metadata) ProtoMessage() {} + +// Deprecated: Use Metadata.ProtoReflect.Descriptor instead. +func (*Metadata) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{4} +} + +func (x *Metadata) GetProfilePicUri() string { + if x != nil { + return x.ProfilePicUri + } + return "" +} + +func (x *Metadata) GetSocialHandleUris() []string { + if x != nil { + return x.SocialHandleUris + } + return nil +} + +// Validator defines a validator, together with the total amount of the +// Validator's bond shares and their exchange rate to coins. Slashing results in +// a decrease in the exchange rate, allowing correct calculation of future +// undelegations without iterating over delegators. When coins are delegated to +// this validator, the validator is credited with a delegation whose number of +// bond shares is based on the amount of coins delegated divided by the current +// exchange rate. Voting power can be calculated as total bonded shares +// multiplied by exchange rate. +type Validator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // operator_address defines the address of the validator's operator; bech encoded in JSON. + OperatorAddress string `protobuf:"bytes,1,opt,name=operator_address,json=operatorAddress,proto3" json:"operator_address,omitempty"` + // consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. + ConsensusPubkey *anypb.Any `protobuf:"bytes,2,opt,name=consensus_pubkey,json=consensusPubkey,proto3" json:"consensus_pubkey,omitempty"` + // jailed defined whether the validator has been jailed from bonded status or not. + Jailed bool `protobuf:"varint,3,opt,name=jailed,proto3" json:"jailed,omitempty"` + // status is the validator status (bonded/unbonding/unbonded). + Status BondStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status,omitempty"` + // tokens define the delegated tokens (incl. self-delegation). + Tokens string `protobuf:"bytes,5,opt,name=tokens,proto3" json:"tokens,omitempty"` + // delegator_shares defines total shares issued to a validator's delegators. + DelegatorShares string `protobuf:"bytes,6,opt,name=delegator_shares,json=delegatorShares,proto3" json:"delegator_shares,omitempty"` + // description defines the description terms for the validator. + Description *Description `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` + // unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. + UnbondingHeight int64 `protobuf:"varint,8,opt,name=unbonding_height,json=unbondingHeight,proto3" json:"unbonding_height,omitempty"` + // unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. + UnbondingTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=unbonding_time,json=unbondingTime,proto3" json:"unbonding_time,omitempty"` + // commission defines the commission parameters. + Commission *Commission `protobuf:"bytes,10,opt,name=commission,proto3" json:"commission,omitempty"` + // min_self_delegation is the validator's self declared minimum self delegation. + MinSelfDelegation string `protobuf:"bytes,11,opt,name=min_self_delegation,json=minSelfDelegation,proto3" json:"min_self_delegation,omitempty"` + // strictly positive if this validator's unbonding has been stopped by external modules + UnbondingOnHoldRefCount int64 `protobuf:"varint,12,opt,name=unbonding_on_hold_ref_count,json=unbondingOnHoldRefCount,proto3" json:"unbonding_on_hold_ref_count,omitempty"` + // list of unbonding ids, each uniquely identifying an unbonding of this validator + UnbondingIds []uint64 `protobuf:"varint,13,rep,packed,name=unbonding_ids,json=unbondingIds,proto3" json:"unbonding_ids,omitempty"` +} + +func (x *Validator) Reset() { + *x = Validator{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Validator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Validator) ProtoMessage() {} + +// Deprecated: Use Validator.ProtoReflect.Descriptor instead. +func (*Validator) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{5} +} + +func (x *Validator) GetOperatorAddress() string { + if x != nil { + return x.OperatorAddress + } + return "" +} + +func (x *Validator) GetConsensusPubkey() *anypb.Any { + if x != nil { + return x.ConsensusPubkey + } + return nil +} + +func (x *Validator) GetJailed() bool { + if x != nil { + return x.Jailed + } + return false +} + +func (x *Validator) GetStatus() BondStatus { + if x != nil { + return x.Status + } + return BondStatus_BOND_STATUS_UNSPECIFIED +} + +func (x *Validator) GetTokens() string { + if x != nil { + return x.Tokens + } + return "" +} + +func (x *Validator) GetDelegatorShares() string { + if x != nil { + return x.DelegatorShares + } + return "" +} + +func (x *Validator) GetDescription() *Description { + if x != nil { + return x.Description + } + return nil +} + +func (x *Validator) GetUnbondingHeight() int64 { + if x != nil { + return x.UnbondingHeight + } + return 0 +} + +func (x *Validator) GetUnbondingTime() *timestamppb.Timestamp { + if x != nil { + return x.UnbondingTime + } + return nil +} + +func (x *Validator) GetCommission() *Commission { + if x != nil { + return x.Commission + } + return nil +} + +func (x *Validator) GetMinSelfDelegation() string { + if x != nil { + return x.MinSelfDelegation + } + return "" +} + +func (x *Validator) GetUnbondingOnHoldRefCount() int64 { + if x != nil { + return x.UnbondingOnHoldRefCount + } + return 0 +} + +func (x *Validator) GetUnbondingIds() []uint64 { + if x != nil { + return x.UnbondingIds + } + return nil +} + +// ValAddresses defines a repeated set of validator addresses. +type ValAddresses struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *ValAddresses) Reset() { + *x = ValAddresses{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValAddresses) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValAddresses) ProtoMessage() {} + +// Deprecated: Use ValAddresses.ProtoReflect.Descriptor instead. +func (*ValAddresses) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{6} +} + +func (x *ValAddresses) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +// DVPair is struct that just has a delegator-validator pair with no other data. +// It is intended to be used as a marshalable pointer. For example, a DVPair can +// be used to construct the key to getting an UnbondingDelegation from state. +type DVPair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DelegatorAddress string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"` + ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` +} + +func (x *DVPair) Reset() { + *x = DVPair{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DVPair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DVPair) ProtoMessage() {} + +// Deprecated: Use DVPair.ProtoReflect.Descriptor instead. +func (*DVPair) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{7} +} + +func (x *DVPair) GetDelegatorAddress() string { + if x != nil { + return x.DelegatorAddress + } + return "" +} + +func (x *DVPair) GetValidatorAddress() string { + if x != nil { + return x.ValidatorAddress + } + return "" +} + +// DVPairs defines an array of DVPair objects. +type DVPairs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pairs []*DVPair `protobuf:"bytes,1,rep,name=pairs,proto3" json:"pairs,omitempty"` +} + +func (x *DVPairs) Reset() { + *x = DVPairs{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DVPairs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DVPairs) ProtoMessage() {} + +// Deprecated: Use DVPairs.ProtoReflect.Descriptor instead. +func (*DVPairs) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{8} +} + +func (x *DVPairs) GetPairs() []*DVPair { + if x != nil { + return x.Pairs + } + return nil +} + +// DVVTriplet is struct that just has a delegator-validator-validator triplet +// with no other data. It is intended to be used as a marshalable pointer. For +// example, a DVVTriplet can be used to construct the key to getting a +// Redelegation from state. +type DVVTriplet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DelegatorAddress string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"` + ValidatorSrcAddress string `protobuf:"bytes,2,opt,name=validator_src_address,json=validatorSrcAddress,proto3" json:"validator_src_address,omitempty"` + ValidatorDstAddress string `protobuf:"bytes,3,opt,name=validator_dst_address,json=validatorDstAddress,proto3" json:"validator_dst_address,omitempty"` +} + +func (x *DVVTriplet) Reset() { + *x = DVVTriplet{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DVVTriplet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DVVTriplet) ProtoMessage() {} + +// Deprecated: Use DVVTriplet.ProtoReflect.Descriptor instead. +func (*DVVTriplet) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{9} +} + +func (x *DVVTriplet) GetDelegatorAddress() string { + if x != nil { + return x.DelegatorAddress + } + return "" +} + +func (x *DVVTriplet) GetValidatorSrcAddress() string { + if x != nil { + return x.ValidatorSrcAddress + } + return "" +} + +func (x *DVVTriplet) GetValidatorDstAddress() string { + if x != nil { + return x.ValidatorDstAddress + } + return "" +} + +// DVVTriplets defines an array of DVVTriplet objects. +type DVVTriplets struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Triplets []*DVVTriplet `protobuf:"bytes,1,rep,name=triplets,proto3" json:"triplets,omitempty"` +} + +func (x *DVVTriplets) Reset() { + *x = DVVTriplets{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DVVTriplets) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DVVTriplets) ProtoMessage() {} + +// Deprecated: Use DVVTriplets.ProtoReflect.Descriptor instead. +func (*DVVTriplets) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{10} +} + +func (x *DVVTriplets) GetTriplets() []*DVVTriplet { + if x != nil { + return x.Triplets + } + return nil +} + +// Delegation represents the bond with tokens held by an account. It is +// owned by one delegator, and is associated with the voting power of one +// validator. +type Delegation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // delegator_address is the encoded address of the delegator. + DelegatorAddress string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"` + // validator_address is the encoded address of the validator. + ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` + // shares define the delegation shares received. + Shares string `protobuf:"bytes,3,opt,name=shares,proto3" json:"shares,omitempty"` +} + +func (x *Delegation) Reset() { + *x = Delegation{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Delegation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Delegation) ProtoMessage() {} + +// Deprecated: Use Delegation.ProtoReflect.Descriptor instead. +func (*Delegation) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{11} +} + +func (x *Delegation) GetDelegatorAddress() string { + if x != nil { + return x.DelegatorAddress + } + return "" +} + +func (x *Delegation) GetValidatorAddress() string { + if x != nil { + return x.ValidatorAddress + } + return "" +} + +func (x *Delegation) GetShares() string { + if x != nil { + return x.Shares + } + return "" +} + +// UnbondingDelegation stores all of a single delegator's unbonding bonds +// for a single validator in an time-ordered list. +type UnbondingDelegation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // delegator_address is the encoded address of the delegator. + DelegatorAddress string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"` + // validator_address is the encoded address of the validator. + ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` + // entries are the unbonding delegation entries. + Entries []*UnbondingDelegationEntry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries,omitempty"` // unbonding delegation entries +} + +func (x *UnbondingDelegation) Reset() { + *x = UnbondingDelegation{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnbondingDelegation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnbondingDelegation) ProtoMessage() {} + +// Deprecated: Use UnbondingDelegation.ProtoReflect.Descriptor instead. +func (*UnbondingDelegation) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{12} +} + +func (x *UnbondingDelegation) GetDelegatorAddress() string { + if x != nil { + return x.DelegatorAddress + } + return "" +} + +func (x *UnbondingDelegation) GetValidatorAddress() string { + if x != nil { + return x.ValidatorAddress + } + return "" +} + +func (x *UnbondingDelegation) GetEntries() []*UnbondingDelegationEntry { + if x != nil { + return x.Entries + } + return nil +} + +// UnbondingDelegationEntry defines an unbonding object with relevant metadata. +type UnbondingDelegationEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // creation_height is the height which the unbonding took place. + CreationHeight int64 `protobuf:"varint,1,opt,name=creation_height,json=creationHeight,proto3" json:"creation_height,omitempty"` + // completion_time is the unix time for unbonding completion. + CompletionTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=completion_time,json=completionTime,proto3" json:"completion_time,omitempty"` + // initial_balance defines the tokens initially scheduled to receive at completion. + InitialBalance string `protobuf:"bytes,3,opt,name=initial_balance,json=initialBalance,proto3" json:"initial_balance,omitempty"` + // balance defines the tokens to receive at completion. + Balance string `protobuf:"bytes,4,opt,name=balance,proto3" json:"balance,omitempty"` + // Incrementing id that uniquely identifies this entry + // + // Deprecated: Do not use. + UnbondingId uint64 `protobuf:"varint,5,opt,name=unbonding_id,json=unbondingId,proto3" json:"unbonding_id,omitempty"` + // Strictly positive if this entry's unbonding has been stopped by external modules + UnbondingOnHoldRefCount int64 `protobuf:"varint,6,opt,name=unbonding_on_hold_ref_count,json=unbondingOnHoldRefCount,proto3" json:"unbonding_on_hold_ref_count,omitempty"` +} + +func (x *UnbondingDelegationEntry) Reset() { + *x = UnbondingDelegationEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnbondingDelegationEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnbondingDelegationEntry) ProtoMessage() {} + +// Deprecated: Use UnbondingDelegationEntry.ProtoReflect.Descriptor instead. +func (*UnbondingDelegationEntry) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{13} +} + +func (x *UnbondingDelegationEntry) GetCreationHeight() int64 { + if x != nil { + return x.CreationHeight + } + return 0 +} + +func (x *UnbondingDelegationEntry) GetCompletionTime() *timestamppb.Timestamp { + if x != nil { + return x.CompletionTime + } + return nil +} + +func (x *UnbondingDelegationEntry) GetInitialBalance() string { + if x != nil { + return x.InitialBalance + } + return "" +} + +func (x *UnbondingDelegationEntry) GetBalance() string { + if x != nil { + return x.Balance + } + return "" +} + +// Deprecated: Do not use. +func (x *UnbondingDelegationEntry) GetUnbondingId() uint64 { + if x != nil { + return x.UnbondingId + } + return 0 +} + +func (x *UnbondingDelegationEntry) GetUnbondingOnHoldRefCount() int64 { + if x != nil { + return x.UnbondingOnHoldRefCount + } + return 0 +} + +// RedelegationEntry defines a redelegation object with relevant metadata. +type RedelegationEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // creation_height defines the height which the redelegation took place. + CreationHeight int64 `protobuf:"varint,1,opt,name=creation_height,json=creationHeight,proto3" json:"creation_height,omitempty"` + // completion_time defines the unix time for redelegation completion. + CompletionTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=completion_time,json=completionTime,proto3" json:"completion_time,omitempty"` + // initial_balance defines the initial balance when redelegation started. + InitialBalance string `protobuf:"bytes,3,opt,name=initial_balance,json=initialBalance,proto3" json:"initial_balance,omitempty"` + // shares_dst is the amount of destination-validator shares created by redelegation. + SharesDst string `protobuf:"bytes,4,opt,name=shares_dst,json=sharesDst,proto3" json:"shares_dst,omitempty"` + // Incrementing id that uniquely identifies this entry + UnbondingId uint64 `protobuf:"varint,5,opt,name=unbonding_id,json=unbondingId,proto3" json:"unbonding_id,omitempty"` + // Strictly positive if this entry's unbonding has been stopped by external modules + UnbondingOnHoldRefCount int64 `protobuf:"varint,6,opt,name=unbonding_on_hold_ref_count,json=unbondingOnHoldRefCount,proto3" json:"unbonding_on_hold_ref_count,omitempty"` +} + +func (x *RedelegationEntry) Reset() { + *x = RedelegationEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedelegationEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedelegationEntry) ProtoMessage() {} + +// Deprecated: Use RedelegationEntry.ProtoReflect.Descriptor instead. +func (*RedelegationEntry) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{14} +} + +func (x *RedelegationEntry) GetCreationHeight() int64 { + if x != nil { + return x.CreationHeight + } + return 0 +} + +func (x *RedelegationEntry) GetCompletionTime() *timestamppb.Timestamp { + if x != nil { + return x.CompletionTime + } + return nil +} + +func (x *RedelegationEntry) GetInitialBalance() string { + if x != nil { + return x.InitialBalance + } + return "" +} + +func (x *RedelegationEntry) GetSharesDst() string { + if x != nil { + return x.SharesDst + } + return "" +} + +func (x *RedelegationEntry) GetUnbondingId() uint64 { + if x != nil { + return x.UnbondingId + } + return 0 +} + +func (x *RedelegationEntry) GetUnbondingOnHoldRefCount() int64 { + if x != nil { + return x.UnbondingOnHoldRefCount + } + return 0 +} + +// Redelegation contains the list of a particular delegator's redelegating bonds +// from a particular source validator to a particular destination validator. +type Redelegation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // delegator_address is the bech32-encoded address of the delegator. + DelegatorAddress string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"` + // validator_src_address is the validator redelegation source operator address. + ValidatorSrcAddress string `protobuf:"bytes,2,opt,name=validator_src_address,json=validatorSrcAddress,proto3" json:"validator_src_address,omitempty"` + // validator_dst_address is the validator redelegation destination operator address. + ValidatorDstAddress string `protobuf:"bytes,3,opt,name=validator_dst_address,json=validatorDstAddress,proto3" json:"validator_dst_address,omitempty"` + // entries are the redelegation entries. + Entries []*RedelegationEntry `protobuf:"bytes,4,rep,name=entries,proto3" json:"entries,omitempty"` // redelegation entries +} + +func (x *Redelegation) Reset() { + *x = Redelegation{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Redelegation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Redelegation) ProtoMessage() {} + +// Deprecated: Use Redelegation.ProtoReflect.Descriptor instead. +func (*Redelegation) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{15} +} + +func (x *Redelegation) GetDelegatorAddress() string { + if x != nil { + return x.DelegatorAddress + } + return "" +} + +func (x *Redelegation) GetValidatorSrcAddress() string { + if x != nil { + return x.ValidatorSrcAddress + } + return "" +} + +func (x *Redelegation) GetValidatorDstAddress() string { + if x != nil { + return x.ValidatorDstAddress + } + return "" +} + +func (x *Redelegation) GetEntries() []*RedelegationEntry { + if x != nil { + return x.Entries + } + return nil +} + +// Params defines the parameters for the x/staking module. +type Params struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // unbonding_time is the time duration of unbonding. + UnbondingTime *durationpb.Duration `protobuf:"bytes,1,opt,name=unbonding_time,json=unbondingTime,proto3" json:"unbonding_time,omitempty"` + // max_validators is the maximum number of validators. + MaxValidators uint32 `protobuf:"varint,2,opt,name=max_validators,json=maxValidators,proto3" json:"max_validators,omitempty"` + // max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). + MaxEntries uint32 `protobuf:"varint,3,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"` + // historical_entries is the number of historical entries to persist. + // + // Deprecated: Do not use. + HistoricalEntries uint32 `protobuf:"varint,4,opt,name=historical_entries,json=historicalEntries,proto3" json:"historical_entries,omitempty"` + // bond_denom defines the bondable coin denomination. + BondDenom string `protobuf:"bytes,5,opt,name=bond_denom,json=bondDenom,proto3" json:"bond_denom,omitempty"` + // min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators + MinCommissionRate string `protobuf:"bytes,6,opt,name=min_commission_rate,json=minCommissionRate,proto3" json:"min_commission_rate,omitempty"` + // key_rotation_fee is fee to be spent when rotating validator's key + // (either consensus pubkey or operator key) + KeyRotationFee *v1beta1.Coin `protobuf:"bytes,7,opt,name=key_rotation_fee,json=keyRotationFee,proto3" json:"key_rotation_fee,omitempty"` +} + +func (x *Params) Reset() { + *x = Params{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Params) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Params) ProtoMessage() {} + +// Deprecated: Use Params.ProtoReflect.Descriptor instead. +func (*Params) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{16} +} + +func (x *Params) GetUnbondingTime() *durationpb.Duration { + if x != nil { + return x.UnbondingTime + } + return nil +} + +func (x *Params) GetMaxValidators() uint32 { + if x != nil { + return x.MaxValidators + } + return 0 +} + +func (x *Params) GetMaxEntries() uint32 { + if x != nil { + return x.MaxEntries + } + return 0 +} + +// Deprecated: Do not use. +func (x *Params) GetHistoricalEntries() uint32 { + if x != nil { + return x.HistoricalEntries + } + return 0 +} + +func (x *Params) GetBondDenom() string { + if x != nil { + return x.BondDenom + } + return "" +} + +func (x *Params) GetMinCommissionRate() string { + if x != nil { + return x.MinCommissionRate + } + return "" +} + +func (x *Params) GetKeyRotationFee() *v1beta1.Coin { + if x != nil { + return x.KeyRotationFee + } + return nil +} + +// DelegationResponse is equivalent to Delegation except that it contains a +// balance in addition to shares which is more suitable for client responses. +type DelegationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Delegation *Delegation `protobuf:"bytes,1,opt,name=delegation,proto3" json:"delegation,omitempty"` + Balance *v1beta1.Coin `protobuf:"bytes,2,opt,name=balance,proto3" json:"balance,omitempty"` +} + +func (x *DelegationResponse) Reset() { + *x = DelegationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelegationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelegationResponse) ProtoMessage() {} + +// Deprecated: Use DelegationResponse.ProtoReflect.Descriptor instead. +func (*DelegationResponse) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{17} +} + +func (x *DelegationResponse) GetDelegation() *Delegation { + if x != nil { + return x.Delegation + } + return nil +} + +func (x *DelegationResponse) GetBalance() *v1beta1.Coin { + if x != nil { + return x.Balance + } + return nil +} + +// RedelegationEntryResponse is equivalent to a RedelegationEntry except that it +// contains a balance in addition to shares which is more suitable for client +// responses. +type RedelegationEntryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RedelegationEntry *RedelegationEntry `protobuf:"bytes,1,opt,name=redelegation_entry,json=redelegationEntry,proto3" json:"redelegation_entry,omitempty"` + Balance string `protobuf:"bytes,4,opt,name=balance,proto3" json:"balance,omitempty"` +} + +func (x *RedelegationEntryResponse) Reset() { + *x = RedelegationEntryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedelegationEntryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedelegationEntryResponse) ProtoMessage() {} + +// Deprecated: Use RedelegationEntryResponse.ProtoReflect.Descriptor instead. +func (*RedelegationEntryResponse) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{18} +} + +func (x *RedelegationEntryResponse) GetRedelegationEntry() *RedelegationEntry { + if x != nil { + return x.RedelegationEntry + } + return nil +} + +func (x *RedelegationEntryResponse) GetBalance() string { + if x != nil { + return x.Balance + } + return "" +} + +// RedelegationResponse is equivalent to a Redelegation except that its entries +// contain a balance in addition to shares which is more suitable for client +// responses. +type RedelegationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Redelegation *Redelegation `protobuf:"bytes,1,opt,name=redelegation,proto3" json:"redelegation,omitempty"` + Entries []*RedelegationEntryResponse `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"` +} + +func (x *RedelegationResponse) Reset() { + *x = RedelegationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedelegationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedelegationResponse) ProtoMessage() {} + +// Deprecated: Use RedelegationResponse.ProtoReflect.Descriptor instead. +func (*RedelegationResponse) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{19} +} + +func (x *RedelegationResponse) GetRedelegation() *Redelegation { + if x != nil { + return x.Redelegation + } + return nil +} + +func (x *RedelegationResponse) GetEntries() []*RedelegationEntryResponse { + if x != nil { + return x.Entries + } + return nil +} + +// Pool is used for tracking bonded and not-bonded token supply of the bond +// denomination. +type Pool struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NotBondedTokens string `protobuf:"bytes,1,opt,name=not_bonded_tokens,json=notBondedTokens,proto3" json:"not_bonded_tokens,omitempty"` + BondedTokens string `protobuf:"bytes,2,opt,name=bonded_tokens,json=bondedTokens,proto3" json:"bonded_tokens,omitempty"` +} + +func (x *Pool) Reset() { + *x = Pool{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Pool) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Pool) ProtoMessage() {} + +// Deprecated: Use Pool.ProtoReflect.Descriptor instead. +func (*Pool) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{20} +} + +func (x *Pool) GetNotBondedTokens() string { + if x != nil { + return x.NotBondedTokens + } + return "" +} + +func (x *Pool) GetBondedTokens() string { + if x != nil { + return x.BondedTokens + } + return "" +} + +// ValidatorUpdates defines an array of abci.ValidatorUpdate objects. +// TODO: explore moving this to proto/cosmos/base to separate modules from tendermint dependence +// +// Deprecated: Do not use. +type ValidatorUpdates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Updates []*v11.ValidatorUpdate `protobuf:"bytes,1,rep,name=updates,proto3" json:"updates,omitempty"` +} + +func (x *ValidatorUpdates) Reset() { + *x = ValidatorUpdates{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidatorUpdates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidatorUpdates) ProtoMessage() {} + +// Deprecated: Use ValidatorUpdates.ProtoReflect.Descriptor instead. +func (*ValidatorUpdates) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{21} +} + +func (x *ValidatorUpdates) GetUpdates() []*v11.ValidatorUpdate { + if x != nil { + return x.Updates + } + return nil +} + +// ConsPubKeyRotationHistory contains a validator's consensus public key rotation history. +type ConsPubKeyRotationHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // operator_address defines the address of the validator's operator; bech encoded in JSON. + OperatorAddress []byte `protobuf:"bytes,1,opt,name=operator_address,json=operatorAddress,proto3" json:"operator_address,omitempty"` + // old_cons_pubkey is the old consensus public key of the validator, as a Protobuf Any. + OldConsPubkey *anypb.Any `protobuf:"bytes,2,opt,name=old_cons_pubkey,json=oldConsPubkey,proto3" json:"old_cons_pubkey,omitempty"` + // new_cons_pubkey is the new consensus public key of the validator, as a Protobuf Any. + NewConsPubkey *anypb.Any `protobuf:"bytes,3,opt,name=new_cons_pubkey,json=newConsPubkey,proto3" json:"new_cons_pubkey,omitempty"` + // height defines the block height at which the rotation event occurred. + Height uint64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` + // fee holds the amount of fee deduced for the rotation. + Fee *v1beta1.Coin `protobuf:"bytes,5,opt,name=fee,proto3" json:"fee,omitempty"` +} + +func (x *ConsPubKeyRotationHistory) Reset() { + *x = ConsPubKeyRotationHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConsPubKeyRotationHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConsPubKeyRotationHistory) ProtoMessage() {} + +// Deprecated: Use ConsPubKeyRotationHistory.ProtoReflect.Descriptor instead. +func (*ConsPubKeyRotationHistory) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{22} +} + +func (x *ConsPubKeyRotationHistory) GetOperatorAddress() []byte { + if x != nil { + return x.OperatorAddress + } + return nil +} + +func (x *ConsPubKeyRotationHistory) GetOldConsPubkey() *anypb.Any { + if x != nil { + return x.OldConsPubkey + } + return nil +} + +func (x *ConsPubKeyRotationHistory) GetNewConsPubkey() *anypb.Any { + if x != nil { + return x.NewConsPubkey + } + return nil +} + +func (x *ConsPubKeyRotationHistory) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *ConsPubKeyRotationHistory) GetFee() *v1beta1.Coin { + if x != nil { + return x.Fee + } + return nil +} + +// ValAddrsOfRotatedConsKeys contains the array of validator addresses which rotated their keys +// This is to block the validator's next rotation till unbonding period. +type ValAddrsOfRotatedConsKeys struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses [][]byte `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *ValAddrsOfRotatedConsKeys) Reset() { + *x = ValAddrsOfRotatedConsKeys{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValAddrsOfRotatedConsKeys) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValAddrsOfRotatedConsKeys) ProtoMessage() {} + +// Deprecated: Use ValAddrsOfRotatedConsKeys.ProtoReflect.Descriptor instead. +func (*ValAddrsOfRotatedConsKeys) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{23} +} + +func (x *ValAddrsOfRotatedConsKeys) GetAddresses() [][]byte { + if x != nil { + return x.Addresses + } + return nil +} + +var File_cosmos_staking_v1beta1_staking_proto protoreflect.FileDescriptor + +var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ + 0x0a, 0x24, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x11, + 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1c, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2f, 0x61, 0x62, 0x63, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1d, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x98, 0x01, 0x0a, 0x0e, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, + 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 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, 0x06, 0x76, 0x61, 0x6c, 0x73, + 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, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x04, 0xe8, + 0xa0, 0x1f, 0x01, 0x22, 0xf1, 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, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0x66, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, + 0x69, 0x63, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x69, 0x63, 0x55, 0x72, 0x69, 0x12, 0x2c, 0x0a, 0x12, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x69, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x72, 0x69, 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, 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, 0x9f, 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, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0c, 0x75, 0x6e, 0x62, + 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x02, 0x18, 0x01, 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, 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, 0xeb, 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, 0x31, 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, 0x42, 0x02, 0x18, 0x01, 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, 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, +} + +var ( + file_cosmos_staking_v1beta1_staking_proto_rawDescOnce sync.Once + file_cosmos_staking_v1beta1_staking_proto_rawDescData = file_cosmos_staking_v1beta1_staking_proto_rawDesc +) + +func file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP() []byte { + file_cosmos_staking_v1beta1_staking_proto_rawDescOnce.Do(func() { + file_cosmos_staking_v1beta1_staking_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_staking_v1beta1_staking_proto_rawDescData) + }) + return file_cosmos_staking_v1beta1_staking_proto_rawDescData +} + +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_goTypes = []interface{}{ + (BondStatus)(0), // 0: cosmos.staking.v1beta1.BondStatus + (Infraction)(0), // 1: cosmos.staking.v1beta1.Infraction + (*HistoricalInfo)(nil), // 2: cosmos.staking.v1beta1.HistoricalInfo + (*CommissionRates)(nil), // 3: cosmos.staking.v1beta1.CommissionRates + (*Commission)(nil), // 4: cosmos.staking.v1beta1.Commission + (*Description)(nil), // 5: cosmos.staking.v1beta1.Description + (*Metadata)(nil), // 6: cosmos.staking.v1beta1.Metadata + (*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 +} +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 + 3, // 2: cosmos.staking.v1beta1.Commission.commission_rates:type_name -> cosmos.staking.v1beta1.CommissionRates + 27, // 3: cosmos.staking.v1beta1.Commission.update_time:type_name -> google.protobuf.Timestamp + 6, // 4: cosmos.staking.v1beta1.Description.metadata:type_name -> cosmos.staking.v1beta1.Metadata + 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 + 5, // 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 + 4, // 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 +} + +func init() { file_cosmos_staking_v1beta1_staking_proto_init() } +func file_cosmos_staking_v1beta1_staking_proto_init() { + if File_cosmos_staking_v1beta1_staking_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cosmos_staking_v1beta1_staking_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoricalInfo); 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[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommissionRates); 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.(*Commission); 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[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Description); 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[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Metadata); 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[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Validator); 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[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValAddresses); 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[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DVPair); 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[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DVPairs); 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[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DVVTriplet); 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[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DVVTriplets); 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[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Delegation); 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[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnbondingDelegation); 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[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnbondingDelegationEntry); 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[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedelegationEntry); 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[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Redelegation); 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[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Params); 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[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegationResponse); 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[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedelegationEntryResponse); 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[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedelegationResponse); 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[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Pool); 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[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidatorUpdates); 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[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConsPubKeyRotationHistory); 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[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValAddrsOfRotatedConsKeys); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cosmos_staking_v1beta1_staking_proto_rawDesc, + NumEnums: 2, + NumMessages: 24, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cosmos_staking_v1beta1_staking_proto_goTypes, + DependencyIndexes: file_cosmos_staking_v1beta1_staking_proto_depIdxs, + EnumInfos: file_cosmos_staking_v1beta1_staking_proto_enumTypes, + MessageInfos: file_cosmos_staking_v1beta1_staking_proto_msgTypes, + }.Build() + File_cosmos_staking_v1beta1_staking_proto = out.File + file_cosmos_staking_v1beta1_staking_proto_rawDesc = nil + file_cosmos_staking_v1beta1_staking_proto_goTypes = nil + file_cosmos_staking_v1beta1_staking_proto_depIdxs = nil +} diff --git a/simapp/sim_test.go b/simapp/sim_test.go index 0fa1a5a472ca..a4fa3cd02d22 100644 --- a/simapp/sim_test.go +++ b/simapp/sim_test.go @@ -100,7 +100,6 @@ func TestAppImportExport(t *testing.T) { skipPrefixes := map[string][][]byte{ stakingtypes.StoreKey: { stakingtypes.UnbondingQueueKey, stakingtypes.RedelegationQueueKey, stakingtypes.ValidatorQueueKey, - stakingtypes.UnbondingIDKey, stakingtypes.UnbondingIndexKey, stakingtypes.UnbondingTypeKey, }, authzkeeper.StoreKey: {authzkeeper.GrantQueuePrefix}, feegrant.StoreKey: {feegrant.FeeAllowanceQueueKeyPrefix}, diff --git a/tests/integration/staking/keeper/deterministic_test.go b/tests/integration/staking/keeper/deterministic_test.go index d848a8cb3582..49938fafe005 100644 --- a/tests/integration/staking/keeper/deterministic_test.go +++ b/tests/integration/staking/keeper/deterministic_test.go @@ -527,7 +527,7 @@ func TestGRPCValidatorUnbondingDelegations(t *testing.T) { ValidatorAddr: validator.OperatorAddress, } - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.ValidatorUnbondingDelegations, 3719, false) + testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.ValidatorUnbondingDelegations, 3707, false) } func TestGRPCDelegation(t *testing.T) { @@ -607,7 +607,7 @@ func TestGRPCUnbondingDelegation(t *testing.T) { DelegatorAddr: delegator1, } - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.UnbondingDelegation, 1621, false) + testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.UnbondingDelegation, 1615, false) } func TestGRPCDelegatorDelegations(t *testing.T) { @@ -730,7 +730,7 @@ func TestGRPCDelegatorUnbondingDelegations(t *testing.T) { DelegatorAddr: delegator1, } - testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.DelegatorUnbondingDelegations, 1302, false) + testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.DelegatorUnbondingDelegations, 1290, false) } func TestGRPCDelegatorValidators(t *testing.T) { diff --git a/tests/integration/staking/keeper/msg_server_test.go b/tests/integration/staking/keeper/msg_server_test.go index 7eb00bb97a97..775f70e3d226 100644 --- a/tests/integration/staking/keeper/msg_server_test.go +++ b/tests/integration/staking/keeper/msg_server_test.go @@ -58,7 +58,6 @@ func TestCancelUnbondingDelegation(t *testing.T) { delegatorAddr, validatorAddr, 10, ctx.HeaderInfo().Time.Add(time.Minute*10), unbondingAmount.Amount, - 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos"), ) diff --git a/tests/integration/staking/keeper/slash_test.go b/tests/integration/staking/keeper/slash_test.go index f9620b9e05cc..c5ff1edba6c9 100644 --- a/tests/integration/staking/keeper/slash_test.go +++ b/tests/integration/staking/keeper/slash_test.go @@ -79,7 +79,7 @@ func TestSlashUnbondingDelegation(t *testing.T) { // set an unbonding delegation with expiration timestamp (beyond which the // unbonding delegation shouldn't be slashed) ubd := types.NewUnbondingDelegation(addrDels[0], addrVals[0], 0, - time.Unix(5, 0), math.NewInt(10), 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) + time.Unix(5, 0), math.NewInt(10), address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) assert.NilError(t, f.stakingKeeper.SetUnbondingDelegation(f.sdkCtx, ubd)) @@ -138,7 +138,7 @@ func TestSlashRedelegation(t *testing.T) { // set a redelegation with an expiration timestamp beyond which the // redelegation shouldn't be slashed rd := types.NewRedelegation(addrDels[0], addrVals[0], addrVals[1], 0, - time.Unix(5, 0), math.NewInt(10), math.LegacyNewDec(10), 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) + time.Unix(5, 0), math.NewInt(10), math.LegacyNewDec(10), address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) assert.NilError(t, f.stakingKeeper.SetRedelegation(f.sdkCtx, rd)) @@ -285,7 +285,7 @@ func TestSlashWithUnbondingDelegation(t *testing.T) { // set an unbonding delegation with expiration timestamp beyond which the // unbonding delegation shouldn't be slashed ubdTokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, 4) - ubd := types.NewUnbondingDelegation(addrDels[0], addrVals[0], 11, time.Unix(0, 0), ubdTokens, 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) + ubd := types.NewUnbondingDelegation(addrDels[0], addrVals[0], 11, time.Unix(0, 0), ubdTokens, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) assert.NilError(t, f.stakingKeeper.SetUnbondingDelegation(f.sdkCtx, ubd)) // slash validator for the first time @@ -415,7 +415,7 @@ func TestSlashWithRedelegation(t *testing.T) { // set a redelegation rdTokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, 6) - rd := types.NewRedelegation(addrDels[0], addrVals[0], addrVals[1], 11, time.Unix(0, 0), rdTokens, math.LegacyNewDecFromInt(rdTokens), 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) + rd := types.NewRedelegation(addrDels[0], addrVals[0], addrVals[1], 11, time.Unix(0, 0), rdTokens, math.LegacyNewDecFromInt(rdTokens), address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) assert.NilError(t, f.stakingKeeper.SetRedelegation(f.sdkCtx, rd)) // set the associated delegation @@ -573,7 +573,7 @@ func TestSlashBoth(t *testing.T) { // set a redelegation with expiration timestamp beyond which the // redelegation shouldn't be slashed rdATokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, 6) - rdA := types.NewRedelegation(addrDels[0], addrVals[0], addrVals[1], 11, time.Unix(0, 0), rdATokens, math.LegacyNewDecFromInt(rdATokens), 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) + rdA := types.NewRedelegation(addrDels[0], addrVals[0], addrVals[1], 11, time.Unix(0, 0), rdATokens, math.LegacyNewDecFromInt(rdATokens), address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) assert.NilError(t, f.stakingKeeper.SetRedelegation(f.sdkCtx, rdA)) // set the associated delegation @@ -584,7 +584,7 @@ func TestSlashBoth(t *testing.T) { // unbonding delegation shouldn't be slashed) ubdATokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, 4) ubdA := types.NewUnbondingDelegation(addrDels[0], addrVals[0], 11, - time.Unix(0, 0), ubdATokens, 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) + time.Unix(0, 0), ubdATokens, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) assert.NilError(t, f.stakingKeeper.SetUnbondingDelegation(f.sdkCtx, ubdA)) bondedCoins := sdk.NewCoins(sdk.NewCoin(bondDenom, rdATokens.MulRaw(2))) diff --git a/x/staking/CHANGELOG.md b/x/staking/CHANGELOG.md index b185542abed4..ecde4a5fcc37 100644 --- a/x/staking/CHANGELOG.md +++ b/x/staking/CHANGELOG.md @@ -96,11 +96,22 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [#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 * [#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. +<<<<<<< HEAD * [#21480](https://github.com/cosmos/cosmos-sdk/pull/21480) ConsensusKeeper is required to be passed to the keeper. +======= +* [#21480](https://github.com/cosmos/cosmos-sdk/pull/21480) ConsensusKeeper is required to be passed to the keeper. +* [#21315](https://github.com/cosmos/cosmos-sdk/pull/21315) New struct `Metadata` to store extra validator information. + * New field `Metadata` introduced in `types`: `Description`. + * The signature of `NewDescription` has changed to accept an extra argument of type `Metadata`. +* [#22795](https://github.com/cosmos/cosmos-sdk/pull/22795) `NewUnbondingDelegationEntry`, `NewUnbondingDelegation`, `AddEntry`, `NewRedelegationEntry`, `NewRedelegation` and `NewRedelegationEntryResponse` no longer take an ID in there function signatures. +* [#22795](https://github.com/cosmos/cosmos-sdk/pull/22795) AfterUnbondingInitiated hook has been removed as it is no longer required by ICS. + +>>>>>>> 234cdc45f (refactor(x/staking)!: removing unbonding queue index (#22795)) ### 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 * [#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 +* [#22795](https://github.com/cosmos/cosmos-sdk/pull/22795) Keys `stakingtypes.UnbondingIDKey, stakingtypes.UnbondingIndexKey, stakingtypes.UnbondingTypeKey` have been removed as they are no longer required by ICS. diff --git a/x/staking/keeper/delegation.go b/x/staking/keeper/delegation.go index 69ad3843ee9c..fcb3faa6438f 100644 --- a/x/staking/keeper/delegation.go +++ b/x/staking/keeper/delegation.go @@ -310,17 +310,11 @@ func (k Keeper) SetUnbondingDelegationEntry( ctx context.Context, delegatorAddr sdk.AccAddress, validatorAddr sdk.ValAddress, creationHeight int64, minTime time.Time, balance math.Int, ) (types.UnbondingDelegation, error) { - id, err := k.IncrementUnbondingID(ctx) - if err != nil { - return types.UnbondingDelegation{}, err - } - - isNewUbdEntry := true ubd, err := k.GetUnbondingDelegation(ctx, delegatorAddr, validatorAddr) if err == nil { - isNewUbdEntry = ubd.AddEntry(creationHeight, minTime, balance, id) + ubd.AddEntry(creationHeight, minTime, balance) } else if errors.Is(err, types.ErrNoUnbondingDelegation) { - ubd = types.NewUnbondingDelegation(delegatorAddr, validatorAddr, creationHeight, minTime, balance, id, k.validatorAddressCodec, k.authKeeper.AddressCodec()) + ubd = types.NewUnbondingDelegation(delegatorAddr, validatorAddr, creationHeight, minTime, balance, k.validatorAddressCodec, k.authKeeper.AddressCodec()) } else { return ubd, err } @@ -329,18 +323,6 @@ func (k Keeper) SetUnbondingDelegationEntry( return ubd, err } - // only call the hook for new entries since - // calls to AfterUnbondingInitiated are not idempotent - if isNewUbdEntry { - // Add to the UBDByUnbondingOp index to look up the UBD by the UBDE ID - if err = k.SetUnbondingDelegationByUnbondingID(ctx, ubd, id); err != nil { - return ubd, err - } - - if err := k.Hooks().AfterUnbondingInitiated(ctx, id); err != nil { - return ubd, fmt.Errorf("failed to call after unbonding initiated hook: %w", err) - } - } return ubd, nil } @@ -528,17 +510,12 @@ func (k Keeper) SetRedelegationEntry(ctx context.Context, minTime time.Time, balance math.Int, sharesSrc, sharesDst math.LegacyDec, ) (types.Redelegation, error) { - id, err := k.IncrementUnbondingID(ctx) - if err != nil { - return types.Redelegation{}, err - } - red, err := k.Redelegations.Get(ctx, collections.Join3(delegatorAddr.Bytes(), validatorSrcAddr.Bytes(), validatorDstAddr.Bytes())) if err == nil { - red.AddEntry(creationHeight, minTime, balance, sharesDst, id) + red.AddEntry(creationHeight, minTime, balance, sharesDst) } else if errors.Is(err, collections.ErrNotFound) { red = types.NewRedelegation(delegatorAddr, validatorSrcAddr, - validatorDstAddr, creationHeight, minTime, balance, sharesDst, id, k.validatorAddressCodec, k.authKeeper.AddressCodec()) + validatorDstAddr, creationHeight, minTime, balance, sharesDst, k.validatorAddressCodec, k.authKeeper.AddressCodec()) } else { return types.Redelegation{}, err } @@ -547,15 +524,6 @@ func (k Keeper) SetRedelegationEntry(ctx context.Context, return types.Redelegation{}, err } - // Add to the UBDByEntry index to look up the UBD by the UBDE ID - if err = k.SetRedelegationByUnbondingID(ctx, red, id); err != nil { - return types.Redelegation{}, err - } - - if err := k.Hooks().AfterUnbondingInitiated(ctx, id); err != nil { - return types.Redelegation{}, fmt.Errorf("failed to call after unbonding initiated hook: %w", err) - } - return red, nil } @@ -996,12 +964,9 @@ func (k Keeper) CompleteUnbonding(ctx context.Context, delAddr sdk.AccAddress, v // loop through all the entries and complete unbonding mature entries for i := 0; i < len(ubd.Entries); i++ { entry := ubd.Entries[i] - if entry.IsMature(ctxTime) && !entry.OnHold() { + if entry.IsMature(ctxTime) { ubd.RemoveEntry(int64(i)) i-- - if err = k.DeleteUnbondingIndex(ctx, entry.UnbondingId); err != nil { - return nil, err - } // track undelegation only when remaining or truncated shares are non-zero if !entry.Balance.IsZero() { @@ -1136,12 +1101,9 @@ func (k Keeper) CompleteRedelegation( // loop through all the entries and complete mature redelegation entries for i := 0; i < len(red.Entries); i++ { entry := red.Entries[i] - if entry.IsMature(ctxTime) && !entry.OnHold() { + if entry.IsMature(ctxTime) { red.RemoveEntry(int64(i)) i-- - if err = k.DeleteUnbondingIndex(ctx, entry.UnbondingId); err != nil { - return nil, err - } if !entry.InitialBalance.IsZero() { balances = balances.Add(sdk.NewCoin(bondDenom, entry.InitialBalance)) diff --git a/x/staking/keeper/delegation_test.go b/x/staking/keeper/delegation_test.go index 662d5a5bdcfc..58cf0780acd7 100644 --- a/x/staking/keeper/delegation_test.go +++ b/x/staking/keeper/delegation_test.go @@ -286,7 +286,6 @@ func (s *KeeperTestSuite) TestUnbondingDelegation() { 0, time.Unix(0, 0).UTC(), math.NewInt(5), - 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos"), ) @@ -343,8 +342,8 @@ func (s *KeeperTestSuite) TestUnbondingDelegationsFromValidator() { 0, time.Unix(0, 0).UTC(), math.NewInt(5), - 0, - address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos"), + address.NewBech32Codec("cosmosvaloper"), + address.NewBech32Codec("cosmos"), ) // set and retrieve a record @@ -716,7 +715,7 @@ func (s *KeeperTestSuite) TestGetRedelegationsFromSrcValidator() { rd := stakingtypes.NewRedelegation(addrDels[0], addrVals[0], addrVals[1], 0, time.Unix(0, 0), math.NewInt(5), - math.LegacyNewDec(5), 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) + math.LegacyNewDec(5), address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) // set and retrieve a record err := keeper.SetRedelegation(ctx, rd) @@ -746,7 +745,7 @@ func (s *KeeperTestSuite) TestRedelegation() { rd := stakingtypes.NewRedelegation(addrDels[0], addrVals[0], addrVals[1], 0, time.Unix(0, 0).UTC(), math.NewInt(5), - math.LegacyNewDec(5), 0, address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) + math.LegacyNewDec(5), address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos")) // test shouldn't have and redelegations has, err := keeper.HasReceivingRedelegation(ctx, addrDels[0], addrVals[1]) @@ -1107,14 +1106,14 @@ func (s *KeeperTestSuite) TestUnbondingDelegationAddEntry() { creationHeight, time.Unix(0, 0).UTC(), math.NewInt(10), - 0, - address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos"), + address.NewBech32Codec("cosmosvaloper"), + address.NewBech32Codec("cosmos"), ) var initialEntries []stakingtypes.UnbondingDelegationEntry initialEntries = append(initialEntries, ubd.Entries...) require.Len(initialEntries, 1) - isNew := ubd.AddEntry(creationHeight, time.Unix(0, 0).UTC(), math.NewInt(5), 1) + isNew := ubd.AddEntry(creationHeight, time.Unix(0, 0).UTC(), math.NewInt(5)) require.False(isNew) require.Len(ubd.Entries, 1) // entry was merged require.NotEqual(initialEntries, ubd.Entries) @@ -1123,7 +1122,7 @@ func (s *KeeperTestSuite) TestUnbondingDelegationAddEntry() { require.Equal(ubd.Entries[0].Balance, math.NewInt(15)) // 10 from previous + 5 from merged newCreationHeight := int64(11) - isNew = ubd.AddEntry(newCreationHeight, time.Unix(1, 0).UTC(), math.NewInt(5), 2) + isNew = ubd.AddEntry(newCreationHeight, time.Unix(1, 0).UTC(), math.NewInt(5)) require.True(isNew) require.Len(ubd.Entries, 2) // entry was appended require.NotEqual(initialEntries, ubd.Entries) @@ -1131,7 +1130,6 @@ func (s *KeeperTestSuite) TestUnbondingDelegationAddEntry() { require.Equal(newCreationHeight, ubd.Entries[1].CreationHeight) require.Equal(ubd.Entries[0].Balance, math.NewInt(15)) require.Equal(ubd.Entries[1].Balance, math.NewInt(5)) - require.NotEqual(ubd.Entries[0].UnbondingId, ubd.Entries[1].UnbondingId) // appended entry has a new unbondingID } func (s *KeeperTestSuite) TestSetUnbondingDelegationEntry() { @@ -1149,8 +1147,8 @@ func (s *KeeperTestSuite) TestSetUnbondingDelegationEntry() { creationHeight, time.Unix(0, 0).UTC(), math.NewInt(5), - 0, - address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmos"), + address.NewBech32Codec("cosmosvaloper"), + address.NewBech32Codec("cosmos"), ) // set and retrieve a record @@ -1180,8 +1178,7 @@ func (s *KeeperTestSuite) TestSetUnbondingDelegationEntry() { require.Len(resUnbonding.Entries, 1) require.NotEqual(initialEntries, resUnbonding.Entries) require.Equal(creationHeight, resUnbonding.Entries[0].CreationHeight) - require.Equal(initialEntries[0].UnbondingId, resUnbonding.Entries[0].UnbondingId) // initial unbondingID remains unchanged - require.Equal(resUnbonding.Entries[0].Balance, math.NewInt(10)) // 5 from previous entry + 5 from merged entry + require.Equal(resUnbonding.Entries[0].Balance, math.NewInt(10)) // 5 from previous entry + 5 from merged entry // set unbonding delegation entry for newCreationHeight // new entry is expected to be appended to the existing entries @@ -1202,11 +1199,6 @@ func (s *KeeperTestSuite) TestSetUnbondingDelegationEntry() { require.NotEqual(resUnbonding.Entries[0], resUnbonding.Entries[1]) require.Equal(creationHeight, resUnbonding.Entries[0].CreationHeight) require.Equal(newCreationHeight, resUnbonding.Entries[1].CreationHeight) - - // unbondingID is incremented on every call to SetUnbondingDelegationEntry - // unbondingID == 1 was skipped because the entry was merged with the existing entry with unbondingID == 0 - // unbondingID comes from a global counter -> gaps in unbondingIDs are OK as long as every unbondingID is unique - require.Equal(uint64(2), resUnbonding.Entries[1].UnbondingId) } func (s *KeeperTestSuite) TestUndelegateWithDustShare() { diff --git a/x/staking/keeper/grpc_query.go b/x/staking/keeper/grpc_query.go index e74a960297c3..611582c1a828 100644 --- a/x/staking/keeper/grpc_query.go +++ b/x/staking/keeper/grpc_query.go @@ -648,7 +648,6 @@ func redelegationsToRedelegationResponses(ctx context.Context, k *Keeper, redels entry.SharesDst, entry.InitialBalance, val.TokensFromShares(entry.SharesDst).TruncateInt(), - entry.UnbondingId, ) } diff --git a/x/staking/keeper/keeper.go b/x/staking/keeper/keeper.go index 876c9ae97df3..13884f06622c 100644 --- a/x/staking/keeper/keeper.go +++ b/x/staking/keeper/keeper.go @@ -70,17 +70,12 @@ type Keeper struct { LastTotalPower collections.Item[math.Int] // DelegationsByValidator key: valAddr+delAddr | value: none used (index key for delegations by validator index) DelegationsByValidator collections.Map[collections.Pair[sdk.ValAddress, sdk.AccAddress], []byte] - UnbondingID collections.Sequence // ValidatorByConsensusAddress key: consAddr | value: valAddr ValidatorByConsensusAddress collections.Map[sdk.ConsAddress, sdk.ValAddress] - // UnbondingType key: unbondingID | value: index of UnbondingType - UnbondingType collections.Map[uint64, uint64] // Redelegations key: AccAddr+SrcValAddr+DstValAddr | value: Redelegation Redelegations collections.Map[collections.Triple[[]byte, []byte, []byte], types.Redelegation] // Delegations key: AccAddr+valAddr | value: Delegation Delegations collections.Map[collections.Pair[sdk.AccAddress, sdk.ValAddress], types.Delegation] - // UnbondingIndex key:UnbondingID | value: ubdKey (ubdKey = [UnbondingDelegationKey(Prefix)+len(delAddr)+delAddr+len(valAddr)+valAddr]) - UnbondingIndex collections.Map[uint64, []byte] // UnbondingQueue key: Timestamp | value: DVPairs [delAddr+valAddr] UnbondingQueue collections.Map[time.Time, types.DVPairs] // Validators key: valAddr | value: Validator @@ -178,14 +173,12 @@ func NewKeeper( ), collections.BytesValue, ), - UnbondingID: collections.NewSequence(sb, types.UnbondingIDKey, "unbonding_id"), ValidatorByConsensusAddress: collections.NewMap( sb, types.ValidatorsByConsAddrKey, "validator_by_cons_addr", sdk.LengthPrefixedAddressKey(sdk.ConsAddressKey).WithName("cons_address"), //nolint: staticcheck // sdk.LengthPrefixedAddressKey is needed to retain state compatibility collcodec.KeyToValueCodec(sdk.ValAddressKey), ), - UnbondingType: collections.NewMap(sb, types.UnbondingTypeKey, "unbonding_type", collections.Uint64Key.WithName("unbonding_id"), collections.Uint64Value), // key format is: 52 | lengthPrefixedBytes(AccAddr) | lengthPrefixedBytes(SrcValAddr) | lengthPrefixedBytes(DstValAddr) Redelegations: collections.NewMap( sb, types.RedelegationKey, @@ -200,7 +193,6 @@ func NewKeeper( ), codec.CollValue[types.Redelegation](cdc), ), - UnbondingIndex: collections.NewMap(sb, types.UnbondingIndexKey, "unbonding_index", collections.Uint64Key.WithName("index"), collections.BytesValue.WithName("ubd_key")), UnbondingDelegationByValIndex: collections.NewMap( sb, types.UnbondingDelegationByValIndexKey, "unbonding_delegation_by_val_index", diff --git a/x/staking/keeper/msg_server_test.go b/x/staking/keeper/msg_server_test.go index b5d92d62f535..11b3653515e5 100644 --- a/x/staking/keeper/msg_server_test.go +++ b/x/staking/keeper/msg_server_test.go @@ -939,7 +939,7 @@ func (s *KeeperTestSuite) TestMsgCancelUnbondingDelegation() { require.NoError(err) require.Equal(del, resDel) - ubd := types.NewUnbondingDelegation(Addr, ValAddr, 10, ctx.HeaderInfo().Time.Add(time.Minute*10), shares.RoundInt(), 0, keeper.ValidatorAddressCodec(), ak.AddressCodec()) + ubd := types.NewUnbondingDelegation(Addr, ValAddr, 10, ctx.HeaderInfo().Time.Add(time.Minute*10), shares.RoundInt(), keeper.ValidatorAddressCodec(), ak.AddressCodec()) require.NoError(keeper.SetUnbondingDelegation(ctx, ubd)) resUnbond, err := keeper.GetUnbondingDelegation(ctx, Addr, ValAddr) require.NoError(err) diff --git a/x/staking/keeper/slash.go b/x/staking/keeper/slash.go index c7623d6b5c37..976142b57e1a 100644 --- a/x/staking/keeper/slash.go +++ b/x/staking/keeper/slash.go @@ -254,7 +254,7 @@ func (k Keeper) SlashUnbondingDelegation(ctx context.Context, unbondingDelegatio continue } - if entry.IsMature(now) && !entry.OnHold() { + if entry.IsMature(now) { // Unbonding delegation no longer eligible for slashing, skip it continue } @@ -346,7 +346,7 @@ func (k Keeper) SlashRedelegation(ctx context.Context, srcValidator types.Valida case entry.CreationHeight < infractionHeight: continue // Unbonding delegation no longer eligible for slashing, skip it - case entry.IsMature(now) && !entry.OnHold(): + case entry.IsMature(now): continue // Slash the unbonding delegation default: diff --git a/x/staking/keeper/unbonding.go b/x/staking/keeper/unbonding.go deleted file mode 100644 index 7e3a9cd96193..000000000000 --- a/x/staking/keeper/unbonding.go +++ /dev/null @@ -1,450 +0,0 @@ -package keeper - -import ( - "context" - "errors" - - "cosmossdk.io/collections" - errorsmod "cosmossdk.io/errors" - "cosmossdk.io/x/staking/types" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// IncrementUnbondingID increments and returns a unique ID for an unbonding operation -func (k Keeper) IncrementUnbondingID(ctx context.Context) (unbondingID uint64, err error) { - unbondingID, err = k.UnbondingID.Next(ctx) - if err != nil { - return 0, err - } - unbondingID++ - - return unbondingID, err -} - -// DeleteUnbondingIndex removes a mapping from UnbondingId to unbonding operation -func (k Keeper) DeleteUnbondingIndex(ctx context.Context, id uint64) error { - return k.UnbondingIndex.Remove(ctx, id) -} - -// GetUnbondingType returns the enum type of unbonding which is any of -// {UnbondingDelegation | Redelegation | ValidatorUnbonding} -func (k Keeper) GetUnbondingType(ctx context.Context, id uint64) (unbondingType types.UnbondingType, err error) { - ubdType, err := k.UnbondingType.Get(ctx, id) - if errors.Is(err, collections.ErrNotFound) { - return unbondingType, types.ErrNoUnbondingType - } - return types.UnbondingType(ubdType), err -} - -// SetUnbondingType sets the enum type of unbonding which is any of -// {UnbondingDelegation | Redelegation | ValidatorUnbonding} -func (k Keeper) SetUnbondingType(ctx context.Context, id uint64, unbondingType types.UnbondingType) error { - return k.UnbondingType.Set(ctx, id, uint64(unbondingType)) -} - -// GetUnbondingDelegationByUnbondingID returns a unbonding delegation that has an unbonding delegation entry with a certain ID -func (k Keeper) GetUnbondingDelegationByUnbondingID(ctx context.Context, id uint64) (ubd types.UnbondingDelegation, err error) { - ubdKey, err := k.UnbondingIndex.Get(ctx, id) // ubdKey => [UnbondingDelegationKey(Prefix)+len(delAddr)+delAddr+len(valAddr)+valAddr] - if err != nil { - if errors.Is(err, collections.ErrNotFound) { - return types.UnbondingDelegation{}, types.ErrNoUnbondingDelegation - } - return types.UnbondingDelegation{}, err - } - - if ubdKey == nil { - return types.UnbondingDelegation{}, types.ErrNoUnbondingDelegation - } - - // remove prefix bytes and length bytes (since ubdKey obtained is prefixed by UnbondingDelegationKey prefix and length of the address) - delAddr := ubdKey[2 : (len(ubdKey)/2)+1] - // remove prefix length bytes - valAddr := ubdKey[2+len(ubdKey)/2:] - - ubd, err = k.UnbondingDelegations.Get(ctx, collections.Join(delAddr, valAddr)) - if err != nil { - if errors.Is(err, collections.ErrNotFound) { - return types.UnbondingDelegation{}, types.ErrNoUnbondingDelegation - } - return types.UnbondingDelegation{}, err - } - - return ubd, nil -} - -// GetRedelegationByUnbondingID returns a unbonding delegation that has an unbonding delegation entry with a certain ID -func (k Keeper) GetRedelegationByUnbondingID(ctx context.Context, id uint64) (red types.Redelegation, err error) { - store := k.KVStoreService.OpenKVStore(ctx) - - redKey, err := k.UnbondingIndex.Get(ctx, id) - if err != nil { - if errors.Is(err, collections.ErrNotFound) { - return types.Redelegation{}, types.ErrNoRedelegation - } - return types.Redelegation{}, err - } - - if redKey == nil { - return types.Redelegation{}, types.ErrNoRedelegation - } - - value, err := store.Get(redKey) - if err != nil { - return types.Redelegation{}, err - } - - if value == nil { - return types.Redelegation{}, types.ErrNoRedelegation - } - - red, err = types.UnmarshalRED(k.cdc, value) - // An error here means that what we got wasn't the right type - if err != nil { - return types.Redelegation{}, err - } - - return red, nil -} - -// GetValidatorByUnbondingID returns the validator that is unbonding with a certain unbonding op ID -func (k Keeper) GetValidatorByUnbondingID(ctx context.Context, id uint64) (val types.Validator, err error) { - store := k.KVStoreService.OpenKVStore(ctx) - - valKey, err := k.UnbondingIndex.Get(ctx, id) - if err != nil { - if errors.Is(err, collections.ErrNotFound) { - return types.Validator{}, types.ErrNoValidatorFound - } - return types.Validator{}, err - } - - if valKey == nil { - return types.Validator{}, types.ErrNoValidatorFound - } - - value, err := store.Get(valKey) - if err != nil { - return types.Validator{}, err - } - - if value == nil { - return types.Validator{}, types.ErrNoValidatorFound - } - - val, err = types.UnmarshalValidator(k.cdc, value) - // An error here means that what we got wasn't the right type - if err != nil { - return types.Validator{}, err - } - - return val, nil -} - -// SetUnbondingDelegationByUnbondingID sets an index to look up an UnbondingDelegation -// by the unbondingID of an UnbondingDelegationEntry that it contains Note, it does not -// set the unbonding delegation itself, use SetUnbondingDelegation(ctx, ubd) for that -func (k Keeper) SetUnbondingDelegationByUnbondingID(ctx context.Context, ubd types.UnbondingDelegation, id uint64) error { - delAddr, err := k.authKeeper.AddressCodec().StringToBytes(ubd.DelegatorAddress) - if err != nil { - return err - } - valAddr, err := k.validatorAddressCodec.StringToBytes(ubd.ValidatorAddress) - if err != nil { - return err - } - - ubdKey := types.GetUBDKey(delAddr, valAddr) - if err = k.UnbondingIndex.Set(ctx, id, ubdKey); err != nil { - return err - } - - // Set unbonding type so that we know how to deserialize it later - return k.SetUnbondingType(ctx, id, types.UnbondingType_UnbondingDelegation) -} - -// SetRedelegationByUnbondingID sets an index to look up a Redelegation by the unbondingID of a RedelegationEntry that it contains -// Note, it does not set the redelegation itself, use SetRedelegation(ctx, red) for that -func (k Keeper) SetRedelegationByUnbondingID(ctx context.Context, red types.Redelegation, id uint64) error { - delAddr, err := k.authKeeper.AddressCodec().StringToBytes(red.DelegatorAddress) - if err != nil { - return err - } - - valSrcAddr, err := k.validatorAddressCodec.StringToBytes(red.ValidatorSrcAddress) - if err != nil { - return err - } - - valDstAddr, err := k.validatorAddressCodec.StringToBytes(red.ValidatorDstAddress) - if err != nil { - return err - } - - redKey := types.GetREDKey(delAddr, valSrcAddr, valDstAddr) - if err = k.UnbondingIndex.Set(ctx, id, redKey); err != nil { - return err - } - - // Set unbonding type so that we know how to deserialize it later - return k.SetUnbondingType(ctx, id, types.UnbondingType_Redelegation) -} - -// SetValidatorByUnbondingID sets an index to look up a Validator by the unbondingID corresponding to its current unbonding -// Note, it does not set the validator itself, use SetValidator(ctx, val) for that -func (k Keeper) SetValidatorByUnbondingID(ctx context.Context, val types.Validator, id uint64) error { - valAddr, err := k.validatorAddressCodec.StringToBytes(val.OperatorAddress) - if err != nil { - return err - } - - valKey := types.GetValidatorKey(valAddr) - if err = k.UnbondingIndex.Set(ctx, id, valKey); err != nil { - return err - } - - // Set unbonding type so that we know how to deserialize it later - return k.SetUnbondingType(ctx, id, types.UnbondingType_ValidatorUnbonding) -} - -// unbondingDelegationEntryArrayIndex and redelegationEntryArrayIndex are utilities to find -// at which position in the Entries array the entry with a given id is -func unbondingDelegationEntryArrayIndex(ubd types.UnbondingDelegation, id uint64) (index int, err error) { - for i, entry := range ubd.Entries { - // we find the entry with the right ID - if entry.UnbondingId == id { - return i, nil - } - } - - return 0, types.ErrNoUnbondingDelegation -} - -func redelegationEntryArrayIndex(red types.Redelegation, id uint64) (index int, err error) { - for i, entry := range red.Entries { - // we find the entry with the right ID - if entry.UnbondingId == id { - return i, nil - } - } - - return 0, types.ErrNoRedelegation -} - -// UnbondingCanComplete allows a stopped unbonding operation, such as an -// unbonding delegation, a redelegation, or a validator unbonding to complete. -// In order for the unbonding operation with `id` to eventually complete, every call -// to PutUnbondingOnHold(id) must be matched by a call to UnbondingCanComplete(id). -func (k Keeper) UnbondingCanComplete(ctx context.Context, id uint64) error { - unbondingType, err := k.GetUnbondingType(ctx, id) - if err != nil { - return err - } - - switch unbondingType { - case types.UnbondingType_UnbondingDelegation: - if err := k.unbondingDelegationEntryCanComplete(ctx, id); err != nil { - return err - } - case types.UnbondingType_Redelegation: - if err := k.redelegationEntryCanComplete(ctx, id); err != nil { - return err - } - case types.UnbondingType_ValidatorUnbonding: - if err := k.validatorUnbondingCanComplete(ctx, id); err != nil { - return err - } - default: - return types.ErrUnbondingNotFound - } - - return nil -} - -func (k Keeper) unbondingDelegationEntryCanComplete(ctx context.Context, id uint64) error { - ubd, err := k.GetUnbondingDelegationByUnbondingID(ctx, id) - if err != nil { - return err - } - - i, err := unbondingDelegationEntryArrayIndex(ubd, id) - if err != nil { - return err - } - - // The entry must be on hold - if !ubd.Entries[i].OnHold() { - return errorsmod.Wrapf( - types.ErrUnbondingOnHoldRefCountNegative, - "undelegation unbondingID(%d), expecting UnbondingOnHoldRefCount > 0, got %T", - id, ubd.Entries[i].UnbondingOnHoldRefCount, - ) - } - ubd.Entries[i].UnbondingOnHoldRefCount-- - - // Check if entry is matured. - if !ubd.Entries[i].OnHold() && ubd.Entries[i].IsMature(k.HeaderService.HeaderInfo(ctx).Time) { - // If matured, complete it. - delegatorAddress, err := k.authKeeper.AddressCodec().StringToBytes(ubd.DelegatorAddress) - if err != nil { - return err - } - - bondDenom, err := k.BondDenom(ctx) - if err != nil { - return err - } - - // track undelegation only when remaining or truncated shares are non-zero - if !ubd.Entries[i].Balance.IsZero() { - amt := sdk.NewCoin(bondDenom, ubd.Entries[i].Balance) - if err := k.bankKeeper.UndelegateCoinsFromModuleToAccount( - ctx, types.NotBondedPoolName, delegatorAddress, sdk.NewCoins(amt), - ); err != nil { - return err - } - } - - // Remove entry - ubd.RemoveEntry(int64(i)) - // Remove from the UnbondingIndex - err = k.DeleteUnbondingIndex(ctx, id) - if err != nil { - return err - } - - } - - // set the unbonding delegation or remove it if there are no more entries - if len(ubd.Entries) == 0 { - return k.RemoveUnbondingDelegation(ctx, ubd) - } - - return k.SetUnbondingDelegation(ctx, ubd) -} - -func (k Keeper) redelegationEntryCanComplete(ctx context.Context, id uint64) error { - red, err := k.GetRedelegationByUnbondingID(ctx, id) - if err != nil { - return err - } - - i, err := redelegationEntryArrayIndex(red, id) - if err != nil { - return err - } - - // The entry must be on hold - if !red.Entries[i].OnHold() { - return errorsmod.Wrapf( - types.ErrUnbondingOnHoldRefCountNegative, - "redelegation unbondingID(%d), expecting UnbondingOnHoldRefCount > 0, got %T", - id, red.Entries[i].UnbondingOnHoldRefCount, - ) - } - red.Entries[i].UnbondingOnHoldRefCount-- - - headerInfo := k.HeaderService.HeaderInfo(ctx) - if !red.Entries[i].OnHold() && red.Entries[i].IsMature(headerInfo.Time) { - // If matured, complete it. - // Remove entry - red.RemoveEntry(int64(i)) - // Remove from the Unbonding index - if err = k.DeleteUnbondingIndex(ctx, id); err != nil { - return err - } - } - - // set the redelegation or remove it if there are no more entries - if len(red.Entries) == 0 { - return k.RemoveRedelegation(ctx, red) - } - - return k.SetRedelegation(ctx, red) -} - -func (k Keeper) validatorUnbondingCanComplete(ctx context.Context, id uint64) error { - val, err := k.GetValidatorByUnbondingID(ctx, id) - if err != nil { - return err - } - - if val.UnbondingOnHoldRefCount <= 0 { - return errorsmod.Wrapf( - types.ErrUnbondingOnHoldRefCountNegative, - "val(%s), expecting UnbondingOnHoldRefCount > 0, got %T", - val.OperatorAddress, val.UnbondingOnHoldRefCount, - ) - } - val.UnbondingOnHoldRefCount-- - return k.SetValidator(ctx, val) -} - -// PutUnbondingOnHold allows an external module to stop an unbonding operation, -// such as an unbonding delegation, a redelegation, or a validator unbonding. -// In order for the unbonding operation with `id` to eventually complete, every call -// to PutUnbondingOnHold(id) must be matched by a call to UnbondingCanComplete(id). -func (k Keeper) PutUnbondingOnHold(ctx context.Context, id uint64) error { - unbondingType, err := k.GetUnbondingType(ctx, id) - if err != nil { - return err - } - switch unbondingType { - case types.UnbondingType_UnbondingDelegation: - if err := k.putUnbondingDelegationEntryOnHold(ctx, id); err != nil { - return err - } - case types.UnbondingType_Redelegation: - if err := k.putRedelegationEntryOnHold(ctx, id); err != nil { - return err - } - case types.UnbondingType_ValidatorUnbonding: - if err := k.putValidatorOnHold(ctx, id); err != nil { - return err - } - default: - return types.ErrUnbondingNotFound - } - - return nil -} - -func (k Keeper) putUnbondingDelegationEntryOnHold(ctx context.Context, id uint64) error { - ubd, err := k.GetUnbondingDelegationByUnbondingID(ctx, id) - if err != nil { - return err - } - - i, err := unbondingDelegationEntryArrayIndex(ubd, id) - if err != nil { - return err - } - - ubd.Entries[i].UnbondingOnHoldRefCount++ - return k.SetUnbondingDelegation(ctx, ubd) -} - -func (k Keeper) putRedelegationEntryOnHold(ctx context.Context, id uint64) error { - red, err := k.GetRedelegationByUnbondingID(ctx, id) - if err != nil { - return err - } - - i, err := redelegationEntryArrayIndex(red, id) - if err != nil { - return err - } - - red.Entries[i].UnbondingOnHoldRefCount++ - return k.SetRedelegation(ctx, red) -} - -func (k Keeper) putValidatorOnHold(ctx context.Context, id uint64) error { - val, err := k.GetValidatorByUnbondingID(ctx, id) - if err != nil { - return err - } - - val.UnbondingOnHoldRefCount++ - return k.SetValidator(ctx, val) -} diff --git a/x/staking/keeper/unbonding_test.go b/x/staking/keeper/unbonding_test.go deleted file mode 100644 index 1749ac04aa68..000000000000 --- a/x/staking/keeper/unbonding_test.go +++ /dev/null @@ -1,346 +0,0 @@ -package keeper_test - -import ( - "time" - - "cosmossdk.io/math" - "cosmossdk.io/x/staking/testutil" - "cosmossdk.io/x/staking/types" - - addresscodec "github.com/cosmos/cosmos-sdk/codec/address" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -func (s *KeeperTestSuite) TestIncrementUnbondingID() { - for i := 1; i < 10; i++ { - id, err := s.stakingKeeper.IncrementUnbondingID(s.ctx) - s.Require().NoError(err) - s.Require().Equal(uint64(i), id) - } -} - -func (s *KeeperTestSuite) TestUnbondingTypeAccessors() { - require := s.Require() - cases := []struct { - exists bool - name string - expected types.UnbondingType - }{ - { - name: "existing 1", - exists: true, - expected: types.UnbondingType_UnbondingDelegation, - }, - { - name: "existing 2", - exists: true, - expected: types.UnbondingType_Redelegation, - }, - { - name: "not existing", - exists: false, - }, - } - - for i, tc := range cases { - s.Run(tc.name, func() { - if tc.exists { - require.NoError(s.stakingKeeper.SetUnbondingType(s.ctx, uint64(i), tc.expected)) - } - - unbondingType, err := s.stakingKeeper.GetUnbondingType(s.ctx, uint64(i)) - if tc.exists { - require.NoError(err) - require.Equal(tc.expected, unbondingType) - } else { - require.ErrorIs(err, types.ErrNoUnbondingType) - } - }) - } -} - -func (s *KeeperTestSuite) TestUnbondingDelegationByUnbondingIDAccessors() { - delAddrs, valAddrs := createValAddrs(2) - require := s.Require() - - type exists struct { - setUnbondingDelegation bool - setUnbondingDelegationByUnbondingID bool - } - - cases := []struct { - exists exists - name string - expected types.UnbondingDelegation - }{ - { - name: "existing 1", - exists: exists{true, true}, - expected: types.NewUnbondingDelegation( - delAddrs[0], - valAddrs[0], - 0, - time.Unix(0, 0).UTC(), - math.NewInt(5), - 0, - addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos"), - ), - }, - { - name: "not existing 1", - exists: exists{false, true}, - expected: types.NewUnbondingDelegation( - delAddrs[1], - valAddrs[1], - 0, - time.Unix(0, 0).UTC(), - math.NewInt(5), - 0, - addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos"), - ), - }, - { - name: "not existing 2", - exists: exists{false, false}, - expected: types.NewUnbondingDelegation( - delAddrs[0], - valAddrs[0], - 0, - time.Unix(0, 0).UTC(), - math.NewInt(5), - 0, - addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos"), - ), - }, - } - - for i, tc := range cases { - s.Run(tc.name, func() { - if tc.exists.setUnbondingDelegation { - require.NoError(s.stakingKeeper.SetUnbondingDelegation(s.ctx, tc.expected)) - } - - if tc.exists.setUnbondingDelegationByUnbondingID { - require.NoError(s.stakingKeeper.SetUnbondingDelegationByUnbondingID(s.ctx, tc.expected, uint64(i))) - } - - ubd, err := s.stakingKeeper.GetUnbondingDelegationByUnbondingID(s.ctx, uint64(i)) - if tc.exists.setUnbondingDelegation && tc.exists.setUnbondingDelegationByUnbondingID { - require.NoError(err) - require.Equal(tc.expected, ubd) - } else { - require.ErrorIs(err, types.ErrNoUnbondingDelegation) - } - }) - } -} - -func (s *KeeperTestSuite) TestRedelegationByUnbondingIDAccessors() { - delAddrs, valAddrs := createValAddrs(2) - require := s.Require() - - type exists struct { - setRedelegation bool - setRedelegationByUnbondingID bool - } - - cases := []struct { - exists exists - name string - expected types.Redelegation - }{ - { - name: "existing 1", - exists: exists{true, true}, - expected: types.NewRedelegation( - delAddrs[0], - valAddrs[0], - valAddrs[1], - 0, - time.Unix(5, 0).UTC(), - math.NewInt(10), - math.LegacyNewDec(10), - 0, - addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos"), - ), - }, - { - name: "not existing 1", - exists: exists{false, true}, - expected: types.NewRedelegation( - delAddrs[1], - valAddrs[0], - valAddrs[1], - 0, - time.Unix(5, 0).UTC(), - math.NewInt(10), - math.LegacyNewDec(10), - 0, - addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos"), - ), - }, - { - name: "not existing 2", - exists: exists{false, false}, - expected: types.NewRedelegation( - delAddrs[1], - valAddrs[1], - valAddrs[0], - 0, - time.Unix(5, 0).UTC(), - math.NewInt(10), - math.LegacyNewDec(10), - 0, - addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos"), - ), - }, - } - - for i, tc := range cases { - s.Run(tc.name, func() { - if tc.exists.setRedelegation { - require.NoError(s.stakingKeeper.SetRedelegation(s.ctx, tc.expected)) - } - - if tc.exists.setRedelegationByUnbondingID { - require.NoError(s.stakingKeeper.SetRedelegationByUnbondingID(s.ctx, tc.expected, uint64(i))) - } - - red, err := s.stakingKeeper.GetRedelegationByUnbondingID(s.ctx, uint64(i)) - if tc.exists.setRedelegation && tc.exists.setRedelegationByUnbondingID { - require.NoError(err) - require.Equal(tc.expected, red) - } else { - require.ErrorIs(err, types.ErrNoRedelegation) - } - }) - } -} - -func (s *KeeperTestSuite) TestValidatorByUnbondingIDAccessors() { - _, valAddrs := createValAddrs(3) - require := s.Require() - - type exists struct { - setValidator bool - setValidatorByUnbondingID bool - } - - cases := []struct { - exists exists - name string - validator types.Validator - }{ - { - name: "existing 1", - exists: exists{true, true}, - validator: testutil.NewValidator(s.T(), valAddrs[0], PKs[0]), - }, - { - name: "not existing 1", - exists: exists{false, true}, - validator: testutil.NewValidator(s.T(), valAddrs[1], PKs[1]), - }, - { - name: "not existing 2", - exists: exists{false, false}, - validator: testutil.NewValidator(s.T(), valAddrs[2], PKs[0]), - }, - } - - for i, tc := range cases { - s.Run(tc.name, func() { - if tc.exists.setValidator { - require.NoError(s.stakingKeeper.SetValidator(s.ctx, tc.validator)) - } - - if tc.exists.setValidatorByUnbondingID { - require.NoError(s.stakingKeeper.SetValidatorByUnbondingID(s.ctx, tc.validator, uint64(i))) - } - - val, err := s.stakingKeeper.GetValidatorByUnbondingID(s.ctx, uint64(i)) - if tc.exists.setValidator && tc.exists.setValidatorByUnbondingID { - require.NoError(err) - require.Equal(tc.validator, val) - } else { - require.ErrorIs(err, types.ErrNoValidatorFound) - } - }) - } -} - -func (s *KeeperTestSuite) TestUnbondingCanComplete() { - delAddrs, valAddrs := createValAddrs(3) - require := s.Require() - - unbondingID := uint64(1) - - // no unbondingID set - err := s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID) - require.ErrorIs(err, types.ErrNoUnbondingType) - - // unbonding delegation - require.NoError(s.stakingKeeper.SetUnbondingType(s.ctx, unbondingID, types.UnbondingType_UnbondingDelegation)) - err = s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID) - require.ErrorIs(err, types.ErrNoUnbondingDelegation) - - ubd := types.NewUnbondingDelegation( - delAddrs[0], - valAddrs[0], - 0, - time.Unix(0, 0).UTC(), - math.NewInt(5), - unbondingID, - addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos"), - ) - require.NoError(s.stakingKeeper.SetUnbondingDelegation(s.ctx, ubd)) - require.NoError(s.stakingKeeper.SetUnbondingDelegationByUnbondingID(s.ctx, ubd, unbondingID)) - err = s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID) - require.ErrorIs(err, types.ErrUnbondingOnHoldRefCountNegative) - - err = s.stakingKeeper.PutUnbondingOnHold(s.ctx, unbondingID) - require.NoError(err) - s.bankKeeper.EXPECT().UndelegateCoinsFromModuleToAccount(s.ctx, types.NotBondedPoolName, delAddrs[0], sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(5)))).Return(nil) - err = s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID) - require.NoError(err) - - // redelegation - unbondingID++ - require.NoError(s.stakingKeeper.SetUnbondingType(s.ctx, unbondingID, types.UnbondingType_Redelegation)) - err = s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID) - require.ErrorIs(err, types.ErrNoRedelegation) - - red := types.NewRedelegation( - delAddrs[0], - valAddrs[0], - valAddrs[1], - 0, - time.Unix(5, 0).UTC(), - math.NewInt(10), - math.LegacyNewDec(10), - unbondingID, - addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos"), - ) - require.NoError(s.stakingKeeper.SetRedelegation(s.ctx, red)) - require.NoError(s.stakingKeeper.SetRedelegationByUnbondingID(s.ctx, red, unbondingID)) - err = s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID) - require.ErrorIs(err, types.ErrUnbondingOnHoldRefCountNegative) - - require.NoError(s.stakingKeeper.PutUnbondingOnHold(s.ctx, unbondingID)) - require.NoError(s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID)) - - // validator unbonding - unbondingID++ - require.NoError(s.stakingKeeper.SetUnbondingType(s.ctx, unbondingID, types.UnbondingType_ValidatorUnbonding)) - err = s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID) - require.ErrorIs(err, types.ErrNoValidatorFound) - - val := testutil.NewValidator(s.T(), valAddrs[0], PKs[0]) - require.NoError(s.stakingKeeper.SetValidator(s.ctx, val)) - require.NoError(s.stakingKeeper.SetValidatorByUnbondingID(s.ctx, val, unbondingID)) - err = s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID) - require.ErrorIs(err, types.ErrUnbondingOnHoldRefCountNegative) - - require.NoError(s.stakingKeeper.PutUnbondingOnHold(s.ctx, unbondingID)) - require.NoError(s.stakingKeeper.UnbondingCanComplete(s.ctx, unbondingID)) -} diff --git a/x/staking/keeper/val_state_change.go b/x/staking/keeper/val_state_change.go index 867dc89dd5cb..866cc1ce0a2d 100644 --- a/x/staking/keeper/val_state_change.go +++ b/x/staking/keeper/val_state_change.go @@ -456,11 +456,6 @@ func (k Keeper) BeginUnbondingValidator(ctx context.Context, validator types.Val return validator, fmt.Errorf("should not already be unbonded or unbonding, validator: %v", validator) } - id, err := k.IncrementUnbondingID(ctx) - if err != nil { - return validator, err - } - validator = validator.UpdateStatus(types.Unbonding) headerInfo := k.HeaderService.HeaderInfo(ctx) @@ -468,8 +463,6 @@ func (k Keeper) BeginUnbondingValidator(ctx context.Context, validator types.Val validator.UnbondingTime = headerInfo.Time.Add(params.UnbondingTime) validator.UnbondingHeight = headerInfo.Height - validator.UnbondingIds = append(validator.UnbondingIds, id) - // save the now unbonded validator record and power index if err = k.SetValidator(ctx, validator); err != nil { return validator, err @@ -499,14 +492,6 @@ func (k Keeper) BeginUnbondingValidator(ctx context.Context, validator types.Val return validator, err } - if err := k.SetValidatorByUnbondingID(ctx, validator, id); err != nil { - return validator, err - } - - if err := k.Hooks().AfterUnbondingInitiated(ctx, id); err != nil { - return validator, err - } - return validator, nil } diff --git a/x/staking/keeper/validator.go b/x/staking/keeper/validator.go index 7ce5cae9822a..61e42bdf8008 100644 --- a/x/staking/keeper/validator.go +++ b/x/staking/keeper/validator.go @@ -545,36 +545,19 @@ func (k Keeper) unbondMatureValidators( return errors.New("unexpected validator in unbonding queue; status was not unbonding") } - // if the ref count is not zero, early exit. - if val.UnbondingOnHoldRefCount != 0 { - return nil - } - - // otherwise do proper unbonding - for _, id := range val.UnbondingIds { - if err = k.DeleteUnbondingIndex(ctx, id); err != nil { - return err - } - } - val, err = k.UnbondingToUnbonded(ctx, val) if err != nil { return err } - if val.GetDelegatorShares().IsZero() { - str, err := k.validatorAddressCodec.StringToBytes(val.GetOperator()) + addr, err := k.validatorAddressCodec.StringToBytes(val.OperatorAddress) if err != nil { return err } - if err = k.RemoveValidator(ctx, str); err != nil { + if err := k.RemoveValidator(ctx, addr); err != nil { return err } - } else { - // remove unbonding ids - val.UnbondingIds = []uint64{} } - // remove validator from queue if err = k.DeleteValidatorQueue(ctx, val); err != nil { return err diff --git a/x/staking/migrations/v6/keys.go b/x/staking/migrations/v6/keys.go index 252d7ce50396..5c3b1a913350 100644 --- a/x/staking/migrations/v6/keys.go +++ b/x/staking/migrations/v6/keys.go @@ -3,6 +3,9 @@ package v6 import "cosmossdk.io/collections" var ( + UnbondingTypeKey = collections.NewPrefix(57) // prefix for an index containing the type of unbonding operations + UnbondingIDKey = collections.NewPrefix(55) // key for the counter for the incrementing id for UnbondingOperations + UnbondingIndexKey = collections.NewPrefix(56) // prefix for an index for looking up unbonding operations by their IDs 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 93de43ec51fa..98b4cb446faa 100644 --- a/x/staking/migrations/v6/store.go +++ b/x/staking/migrations/v6/store.go @@ -13,5 +13,8 @@ import ( func MigrateStore(ctx context.Context, store storetypes.KVStore, cdc codec.BinaryCodec) error { store.Delete(ValidatorUpdatesKey) store.Delete(HistoricalInfoKey) + store.Delete(UnbondingIDKey) + store.Delete(UnbondingIndexKey) + store.Delete(UnbondingTypeKey) return nil } diff --git a/x/staking/proto/cosmos/staking/v1beta1/staking.proto b/x/staking/proto/cosmos/staking/v1beta1/staking.proto index 8b8709322305..ed0c957da034 100644 --- a/x/staking/proto/cosmos/staking/v1beta1/staking.proto +++ b/x/staking/proto/cosmos/staking/v1beta1/staking.proto @@ -246,7 +246,7 @@ message UnbondingDelegationEntry { (gogoproto.nullable) = false ]; // Incrementing id that uniquely identifies this entry - uint64 unbonding_id = 5; + uint64 unbonding_id = 5 [deprecated = true]; // Strictly positive if this entry's unbonding has been stopped by external modules int64 unbonding_on_hold_ref_count = 6; diff --git a/x/staking/testutil/expected_keepers_mocks.go b/x/staking/testutil/expected_keepers_mocks.go index 322243108cf5..4c7f85433a8b 100644 --- a/x/staking/testutil/expected_keepers_mocks.go +++ b/x/staking/testutil/expected_keepers_mocks.go @@ -601,6 +601,7 @@ func (mr *MockStakingHooksMockRecorder) AfterDelegationModified(ctx, delAddr, va return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AfterDelegationModified", reflect.TypeOf((*MockStakingHooks)(nil).AfterDelegationModified), ctx, delAddr, valAddr) } +<<<<<<< HEAD // AfterUnbondingInitiated mocks base method. func (m *MockStakingHooks) AfterUnbondingInitiated(ctx context.Context, id uint64) error { m.ctrl.T.Helper() @@ -615,6 +616,8 @@ func (mr *MockStakingHooksMockRecorder) AfterUnbondingInitiated(ctx, id interfac return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AfterUnbondingInitiated", reflect.TypeOf((*MockStakingHooks)(nil).AfterUnbondingInitiated), ctx, id) } +======= +>>>>>>> 234cdc45f (refactor(x/staking)!: removing unbonding queue index (#22795)) // AfterValidatorBeginUnbonding mocks base method. func (m *MockStakingHooks) AfterValidatorBeginUnbonding(ctx context.Context, consAddr types1.ConsAddress, valAddr types1.ValAddress) error { m.ctrl.T.Helper() diff --git a/x/staking/types/delegation.go b/x/staking/types/delegation.go index fad9ae19ab76..c7754d9a8412 100644 --- a/x/staking/types/delegation.go +++ b/x/staking/types/delegation.go @@ -66,13 +66,12 @@ func (d Delegations) String() (out string) { return strings.TrimSpace(out) } -func NewUnbondingDelegationEntry(creationHeight int64, completionTime time.Time, balance math.Int, unbondingID uint64) UnbondingDelegationEntry { +func NewUnbondingDelegationEntry(creationHeight int64, completionTime time.Time, balance math.Int) UnbondingDelegationEntry { return UnbondingDelegationEntry{ CreationHeight: creationHeight, CompletionTime: completionTime, InitialBalance: balance, Balance: balance, - UnbondingId: unbondingID, UnbondingOnHoldRefCount: 0, } } @@ -82,26 +81,6 @@ func (e UnbondingDelegationEntry) IsMature(currentTime time.Time) bool { return !e.CompletionTime.After(currentTime) } -// OnHold - is the current entry on hold due to external modules -func (e UnbondingDelegationEntry) OnHold() bool { - return e.UnbondingOnHoldRefCount > 0 -} - -// return the unbonding delegation entry -func MustMarshalUBDE(cdc codec.BinaryCodec, ubd UnbondingDelegationEntry) []byte { - return cdc.MustMarshal(&ubd) -} - -// unmarshal a unbonding delegation entry from a store value -func MustUnmarshalUBDE(cdc codec.BinaryCodec, value []byte) UnbondingDelegationEntry { - ubd, err := UnmarshalUBDE(cdc, value) - if err != nil { - panic(err) - } - - return ubd -} - // unmarshal a unbonding delegation entry from a store value func UnmarshalUBDE(cdc codec.BinaryCodec, value []byte) (ubd UnbondingDelegationEntry, err error) { err = cdc.Unmarshal(value, &ubd) @@ -111,7 +90,7 @@ func UnmarshalUBDE(cdc codec.BinaryCodec, value []byte) (ubd UnbondingDelegation // NewUnbondingDelegation - create a new unbonding delegation object func NewUnbondingDelegation( delegatorAddr sdk.AccAddress, validatorAddr sdk.ValAddress, - creationHeight int64, minTime time.Time, balance math.Int, id uint64, + creationHeight int64, minTime time.Time, balance math.Int, valAc, delAc address.Codec, ) UnbondingDelegation { valAddr, err := valAc.BytesToString(validatorAddr) @@ -126,13 +105,13 @@ func NewUnbondingDelegation( DelegatorAddress: delAddr, ValidatorAddress: valAddr, Entries: []UnbondingDelegationEntry{ - NewUnbondingDelegationEntry(creationHeight, minTime, balance, id), + NewUnbondingDelegationEntry(creationHeight, minTime, balance), }, } } // AddEntry - append entry to the unbonding delegation -func (ubd *UnbondingDelegation) AddEntry(creationHeight int64, minTime time.Time, balance math.Int, unbondingID uint64) bool { +func (ubd *UnbondingDelegation) AddEntry(creationHeight int64, minTime time.Time, balance math.Int) bool { // Check the entries exists with creation_height and complete_time entryIndex := -1 for index, ubdEntry := range ubd.Entries { @@ -152,7 +131,7 @@ func (ubd *UnbondingDelegation) AddEntry(creationHeight int64, minTime time.Time return false } // append the new unbond delegation entry - entry := NewUnbondingDelegationEntry(creationHeight, minTime, balance, unbondingID) + entry := NewUnbondingDelegationEntry(creationHeight, minTime, balance) ubd.Entries = append(ubd.Entries, entry) return true } @@ -194,13 +173,12 @@ func (ubds UnbondingDelegations) String() (out string) { return strings.TrimSpace(out) } -func NewRedelegationEntry(creationHeight int64, completionTime time.Time, balance math.Int, sharesDst math.LegacyDec, id uint64) RedelegationEntry { +func NewRedelegationEntry(creationHeight int64, completionTime time.Time, balance math.Int, sharesDst math.LegacyDec) RedelegationEntry { return RedelegationEntry{ CreationHeight: creationHeight, CompletionTime: completionTime, InitialBalance: balance, SharesDst: sharesDst, - UnbondingId: id, UnbondingOnHoldRefCount: 0, } } @@ -217,7 +195,7 @@ func (e RedelegationEntry) OnHold() bool { func NewRedelegation( delegatorAddr sdk.AccAddress, validatorSrcAddr, validatorDstAddr sdk.ValAddress, - creationHeight int64, minTime time.Time, balance math.Int, sharesDst math.LegacyDec, id uint64, + creationHeight int64, minTime time.Time, balance math.Int, sharesDst math.LegacyDec, valAc, delAc address.Codec, ) Redelegation { valSrcAddr, err := valAc.BytesToString(validatorSrcAddr) @@ -238,14 +216,14 @@ func NewRedelegation( ValidatorSrcAddress: valSrcAddr, ValidatorDstAddress: valDstAddr, Entries: []RedelegationEntry{ - NewRedelegationEntry(creationHeight, minTime, balance, sharesDst, id), + NewRedelegationEntry(creationHeight, minTime, balance, sharesDst), }, } } // AddEntry - append entry to the unbonding delegation -func (red *Redelegation) AddEntry(creationHeight int64, minTime time.Time, balance math.Int, sharesDst math.LegacyDec, id uint64) { - entry := NewRedelegationEntry(creationHeight, minTime, balance, sharesDst, id) +func (red *Redelegation) AddEntry(creationHeight int64, minTime time.Time, balance math.Int, sharesDst math.LegacyDec) { + entry := NewRedelegationEntry(creationHeight, minTime, balance, sharesDst) red.Entries = append(red.Entries, entry) } @@ -341,10 +319,10 @@ func NewRedelegationResponse( // NewRedelegationEntryResponse creates a new RedelegationEntryResponse instance. func NewRedelegationEntryResponse( - creationHeight int64, completionTime time.Time, sharesDst math.LegacyDec, initialBalance, balance math.Int, unbondingID uint64, + creationHeight int64, completionTime time.Time, sharesDst math.LegacyDec, initialBalance, balance math.Int, ) RedelegationEntryResponse { return RedelegationEntryResponse{ - RedelegationEntry: NewRedelegationEntry(creationHeight, completionTime, initialBalance, sharesDst, unbondingID), + RedelegationEntry: NewRedelegationEntry(creationHeight, completionTime, initialBalance, sharesDst), Balance: balance, } } diff --git a/x/staking/types/delegation_test.go b/x/staking/types/delegation_test.go index 3452ce51744c..61d36bbf02f1 100644 --- a/x/staking/types/delegation_test.go +++ b/x/staking/types/delegation_test.go @@ -50,7 +50,7 @@ func TestDelegationString(t *testing.T) { func TestUnbondingDelegationEqual(t *testing.T) { ubd1 := types.NewUnbondingDelegation(sdk.AccAddress(valAddr1), valAddr2, 0, - time.Unix(0, 0), math.NewInt(0), 1, addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) + time.Unix(0, 0), math.NewInt(0), addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) ubd2 := ubd1 ok := ubd1.String() == ubd2.String() @@ -67,7 +67,7 @@ func TestUnbondingDelegationEqual(t *testing.T) { func TestUnbondingDelegationString(t *testing.T) { ubd := types.NewUnbondingDelegation(sdk.AccAddress(valAddr1), valAddr2, 0, - time.Unix(0, 0), math.NewInt(0), 1, addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) + time.Unix(0, 0), math.NewInt(0), addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) require.NotEmpty(t, ubd.String()) } @@ -75,10 +75,10 @@ func TestUnbondingDelegationString(t *testing.T) { func TestRedelegationEqual(t *testing.T) { r1 := types.NewRedelegation(sdk.AccAddress(valAddr1), valAddr2, valAddr3, 0, time.Unix(0, 0), math.NewInt(0), - math.LegacyNewDec(0), 1, addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) + math.LegacyNewDec(0), addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) r2 := types.NewRedelegation(sdk.AccAddress(valAddr1), valAddr2, valAddr3, 0, time.Unix(0, 0), math.NewInt(0), - math.LegacyNewDec(0), 1, addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) + math.LegacyNewDec(0), addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) require.True(t, proto.Equal(&r1, &r2)) r2.Entries[0].SharesDst = math.LegacyNewDec(10) @@ -89,7 +89,7 @@ func TestRedelegationEqual(t *testing.T) { func TestRedelegationString(t *testing.T) { r := types.NewRedelegation(sdk.AccAddress(valAddr1), valAddr2, valAddr3, 0, time.Unix(0, 0), math.NewInt(0), - math.LegacyNewDec(10), 1, addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) + math.LegacyNewDec(10), addresscodec.NewBech32Codec("cosmosvaloper"), addresscodec.NewBech32Codec("cosmos")) require.NotEmpty(t, r.String()) } @@ -145,8 +145,8 @@ func TestRedelegationResponses(t *testing.T) { require.NoError(t, err) entries := []types.RedelegationEntryResponse{ - types.NewRedelegationEntryResponse(0, time.Unix(0, 0), math.LegacyNewDec(5), math.NewInt(5), math.NewInt(5), 0), - types.NewRedelegationEntryResponse(0, time.Unix(0, 0), math.LegacyNewDec(5), math.NewInt(5), math.NewInt(5), 0), + types.NewRedelegationEntryResponse(0, time.Unix(0, 0), math.LegacyNewDec(5), math.NewInt(5), math.NewInt(5)), + types.NewRedelegationEntryResponse(0, time.Unix(0, 0), math.LegacyNewDec(5), math.NewInt(5), math.NewInt(5)), } rdr1 := types.NewRedelegationResponse(addr1, vAddr2, vAddr3, entries) rdr2 := types.NewRedelegationResponse(addr2, vAddr1, vAddr3, entries) diff --git a/x/staking/types/expected_keepers.go b/x/staking/types/expected_keepers.go index e757c2c2b586..a67b52887b33 100644 --- a/x/staking/types/expected_keepers.go +++ b/x/staking/types/expected_keepers.go @@ -105,7 +105,6 @@ type StakingHooks interface { BeforeDelegationRemoved(ctx context.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) error // Must be called when a delegation is removed AfterDelegationModified(ctx context.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) error BeforeValidatorSlashed(ctx context.Context, valAddr sdk.ValAddress, fraction math.LegacyDec) error - AfterUnbondingInitiated(ctx context.Context, id uint64) error AfterConsensusPubKeyUpdate(ctx context.Context, oldPubKey, newPubKey cryptotypes.PubKey, rotationFee sdk.Coin) error } diff --git a/x/staking/types/hooks.go b/x/staking/types/hooks.go index 6cf0581b6e53..cb5a6099d4e7 100644 --- a/x/staking/types/hooks.go +++ b/x/staking/types/hooks.go @@ -109,15 +109,6 @@ func (h MultiStakingHooks) BeforeValidatorSlashed(ctx context.Context, valAddr s return nil } -func (h MultiStakingHooks) AfterUnbondingInitiated(ctx context.Context, id uint64) error { - for i := range h { - if err := h[i].AfterUnbondingInitiated(ctx, id); err != nil { - return err - } - } - return nil -} - func (h MultiStakingHooks) AfterConsensusPubKeyUpdate(ctx context.Context, oldPubKey, newPubKey cryptotypes.PubKey, rotationFee sdk.Coin) error { for i := range h { if err := h[i].AfterConsensusPubKeyUpdate(ctx, oldPubKey, newPubKey, rotationFee); err != nil { diff --git a/x/staking/types/keys.go b/x/staking/types/keys.go index 03335a9a8372..7228716a7700 100644 --- a/x/staking/types/keys.go +++ b/x/staking/types/keys.go @@ -49,10 +49,6 @@ var ( RedelegationByValSrcIndexKey = collections.NewPrefix(53) // prefix for each key for a redelegation, by source validator operator RedelegationByValDstIndexKey = collections.NewPrefix(54) // prefix for each key for a redelegation, by destination validator operator - UnbondingIDKey = collections.NewPrefix(55) // key for the counter for the incrementing id for UnbondingOperations - UnbondingIndexKey = collections.NewPrefix(56) // prefix for an index for looking up unbonding operations by their IDs - UnbondingTypeKey = collections.NewPrefix(57) // prefix for an index containing the type of unbonding operations - UnbondingQueueKey = collections.NewPrefix(65) // prefix for the timestamps in unbonding queue RedelegationQueueKey = collections.NewPrefix(66) // prefix for the timestamps in redelegations queue ValidatorQueueKey = collections.NewPrefix(67) // prefix for the timestamps in validator queue diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index d6511264f7c3..2fdb5177a969 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -729,7 +729,7 @@ type UnbondingDelegationEntry struct { // balance defines the tokens to receive at completion. Balance cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=balance,proto3,customtype=cosmossdk.io/math.Int" json:"balance"` // Incrementing id that uniquely identifies this entry - UnbondingId uint64 `protobuf:"varint,5,opt,name=unbonding_id,json=unbondingId,proto3" json:"unbonding_id,omitempty"` + UnbondingId uint64 `protobuf:"varint,5,opt,name=unbonding_id,json=unbondingId,proto3" json:"unbonding_id,omitempty"` // Deprecated: Do not use. // Strictly positive if this entry's unbonding has been stopped by external modules UnbondingOnHoldRefCount int64 `protobuf:"varint,6,opt,name=unbonding_on_hold_ref_count,json=unbondingOnHoldRefCount,proto3" json:"unbonding_on_hold_ref_count,omitempty"` } @@ -781,6 +781,7 @@ func (m *UnbondingDelegationEntry) GetCompletionTime() time.Time { return time.Time{} } +// Deprecated: Do not use. func (m *UnbondingDelegationEntry) GetUnbondingId() uint64 { if m != nil { return m.UnbondingId @@ -1384,6 +1385,7 @@ func init() { } var fileDescriptor_64c30c6cf92913c9 = []byte{ +<<<<<<< HEAD // 2065 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4b, 0x6c, 0x1b, 0xc7, 0x19, 0xd6, 0x92, 0x0c, 0x25, 0xfd, 0x94, 0x44, 0x6a, 0xfc, 0xa2, 0xe8, 0x58, 0x92, 0x19, 0xb7, @@ -1515,6 +1517,144 @@ var fileDescriptor_64c30c6cf92913c9 = []byte{ 0x74, 0x7e, 0xec, 0x47, 0x2f, 0x0f, 0x04, 0x63, 0x54, 0x8e, 0xe4, 0x7f, 0x17, 0x1a, 0x69, 0xe9, 0x35, 0xdf, 0xfa, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf4, 0xd1, 0x83, 0x1f, 0xd5, 0x19, 0x00, 0x00, +======= + // 2154 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4b, 0x6c, 0x1b, 0xc7, + 0x19, 0xd6, 0x92, 0x0c, 0x25, 0xfe, 0x14, 0x45, 0x6a, 0xfc, 0xa2, 0xe8, 0x58, 0x92, 0x19, 0x27, + 0x91, 0xdd, 0x98, 0x8c, 0xdc, 0xc2, 0x05, 0x84, 0x20, 0x85, 0x29, 0xca, 0x36, 0x93, 0x58, 0x52, + 0x97, 0xa2, 0xfa, 0x40, 0x9b, 0xc5, 0x70, 0x77, 0x48, 0x6d, 0x45, 0xee, 0xb2, 0x3b, 0x43, 0xd9, + 0xbc, 0xf7, 0x10, 0xb8, 0x28, 0x90, 0x53, 0x91, 0x8b, 0x11, 0x03, 0xbd, 0xb4, 0xb7, 0x1c, 0x8c, + 0xde, 0x7b, 0x4b, 0x0b, 0x14, 0x30, 0x7c, 0x2a, 0x02, 0xd4, 0x2d, 0xec, 0x43, 0x82, 0xe6, 0xd2, + 0xf6, 0xd4, 0x63, 0x31, 0x8f, 0x7d, 0x50, 0x14, 0x2d, 0x4b, 0xf6, 0x21, 0x68, 0x2f, 0xc4, 0xce, + 0xcc, 0xff, 0x7f, 0x33, 0xff, 0x7b, 0xe6, 0x27, 0x5c, 0x30, 0x5d, 0xda, 0x75, 0x69, 0x99, 0x32, + 0xbc, 0x6b, 0x3b, 0xed, 0xf2, 0xde, 0x72, 0x93, 0x30, 0xbc, 0xec, 0x8f, 0x4b, 0x3d, 0xcf, 0x65, + 0x2e, 0x3a, 0x2d, 0xa9, 0x4a, 0xfe, 0xac, 0xa2, 0x2a, 0xcc, 0xe2, 0xae, 0xed, 0xb8, 0x65, 0xf1, + 0x2b, 0x49, 0x0b, 0xaf, 0x9a, 0x6e, 0x97, 0xb0, 0x66, 0x8b, 0x95, 0x71, 0xd3, 0xb4, 0xcb, 0x7b, + 0xcb, 0x65, 0x36, 0xe8, 0x11, 0xaa, 0x56, 0xcf, 0x05, 0xab, 0x62, 0x76, 0xff, 0xf2, 0xbc, 0x3a, + 0x4d, 0x13, 0x53, 0x12, 0x1c, 0xc5, 0x74, 0x6d, 0x47, 0xad, 0xcf, 0xc9, 0x75, 0x43, 0x8c, 0xca, + 0xea, 0x50, 0x72, 0xe9, 0x64, 0xdb, 0x6d, 0xbb, 0x72, 0x9e, 0x7f, 0xf9, 0x0c, 0x6d, 0xd7, 0x6d, + 0x77, 0x48, 0x59, 0x8c, 0x9a, 0xfd, 0x56, 0x19, 0x3b, 0x03, 0x7f, 0xaf, 0xfd, 0x4b, 0x56, 0xdf, + 0xc3, 0xcc, 0x76, 0xfd, 0xbd, 0x16, 0xf6, 0xaf, 0x33, 0xbb, 0x4b, 0x28, 0xc3, 0xdd, 0x9e, 0x24, + 0x28, 0x7e, 0xa2, 0xc1, 0xcc, 0x4d, 0x9b, 0x32, 0xd7, 0xb3, 0x4d, 0xdc, 0xa9, 0x39, 0x2d, 0x17, + 0xbd, 0x03, 0xc9, 0x1d, 0x82, 0x2d, 0xe2, 0xe5, 0xb5, 0x45, 0x6d, 0x29, 0x7d, 0x65, 0xae, 0xe4, + 0xcb, 0x5b, 0x92, 0x62, 0xee, 0x2d, 0x97, 0x6e, 0x0a, 0x82, 0x4a, 0xea, 0xf3, 0xc7, 0x0b, 0x13, + 0xbf, 0xfd, 0xf2, 0xb3, 0x4b, 0x9a, 0xae, 0x78, 0x50, 0x15, 0x92, 0x7b, 0xb8, 0x43, 0x09, 0xcb, + 0xc7, 0x16, 0xe3, 0x4b, 0xe9, 0x2b, 0xe7, 0x4b, 0x07, 0xab, 0xbd, 0xb4, 0x8d, 0x3b, 0xb6, 0x85, + 0x99, 0x3b, 0x8c, 0x22, 0x79, 0x57, 0x62, 0x79, 0xad, 0xf8, 0xeb, 0x18, 0x64, 0x57, 0xdd, 0x6e, + 0xd7, 0xa6, 0xd4, 0x76, 0x1d, 0x1d, 0x33, 0x42, 0xd1, 0x7b, 0x90, 0xf0, 0x30, 0x23, 0xe2, 0x64, + 0xa9, 0xca, 0x55, 0xce, 0xf8, 0xc5, 0xe3, 0x85, 0xb3, 0x72, 0x0b, 0x6a, 0xed, 0x96, 0x6c, 0xb7, + 0xdc, 0xc5, 0x6c, 0xa7, 0xf4, 0x01, 0x69, 0x63, 0x73, 0x50, 0x25, 0xe6, 0xa3, 0x07, 0x97, 0x41, + 0x9d, 0xa0, 0x4a, 0x4c, 0xb9, 0x8b, 0xc0, 0x40, 0xdf, 0x87, 0xa9, 0x2e, 0xbe, 0x63, 0x08, 0xbc, + 0xd8, 0x0b, 0xe1, 0x4d, 0x76, 0xf1, 0x1d, 0x7e, 0x3e, 0xf4, 0x21, 0x64, 0x39, 0xa4, 0xb9, 0x83, + 0x9d, 0x36, 0x91, 0xc8, 0xf1, 0x17, 0x42, 0xce, 0x74, 0xf1, 0x9d, 0x55, 0x81, 0xc6, 0xf1, 0x57, + 0x12, 0x5f, 0xdd, 0x5f, 0xd0, 0x8a, 0x7f, 0xd0, 0x00, 0x42, 0xc5, 0x20, 0x0c, 0x39, 0x33, 0x18, + 0x89, 0x4d, 0xa9, 0xb2, 0xdc, 0x9b, 0xe3, 0x74, 0xbf, 0x4f, 0xad, 0x95, 0x0c, 0x3f, 0xde, 0xc3, + 0xc7, 0x0b, 0x9a, 0xdc, 0x35, 0x6b, 0x8e, 0xa8, 0x3d, 0xdd, 0xef, 0x59, 0x98, 0x11, 0x83, 0xfb, + 0x8f, 0xd0, 0x56, 0xfa, 0x4a, 0xa1, 0x24, 0x9d, 0xab, 0xe4, 0x3b, 0x57, 0x69, 0xcb, 0x77, 0x2e, + 0x09, 0xf8, 0xf1, 0xdf, 0x7c, 0x40, 0x90, 0xdc, 0x7c, 0x5d, 0xc9, 0xf0, 0x2f, 0x0d, 0xd2, 0x55, + 0x42, 0x4d, 0xcf, 0xee, 0x71, 0x77, 0x45, 0x79, 0x98, 0xec, 0xba, 0x8e, 0xbd, 0xab, 0xbc, 0x2e, + 0xa5, 0xfb, 0x43, 0x54, 0x80, 0x29, 0xdb, 0x22, 0x0e, 0xb3, 0xd9, 0x40, 0x9a, 0x49, 0x0f, 0xc6, + 0x9c, 0xeb, 0x36, 0x69, 0x52, 0xdb, 0xd7, 0xb3, 0xee, 0x0f, 0xd1, 0x45, 0xc8, 0x51, 0x62, 0xf6, + 0x3d, 0x9b, 0x0d, 0x0c, 0xd3, 0x75, 0x18, 0x36, 0x59, 0x3e, 0x21, 0x48, 0xb2, 0xfe, 0xfc, 0xaa, + 0x9c, 0xe6, 0x20, 0x16, 0x61, 0xd8, 0xee, 0xd0, 0xfc, 0x2b, 0x12, 0x44, 0x0d, 0xd1, 0x0d, 0x98, + 0xea, 0x12, 0x86, 0x2d, 0xcc, 0x70, 0x3e, 0x29, 0x64, 0x5e, 0x1c, 0xa7, 0xd1, 0x5b, 0x8a, 0x4e, + 0x38, 0xb3, 0x90, 0x7a, 0x42, 0x0f, 0x98, 0x95, 0xcc, 0x2d, 0x98, 0xf2, 0xc9, 0xd0, 0x1b, 0x90, + 0xed, 0x79, 0x6e, 0xcb, 0xee, 0x10, 0xa3, 0x67, 0x9b, 0x46, 0xdf, 0xb3, 0x95, 0xdc, 0x19, 0x35, + 0xbd, 0x69, 0x9b, 0x0d, 0xcf, 0x46, 0x6f, 0x01, 0xa2, 0xae, 0x69, 0xe3, 0x8e, 0xb1, 0x83, 0x1d, + 0xab, 0x43, 0x38, 0x25, 0x15, 0xa1, 0x95, 0xd2, 0x73, 0x72, 0xe5, 0xa6, 0x58, 0x68, 0x78, 0x36, + 0x55, 0xfb, 0xdc, 0x9b, 0x84, 0x54, 0x10, 0x5d, 0x68, 0x15, 0x72, 0x6e, 0x8f, 0x78, 0xfc, 0xdb, + 0xc0, 0x96, 0xe5, 0x11, 0x4a, 0x55, 0xf8, 0xe4, 0x1f, 0x3d, 0xb8, 0x7c, 0x52, 0xc9, 0x73, 0x4d, + 0xae, 0xd4, 0x99, 0x67, 0x3b, 0x6d, 0x3d, 0xeb, 0x73, 0xa8, 0x69, 0xf4, 0x23, 0xee, 0x63, 0x0e, + 0x25, 0x0e, 0xed, 0x53, 0xa3, 0xd7, 0x6f, 0xee, 0x92, 0x81, 0xf2, 0x82, 0x93, 0x23, 0x5e, 0x70, + 0xcd, 0x19, 0x54, 0xf2, 0x7f, 0x0a, 0xa1, 0x4d, 0x6f, 0xd0, 0x63, 0x6e, 0x69, 0xb3, 0xdf, 0x7c, + 0x9f, 0x0c, 0xb8, 0x6f, 0x29, 0x9c, 0x4d, 0x01, 0x83, 0x4e, 0x43, 0xf2, 0x67, 0xd8, 0xee, 0x10, + 0x4b, 0x98, 0x70, 0x4a, 0x57, 0x23, 0xb4, 0x02, 0x49, 0xca, 0x30, 0xeb, 0x53, 0x61, 0xb7, 0x99, + 0x2b, 0xc5, 0x71, 0xaa, 0xaf, 0xb8, 0x8e, 0x55, 0x17, 0x94, 0xba, 0xe2, 0x40, 0xab, 0x90, 0x64, + 0xee, 0x2e, 0x71, 0x94, 0x45, 0x2b, 0xdf, 0x52, 0xe1, 0x77, 0x6a, 0x34, 0xfc, 0x6a, 0x0e, 0x8b, + 0x04, 0x5e, 0xcd, 0x61, 0xba, 0x62, 0x45, 0x3f, 0x81, 0x9c, 0x45, 0x3a, 0xa4, 0x2d, 0x34, 0x47, + 0x77, 0xb0, 0x47, 0xa8, 0xf0, 0x82, 0x54, 0x65, 0xf9, 0xc8, 0xd1, 0xac, 0x67, 0x03, 0xa8, 0xba, + 0x40, 0x42, 0x9b, 0x90, 0xb6, 0x42, 0xff, 0xcf, 0x4f, 0x0a, 0x65, 0xbe, 0x36, 0x4e, 0xc6, 0x48, + 0xa8, 0x44, 0xd3, 0x65, 0x14, 0x82, 0xbb, 0x7c, 0xdf, 0x69, 0xba, 0x8e, 0x65, 0x3b, 0x6d, 0x63, + 0x87, 0xd8, 0xed, 0x1d, 0x96, 0x9f, 0x5a, 0xd4, 0x96, 0xe2, 0x7a, 0x36, 0x98, 0xbf, 0x29, 0xa6, + 0xd1, 0x26, 0xcc, 0x84, 0xa4, 0x22, 0xa4, 0x53, 0x47, 0x0d, 0xe9, 0x4c, 0x00, 0xc0, 0x49, 0xd0, + 0x2d, 0x80, 0x30, 0x69, 0xe4, 0x41, 0xa0, 0x15, 0x0f, 0x4f, 0x3f, 0x51, 0x61, 0x22, 0x00, 0xc8, + 0x81, 0x13, 0x5d, 0xdb, 0x31, 0x28, 0xe9, 0xb4, 0x0c, 0xa5, 0x39, 0x8e, 0x9b, 0x16, 0xea, 0x7f, + 0xf7, 0x08, 0xd6, 0xfc, 0xe2, 0xc1, 0xe5, 0xac, 0x1c, 0x5d, 0xa6, 0xd6, 0xee, 0xe2, 0xdb, 0xa5, + 0xef, 0x7c, 0x57, 0x9f, 0xed, 0xda, 0x4e, 0x9d, 0x74, 0x5a, 0xd5, 0x00, 0x18, 0xbd, 0x03, 0x67, + 0x43, 0x85, 0xb8, 0x8e, 0xb1, 0xe3, 0x76, 0x2c, 0xc3, 0x23, 0x2d, 0xc3, 0x74, 0xfb, 0x0e, 0xcb, + 0x4f, 0x0b, 0x35, 0x9e, 0x09, 0x48, 0x36, 0x9c, 0x9b, 0x6e, 0xc7, 0xd2, 0x49, 0x6b, 0x95, 0x2f, + 0xa3, 0xd7, 0x20, 0xd4, 0x86, 0x61, 0x5b, 0x34, 0x9f, 0x59, 0x8c, 0x2f, 0x25, 0xf4, 0xe9, 0x60, + 0xb2, 0x66, 0xd1, 0x95, 0xa9, 0x8f, 0xee, 0x2f, 0x4c, 0x7c, 0x75, 0x7f, 0x61, 0xa2, 0x78, 0x1d, + 0xa6, 0xb7, 0x71, 0x47, 0x85, 0x16, 0xa1, 0xe8, 0x2a, 0xa4, 0xb0, 0x3f, 0xc8, 0x6b, 0x3c, 0xb4, + 0x9f, 0x11, 0x9a, 0x21, 0x69, 0xf1, 0x77, 0x1a, 0x24, 0xab, 0xdb, 0x9b, 0xd8, 0xf6, 0xd0, 0x1a, + 0xcc, 0x86, 0xbe, 0xfa, 0xbc, 0x51, 0x1e, 0xba, 0xb7, 0x1f, 0xe6, 0xeb, 0x30, 0xbb, 0xe7, 0x27, + 0x8e, 0x00, 0x46, 0xd6, 0xc6, 0xf3, 0x8f, 0x1e, 0x5c, 0x3e, 0xa7, 0x60, 0x82, 0xe4, 0xb2, 0x0f, + 0x6f, 0x6f, 0xdf, 0x7c, 0x44, 0xe6, 0xf7, 0x60, 0x52, 0x1e, 0x95, 0xa2, 0xef, 0xc1, 0x2b, 0x3d, + 0xfe, 0x21, 0x44, 0x4d, 0x5f, 0x99, 0x1f, 0xeb, 0xf3, 0x82, 0x3e, 0xea, 0x21, 0x92, 0xaf, 0xf8, + 0xcb, 0x18, 0x40, 0x75, 0x7b, 0x7b, 0xcb, 0xb3, 0x7b, 0x1d, 0xc2, 0x5e, 0x96, 0xec, 0x0d, 0x38, + 0x15, 0xca, 0x4e, 0x3d, 0xf3, 0xe8, 0xf2, 0x9f, 0x08, 0xf8, 0xeb, 0x9e, 0x79, 0x20, 0xac, 0x45, + 0x59, 0x00, 0x1b, 0x3f, 0x3a, 0x6c, 0x95, 0xb2, 0x51, 0xcd, 0xfe, 0x10, 0xd2, 0xa1, 0x32, 0x28, + 0xaa, 0xc1, 0x14, 0x53, 0xdf, 0x4a, 0xc1, 0xc5, 0xf1, 0x0a, 0xf6, 0xd9, 0xa2, 0x4a, 0x0e, 0xd8, + 0x8b, 0xff, 0xd1, 0x00, 0x22, 0x31, 0xf2, 0xcd, 0xf4, 0x31, 0x54, 0x83, 0xa4, 0x4a, 0xce, 0xf1, + 0xe3, 0x26, 0x67, 0x05, 0x10, 0x51, 0xea, 0xaf, 0x62, 0x70, 0xa2, 0xe1, 0x47, 0xef, 0x37, 0x5f, + 0x07, 0x0d, 0x98, 0x24, 0x0e, 0xf3, 0x6c, 0xa1, 0x04, 0x6e, 0xf3, 0xb7, 0xc7, 0xd9, 0xfc, 0x00, + 0xa1, 0xd6, 0x1c, 0xe6, 0x0d, 0xa2, 0x1e, 0xe0, 0x63, 0x45, 0xf4, 0xf1, 0x69, 0x1c, 0xf2, 0xe3, + 0x58, 0xd1, 0x9b, 0x90, 0x35, 0x3d, 0x22, 0x26, 0xfc, 0xba, 0xa3, 0x89, 0x84, 0x39, 0xe3, 0x4f, + 0xab, 0xb2, 0xa3, 0x03, 0xbf, 0x59, 0x72, 0xe7, 0xe2, 0xa4, 0xc7, 0xbb, 0x4a, 0xce, 0x84, 0x08, + 0xa2, 0xf0, 0x6c, 0x41, 0xd6, 0x76, 0x6c, 0xc6, 0x6f, 0x48, 0x4d, 0xdc, 0xc1, 0x8e, 0xe9, 0x5f, + 0xb9, 0x8f, 0x54, 0xf3, 0x67, 0x14, 0x46, 0x45, 0x42, 0xa0, 0x35, 0x98, 0xf4, 0xd1, 0x12, 0x47, + 0x47, 0xf3, 0x79, 0xd1, 0xeb, 0x30, 0x1d, 0x2d, 0x0c, 0xe2, 0x36, 0x92, 0xa8, 0xc4, 0xf2, 0x9a, + 0x9e, 0x8e, 0xd4, 0x86, 0xc3, 0xaa, 0x4f, 0xf2, 0x99, 0xd5, 0x47, 0x5d, 0xfa, 0x3e, 0x8d, 0xc3, + 0xac, 0x4e, 0xac, 0xff, 0x7d, 0xd3, 0x6c, 0x02, 0xc8, 0x70, 0xe5, 0xd9, 0x54, 0x59, 0xe7, 0x18, + 0x31, 0x9f, 0x92, 0x20, 0x55, 0xca, 0xd0, 0xf9, 0x83, 0xac, 0xf4, 0xf2, 0x2d, 0xf4, 0xd7, 0x18, + 0x4c, 0x47, 0x2d, 0xf4, 0x7f, 0x59, 0xb8, 0xd0, 0x7a, 0x98, 0xaa, 0x12, 0x22, 0x55, 0x5d, 0x1c, + 0x97, 0xaa, 0x46, 0xbc, 0xf9, 0x90, 0x1c, 0xf5, 0x75, 0x1c, 0x92, 0x9b, 0xd8, 0xc3, 0x5d, 0x8a, + 0x36, 0x46, 0xee, 0xb7, 0x7e, 0x2b, 0x63, 0xbf, 0x33, 0x57, 0x55, 0xbf, 0x44, 0xfa, 0xf2, 0x27, + 0xe3, 0xae, 0xb7, 0xaf, 0xc3, 0x0c, 0x7f, 0xd8, 0x07, 0x02, 0x49, 0xe5, 0x66, 0xc4, 0xfb, 0x3c, + 0x90, 0x9e, 0xa2, 0x05, 0x48, 0x73, 0xb2, 0x30, 0x17, 0x73, 0x1a, 0xe8, 0xe2, 0x3b, 0x6b, 0x72, + 0x06, 0x2d, 0x03, 0xda, 0x09, 0xba, 0x2d, 0x46, 0xa8, 0x08, 0x6d, 0x29, 0x23, 0xd2, 0xc2, 0x6c, + 0xb8, 0xea, 0xb3, 0x9c, 0x03, 0xe0, 0x27, 0x31, 0x2c, 0xe2, 0xb8, 0x5d, 0xf5, 0x42, 0x4d, 0xf1, + 0x99, 0x2a, 0x9f, 0x40, 0xbf, 0xd0, 0xe4, 0x55, 0x79, 0x5f, 0x0b, 0x40, 0xbd, 0x54, 0xb6, 0x9e, + 0x23, 0x30, 0xfe, 0xfd, 0x78, 0xa1, 0x30, 0xc0, 0xdd, 0xce, 0x4a, 0xf1, 0x00, 0x9c, 0xe2, 0x41, + 0x5d, 0x09, 0x7e, 0x81, 0x1e, 0x6e, 0x21, 0xa0, 0x1a, 0xe4, 0x76, 0xc9, 0xc0, 0xf0, 0x5c, 0x26, + 0x93, 0x4d, 0x8b, 0x10, 0xf5, 0xa6, 0x99, 0xf3, 0xed, 0xdb, 0xc4, 0x94, 0x44, 0x9e, 0x00, 0xb6, + 0x53, 0x49, 0xf0, 0xd3, 0xe9, 0x33, 0xbb, 0x64, 0xa0, 0x2b, 0xbe, 0xeb, 0x84, 0xac, 0x5c, 0xe0, + 0xd1, 0x72, 0xf7, 0xcb, 0xcf, 0x2e, 0x9d, 0x0d, 0x2f, 0xee, 0xe5, 0x3b, 0x41, 0x73, 0x4f, 0x9a, + 0x98, 0x5f, 0x7e, 0x51, 0x58, 0x88, 0x74, 0x42, 0x7b, 0xfc, 0x5d, 0xc9, 0xdf, 0x21, 0x91, 0xf7, + 0x82, 0xf6, 0xec, 0x77, 0x48, 0xc8, 0x3f, 0xf4, 0x0e, 0x89, 0x84, 0xe8, 0xbb, 0x61, 0x1d, 0x88, + 0x1d, 0x26, 0x4d, 0xd4, 0x3b, 0x15, 0x93, 0x88, 0xfc, 0x89, 0xe2, 0x9f, 0x35, 0x98, 0x1b, 0xf1, + 0xe6, 0xe0, 0xc8, 0x26, 0x20, 0x2f, 0xb2, 0x28, 0xbc, 0x62, 0xa0, 0x8e, 0x7e, 0xbc, 0xe0, 0x98, + 0xf5, 0x46, 0x0a, 0xc1, 0xcb, 0x29, 0x68, 0x2a, 0x93, 0xfd, 0x51, 0x83, 0x93, 0xd1, 0x03, 0x04, + 0xa2, 0xd4, 0x61, 0x3a, 0xba, 0xb5, 0x12, 0xe2, 0xc2, 0xf3, 0x08, 0x11, 0x3d, 0xff, 0x10, 0x08, + 0xda, 0x0e, 0x33, 0x86, 0x6c, 0x29, 0x2e, 0x3f, 0xb7, 0x52, 0xfc, 0x83, 0x1d, 0x98, 0x39, 0xa4, + 0x6d, 0xbe, 0xd6, 0x20, 0xb1, 0xe9, 0xba, 0x1d, 0xf4, 0x73, 0x98, 0x75, 0x5c, 0x66, 0xf0, 0xc8, + 0x22, 0x96, 0xa1, 0xda, 0x07, 0x32, 0x1b, 0xaf, 0x3d, 0x53, 0x57, 0xff, 0x78, 0xbc, 0x30, 0xca, + 0x39, 0xac, 0x40, 0xd5, 0x56, 0x73, 0x5c, 0x56, 0x11, 0x44, 0x5b, 0xb2, 0xc3, 0xd0, 0x82, 0xcc, + 0xf0, 0x76, 0x32, 0x63, 0x5f, 0x3b, 0x6c, 0xbb, 0xcc, 0xa1, 0x5b, 0x4d, 0x37, 0x23, 0xfb, 0xac, + 0x4c, 0x71, 0xab, 0xfd, 0x93, 0x5b, 0xee, 0x43, 0xc8, 0x05, 0xe9, 0xaa, 0x21, 0x7a, 0x72, 0x14, + 0x5d, 0x87, 0x49, 0xd9, 0x9e, 0xf3, 0x1f, 0x0c, 0xe7, 0xc3, 0x86, 0x2f, 0x6e, 0x9a, 0x76, 0x69, + 0x2f, 0xd2, 0xac, 0x95, 0x4c, 0x43, 0xfa, 0x54, 0xcc, 0xa2, 0x67, 0xfb, 0x30, 0x06, 0x73, 0xab, + 0xae, 0x43, 0x55, 0xb3, 0x47, 0x45, 0xb5, 0x6c, 0x30, 0x0f, 0xd0, 0xc5, 0x31, 0xad, 0xa8, 0xe9, + 0xd1, 0x86, 0xd3, 0x36, 0x64, 0x79, 0x89, 0x35, 0x5d, 0xe7, 0x05, 0xfb, 0x4d, 0x19, 0xb7, 0x63, + 0xa9, 0x13, 0xed, 0x92, 0x01, 0xc7, 0x75, 0xc8, 0xed, 0x21, 0xdc, 0xf8, 0xf1, 0x70, 0x1d, 0x72, + 0x3b, 0x82, 0x7b, 0x1a, 0x92, 0xea, 0x7e, 0x95, 0x10, 0xb7, 0x07, 0x35, 0x42, 0x57, 0x21, 0xce, + 0x53, 0xe1, 0x2b, 0x47, 0x48, 0x1e, 0x9c, 0x21, 0x52, 0xd6, 0xea, 0x30, 0xa7, 0xba, 0x05, 0x74, + 0xa3, 0x25, 0x34, 0x4a, 0x84, 0x40, 0xef, 0x93, 0xc1, 0x01, 0xad, 0x83, 0xe9, 0xe7, 0x6a, 0x1d, + 0x5c, 0xfa, 0xbd, 0x06, 0x10, 0xf6, 0xcd, 0xd0, 0x5b, 0x70, 0xa6, 0xb2, 0xb1, 0x5e, 0x35, 0xea, + 0x5b, 0xd7, 0xb6, 0x1a, 0x75, 0xa3, 0xb1, 0x5e, 0xdf, 0x5c, 0x5b, 0xad, 0x5d, 0xaf, 0xad, 0x55, + 0x73, 0x13, 0x85, 0xec, 0xdd, 0x7b, 0x8b, 0xe9, 0x86, 0x43, 0x7b, 0xc4, 0xb4, 0x5b, 0x36, 0xb1, + 0xd0, 0x1b, 0x70, 0x72, 0x98, 0x9a, 0x8f, 0xd6, 0xaa, 0x39, 0xad, 0x30, 0x7d, 0xf7, 0xde, 0xe2, + 0x94, 0x7c, 0x27, 0x10, 0x0b, 0x2d, 0xc1, 0xa9, 0x51, 0xba, 0xda, 0xfa, 0x8d, 0x5c, 0xac, 0x90, + 0xb9, 0x7b, 0x6f, 0x31, 0x15, 0x3c, 0x28, 0x50, 0x11, 0x50, 0x94, 0x52, 0xe1, 0xc5, 0x0b, 0x70, + 0xf7, 0xde, 0x62, 0x52, 0x86, 0x4c, 0x21, 0xf1, 0xd1, 0x6f, 0xe6, 0x27, 0x2e, 0xfd, 0x14, 0xa0, + 0xe6, 0xb4, 0x3c, 0x6c, 0x8a, 0xd4, 0x50, 0x80, 0xd3, 0xb5, 0xf5, 0xeb, 0xfa, 0xb5, 0xd5, 0xad, + 0xda, 0xc6, 0xfa, 0xf0, 0xb1, 0xf7, 0xad, 0x55, 0x37, 0x1a, 0x95, 0x0f, 0xd6, 0x8c, 0x7a, 0xed, + 0xc6, 0x7a, 0x4e, 0x43, 0x67, 0xe0, 0xc4, 0xd0, 0xda, 0x0f, 0xd6, 0xb7, 0x6a, 0xb7, 0xd6, 0x72, + 0xb1, 0xca, 0xd5, 0xcf, 0x9f, 0xcc, 0x6b, 0x0f, 0x9f, 0xcc, 0x6b, 0x7f, 0x7f, 0x32, 0xaf, 0x7d, + 0xfc, 0x74, 0x7e, 0xe2, 0xe1, 0xd3, 0xf9, 0x89, 0xbf, 0x3c, 0x9d, 0x9f, 0xf8, 0xf1, 0xab, 0x43, + 0xc1, 0x18, 0x96, 0x23, 0xf1, 0x97, 0x48, 0x33, 0x29, 0xbc, 0xe6, 0xdb, 0xff, 0x0d, 0x00, 0x00, + 0xff, 0xff, 0x54, 0xe6, 0x7d, 0x82, 0x8a, 0x1a, 0x00, 0x00, +>>>>>>> 234cdc45f (refactor(x/staking)!: removing unbonding queue index (#22795)) } func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { @@ -1523,6 +1663,7 @@ 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{ +<<<<<<< HEAD // 11763 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x90, 0x63, 0xd9, 0x59, 0xdf, 0x5c, 0x49, 0xad, 0x96, 0x3e, 0x49, 0xad, 0xdb, 0xa7, 0x7b, 0x66, 0x34, 0x3d, 0xbb, @@ -2260,6 +2401,752 @@ func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_des 0xb5, 0x46, 0x6d, 0xb5, 0x2a, 0xc7, 0xca, 0xd7, 0x86, 0x6e, 0xf6, 0xdc, 0x17, 0x1a, 0x8c, 0xfe, 0x74, 0x14, 0xfa, 0x31, 0x89, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xae, 0x10, 0xc3, 0x37, 0xa7, 0x00, 0x00, +======= + // 11885 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6b, 0x94, 0x1c, 0x57, + 0x5a, 0x98, 0xaa, 0xbb, 0xa7, 0xa7, 0xfb, 0xeb, 0x57, 0xcd, 0x9d, 0x91, 0x34, 0x1a, 0xd9, 0x9a, + 0x51, 0xc9, 0xb6, 0x64, 0xd9, 0x1e, 0x59, 0xb2, 0x2d, 0xdb, 0xed, 0x17, 0xdd, 0x33, 0xad, 0x51, + 0xcb, 0xf3, 0xda, 0xea, 0x1e, 0xad, 0x6d, 0x1e, 0x45, 0x4d, 0xf5, 0x9d, 0x99, 0xb2, 0xba, 0xab, + 0x7a, 0xab, 0xaa, 0x25, 0x8d, 0x73, 0x4e, 0xce, 0x12, 0x58, 0xb2, 0x88, 0x47, 0x96, 0x40, 0x60, + 0xd9, 0x5d, 0x2d, 0x06, 0x02, 0xbb, 0x0b, 0x81, 0x40, 0x76, 0x21, 0x6c, 0x38, 0x79, 0x90, 0x93, + 0x10, 0x20, 0x27, 0x64, 0xc3, 0x8f, 0xc0, 0xe1, 0x1c, 0x1c, 0xd8, 0xe5, 0x1c, 0x36, 0xec, 0x42, + 0x80, 0x2c, 0x1c, 0x4e, 0xf6, 0x24, 0x27, 0xe7, 0xbe, 0xea, 0xd1, 0x5d, 0x3d, 0xdd, 0x23, 0xdb, + 0x40, 0x20, 0x7f, 0xa4, 0xa9, 0x7b, 0xbf, 0xef, 0xbb, 0xf7, 0x7e, 0xf7, 0xbb, 0xdf, 0xeb, 0x3e, + 0x1a, 0x7e, 0xf7, 0x0a, 0x2c, 0xec, 0xda, 0xf6, 0x6e, 0x1b, 0x5f, 0xe8, 0x3a, 0xb6, 0x67, 0x6f, + 0xf7, 0x76, 0x2e, 0xb4, 0xb0, 0x6b, 0x38, 0x66, 0xd7, 0xb3, 0x9d, 0x45, 0x5a, 0x86, 0x4a, 0x0c, + 0x62, 0x51, 0x40, 0x28, 0x6b, 0x30, 0x75, 0xc5, 0x6c, 0xe3, 0x65, 0x1f, 0xb0, 0x81, 0x3d, 0xf4, + 0x0c, 0xa4, 0x76, 0xcc, 0x36, 0x9e, 0x95, 0x16, 0x92, 0xe7, 0x72, 0x97, 0x1e, 0x58, 0xec, 0x43, + 0x5a, 0x8c, 0x62, 0x6c, 0x92, 0x62, 0x95, 0x62, 0x28, 0xff, 0x27, 0x05, 0xd3, 0x31, 0xb5, 0x08, + 0x41, 0xca, 0xd2, 0x3b, 0x84, 0xa2, 0x74, 0x2e, 0xab, 0xd2, 0xbf, 0xd1, 0x2c, 0x4c, 0x76, 0x75, + 0xe3, 0x86, 0xbe, 0x8b, 0x67, 0x13, 0xb4, 0x58, 0x7c, 0xa2, 0x53, 0x00, 0x2d, 0xdc, 0xc5, 0x56, + 0x0b, 0x5b, 0xc6, 0xfe, 0x6c, 0x72, 0x21, 0x79, 0x2e, 0xab, 0x86, 0x4a, 0xd0, 0x23, 0x30, 0xd5, + 0xed, 0x6d, 0xb7, 0x4d, 0x43, 0x0b, 0x81, 0xc1, 0x42, 0xf2, 0xdc, 0x84, 0x2a, 0xb3, 0x8a, 0xe5, + 0x00, 0xf8, 0x2c, 0x94, 0x6e, 0x61, 0xfd, 0x46, 0x18, 0x34, 0x47, 0x41, 0x8b, 0xa4, 0x38, 0x04, + 0xb8, 0x04, 0xf9, 0x0e, 0x76, 0x5d, 0x7d, 0x17, 0x6b, 0xde, 0x7e, 0x17, 0xcf, 0xa6, 0xe8, 0xe8, + 0x17, 0x06, 0x46, 0xdf, 0x3f, 0xf2, 0x1c, 0xc7, 0x6a, 0xee, 0x77, 0x31, 0xaa, 0x40, 0x16, 0x5b, + 0xbd, 0x0e, 0xa3, 0x30, 0x31, 0x84, 0x7f, 0x35, 0xab, 0xd7, 0xe9, 0xa7, 0x92, 0x21, 0x68, 0x9c, + 0xc4, 0xa4, 0x8b, 0x9d, 0x9b, 0xa6, 0x81, 0x67, 0xd3, 0x94, 0xc0, 0xd9, 0x01, 0x02, 0x0d, 0x56, + 0xdf, 0x4f, 0x43, 0xe0, 0xa1, 0x25, 0xc8, 0xe2, 0xdb, 0x1e, 0xb6, 0x5c, 0xd3, 0xb6, 0x66, 0x27, + 0x29, 0x91, 0x07, 0x63, 0x66, 0x11, 0xb7, 0x5b, 0xfd, 0x24, 0x02, 0x3c, 0x74, 0x19, 0x26, 0xed, + 0xae, 0x67, 0xda, 0x96, 0x3b, 0x9b, 0x59, 0x90, 0xce, 0xe5, 0x2e, 0xdd, 0x17, 0x2b, 0x08, 0x1b, + 0x0c, 0x46, 0x15, 0xc0, 0xa8, 0x0e, 0xb2, 0x6b, 0xf7, 0x1c, 0x03, 0x6b, 0x86, 0xdd, 0xc2, 0x9a, + 0x69, 0xed, 0xd8, 0xb3, 0x59, 0x4a, 0x60, 0x7e, 0x70, 0x20, 0x14, 0x70, 0xc9, 0x6e, 0xe1, 0xba, + 0xb5, 0x63, 0xab, 0x45, 0x37, 0xf2, 0x8d, 0x8e, 0x41, 0xda, 0xdd, 0xb7, 0x3c, 0xfd, 0xf6, 0x6c, + 0x9e, 0x4a, 0x08, 0xff, 0x22, 0xa2, 0x83, 0x5b, 0x26, 0x69, 0x6e, 0xb6, 0xc0, 0x44, 0x87, 0x7f, + 0x2a, 0x9f, 0x4d, 0x43, 0x69, 0x1c, 0xe1, 0x7b, 0x0e, 0x26, 0x76, 0xc8, 0xf8, 0x67, 0x13, 0x87, + 0xe1, 0x0e, 0xc3, 0x89, 0xb2, 0x37, 0x7d, 0x8f, 0xec, 0xad, 0x40, 0xce, 0xc2, 0xae, 0x87, 0x5b, + 0x4c, 0x56, 0x92, 0x63, 0x4a, 0x1b, 0x30, 0xa4, 0x41, 0x61, 0x4b, 0xdd, 0x93, 0xb0, 0xbd, 0x02, + 0x25, 0xbf, 0x4b, 0x9a, 0xa3, 0x5b, 0xbb, 0x42, 0x6a, 0x2f, 0x8c, 0xea, 0xc9, 0x62, 0x4d, 0xe0, + 0xa9, 0x04, 0x4d, 0x2d, 0xe2, 0xc8, 0x37, 0x5a, 0x06, 0xb0, 0x2d, 0x6c, 0xef, 0x68, 0x2d, 0x6c, + 0xb4, 0x67, 0x33, 0x43, 0xb8, 0xb4, 0x41, 0x40, 0x06, 0xb8, 0x64, 0xb3, 0x52, 0xa3, 0x8d, 0x9e, + 0x0d, 0x84, 0x70, 0x72, 0x88, 0x0c, 0xad, 0xb1, 0xe5, 0x37, 0x20, 0x87, 0x5b, 0x50, 0x74, 0x30, + 0x59, 0x11, 0xb8, 0xc5, 0x47, 0x96, 0xa5, 0x9d, 0x58, 0x1c, 0x39, 0x32, 0x95, 0xa3, 0xb1, 0x81, + 0x15, 0x9c, 0xf0, 0x27, 0x3a, 0x03, 0x7e, 0x81, 0x46, 0xc5, 0x0a, 0xa8, 0x7e, 0xca, 0x8b, 0xc2, + 0x75, 0xbd, 0x83, 0xe7, 0xde, 0x80, 0x62, 0x94, 0x3d, 0x68, 0x06, 0x26, 0x5c, 0x4f, 0x77, 0x3c, + 0x2a, 0x85, 0x13, 0x2a, 0xfb, 0x40, 0x32, 0x24, 0xb1, 0xd5, 0xa2, 0xfa, 0x6f, 0x42, 0x25, 0x7f, + 0xa2, 0xaf, 0x09, 0x06, 0x9c, 0xa4, 0x03, 0x7e, 0x68, 0x70, 0x46, 0x23, 0x94, 0xfb, 0xc7, 0x3d, + 0xf7, 0x34, 0x14, 0x22, 0x03, 0x18, 0xb7, 0x69, 0xe5, 0x27, 0x53, 0x70, 0x34, 0x96, 0x36, 0x7a, + 0x05, 0x66, 0x7a, 0x96, 0x69, 0x79, 0xd8, 0xe9, 0x3a, 0x98, 0x88, 0x2c, 0x6b, 0x6b, 0xf6, 0xf7, + 0x27, 0x87, 0x08, 0xdd, 0x56, 0x18, 0x9a, 0x51, 0x51, 0xa7, 0x7b, 0x83, 0x85, 0xe8, 0x55, 0xc8, + 0x11, 0xf9, 0xd0, 0x1d, 0x9d, 0x12, 0x64, 0xab, 0xf1, 0xd2, 0x78, 0x43, 0x5e, 0x5c, 0x0e, 0x30, + 0xab, 0xc9, 0x0f, 0x4a, 0x09, 0x35, 0x4c, 0x0b, 0xed, 0x41, 0xfe, 0x26, 0x76, 0xcc, 0x1d, 0xd3, + 0x60, 0xb4, 0x09, 0x3b, 0x8b, 0x97, 0x9e, 0x19, 0x93, 0xf6, 0xf5, 0x10, 0x6a, 0xc3, 0xd3, 0x3d, + 0x5c, 0x86, 0xad, 0xf5, 0xeb, 0x35, 0xb5, 0x7e, 0xa5, 0x5e, 0x5b, 0x56, 0x23, 0x94, 0xe7, 0x3e, + 0x2d, 0x41, 0x2e, 0xd4, 0x17, 0xa2, 0xb6, 0xac, 0x5e, 0x67, 0x1b, 0x3b, 0x9c, 0xe3, 0xfc, 0x0b, + 0x9d, 0x84, 0xec, 0x4e, 0xaf, 0xdd, 0x66, 0x62, 0xc3, 0x6c, 0x5e, 0x86, 0x14, 0x10, 0x91, 0x21, + 0x5a, 0x8a, 0x2b, 0x02, 0xaa, 0xa5, 0xc8, 0xdf, 0xe8, 0x0c, 0xe4, 0x4c, 0x57, 0x73, 0x70, 0x17, + 0xeb, 0x1e, 0x6e, 0xcd, 0xa6, 0x16, 0xa4, 0x73, 0x99, 0x6a, 0x62, 0x56, 0x52, 0xc1, 0x74, 0x55, + 0x5e, 0x8a, 0xe6, 0x20, 0x23, 0x64, 0x6f, 0x76, 0x82, 0x40, 0xa8, 0xfe, 0x37, 0xab, 0xe3, 0xd8, + 0x69, 0x51, 0xc7, 0xbe, 0x95, 0x27, 0x61, 0x6a, 0x60, 0x90, 0xa8, 0x04, 0xb9, 0xe5, 0xda, 0xd2, + 0x6a, 0x45, 0xad, 0x34, 0xeb, 0x1b, 0xeb, 0xf2, 0x11, 0x54, 0x84, 0xd0, 0xb8, 0x65, 0xe9, 0x7c, + 0x36, 0xf3, 0xc5, 0x49, 0xf9, 0xfd, 0xef, 0x7f, 0xff, 0xfb, 0x13, 0xca, 0x2f, 0xa6, 0x61, 0x26, + 0x4e, 0xcb, 0xc5, 0x2a, 0xdc, 0x80, 0x27, 0xc9, 0x08, 0x4f, 0x2a, 0x30, 0xd1, 0xd6, 0xb7, 0x71, + 0x9b, 0x0e, 0xae, 0x78, 0xe9, 0x91, 0xb1, 0xf4, 0xe8, 0xe2, 0x2a, 0x41, 0x51, 0x19, 0x26, 0x7a, + 0x91, 0x73, 0x6e, 0x82, 0x52, 0x38, 0x3f, 0x1e, 0x05, 0xa2, 0xfd, 0x38, 0x97, 0x4f, 0x42, 0x96, + 0xfc, 0xcf, 0xa6, 0x25, 0xcd, 0xa6, 0x85, 0x14, 0xd0, 0x69, 0x99, 0x83, 0x0c, 0x55, 0x6c, 0x2d, + 0xec, 0x4f, 0x99, 0xf8, 0x26, 0xaa, 0xa0, 0x85, 0x77, 0xf4, 0x5e, 0xdb, 0xd3, 0x6e, 0xea, 0xed, + 0x1e, 0xa6, 0x2a, 0x2a, 0xab, 0xe6, 0x79, 0xe1, 0x75, 0x52, 0x86, 0xe6, 0x21, 0xc7, 0xf4, 0xa0, + 0x69, 0xb5, 0xf0, 0x6d, 0x6a, 0x09, 0x27, 0x54, 0xa6, 0x1a, 0xeb, 0xa4, 0x84, 0x34, 0xff, 0xba, + 0x6b, 0x5b, 0x42, 0x99, 0xd0, 0x26, 0x48, 0x01, 0x6d, 0xfe, 0xe9, 0x7e, 0x23, 0x7c, 0x7f, 0xfc, + 0xf0, 0x06, 0xb4, 0xdf, 0x59, 0x28, 0x51, 0x88, 0x27, 0xf8, 0x5a, 0xd5, 0xdb, 0xb3, 0x53, 0x54, + 0x00, 0x8a, 0xac, 0x78, 0x83, 0x97, 0x2a, 0x3f, 0x97, 0x80, 0x14, 0x35, 0x05, 0x25, 0xc8, 0x35, + 0x5f, 0xdd, 0xac, 0x69, 0xcb, 0x1b, 0x5b, 0xd5, 0xd5, 0x9a, 0x2c, 0x91, 0xa9, 0xa7, 0x05, 0x57, + 0x56, 0x37, 0x2a, 0x4d, 0x39, 0xe1, 0x7f, 0xd7, 0xd7, 0x9b, 0x97, 0x9f, 0x94, 0x93, 0x3e, 0xc2, + 0x16, 0x2b, 0x48, 0x85, 0x01, 0x9e, 0xb8, 0x24, 0x4f, 0x20, 0x19, 0xf2, 0x8c, 0x40, 0xfd, 0x95, + 0xda, 0xf2, 0xe5, 0x27, 0xe5, 0x74, 0xb4, 0xe4, 0x89, 0x4b, 0xf2, 0x24, 0x2a, 0x40, 0x96, 0x96, + 0x54, 0x37, 0x36, 0x56, 0xe5, 0x8c, 0x4f, 0xb3, 0xd1, 0x54, 0xeb, 0xeb, 0x2b, 0x72, 0xd6, 0xa7, + 0xb9, 0xa2, 0x6e, 0x6c, 0x6d, 0xca, 0xe0, 0x53, 0x58, 0xab, 0x35, 0x1a, 0x95, 0x95, 0x9a, 0x9c, + 0xf3, 0x21, 0xaa, 0xaf, 0x36, 0x6b, 0x0d, 0x39, 0x1f, 0xe9, 0xd6, 0x13, 0x97, 0xe4, 0x82, 0xdf, + 0x44, 0x6d, 0x7d, 0x6b, 0x4d, 0x2e, 0xa2, 0x29, 0x28, 0xb0, 0x26, 0x44, 0x27, 0x4a, 0x7d, 0x45, + 0x97, 0x9f, 0x94, 0xe5, 0xa0, 0x23, 0x8c, 0xca, 0x54, 0xa4, 0xe0, 0xf2, 0x93, 0x32, 0x52, 0x96, + 0x60, 0x82, 0x8a, 0x21, 0x42, 0x50, 0x5c, 0xad, 0x54, 0x6b, 0xab, 0xda, 0xc6, 0x26, 0x59, 0x34, + 0x95, 0x55, 0x59, 0x0a, 0xca, 0xd4, 0xda, 0x7b, 0xb6, 0xea, 0x6a, 0x6d, 0x59, 0x4e, 0x84, 0xcb, + 0x36, 0x6b, 0x95, 0x66, 0x6d, 0x59, 0x4e, 0x2a, 0x06, 0xcc, 0xc4, 0x99, 0xc0, 0xd8, 0x25, 0x14, + 0x92, 0x85, 0xc4, 0x10, 0x59, 0xa0, 0xb4, 0xfa, 0x65, 0x41, 0xf9, 0x42, 0x02, 0xa6, 0x63, 0xdc, + 0x80, 0xd8, 0x46, 0x5e, 0x82, 0x09, 0x26, 0xcb, 0x4c, 0x15, 0x3f, 0x1c, 0xeb, 0x4f, 0x50, 0xc9, + 0x1e, 0x70, 0x8e, 0x28, 0x5e, 0xd8, 0x6d, 0x4c, 0x0e, 0x71, 0x1b, 0x09, 0x89, 0x01, 0x81, 0xfd, + 0xfa, 0x01, 0x73, 0xcd, 0x3c, 0x9a, 0xcb, 0xe3, 0x78, 0x34, 0xb4, 0xec, 0x70, 0x66, 0x7b, 0x22, + 0xc6, 0x6c, 0x3f, 0x07, 0x53, 0x03, 0x84, 0xc6, 0x36, 0x9f, 0xdf, 0x2c, 0xc1, 0xec, 0x30, 0xe6, + 0x8c, 0x50, 0x89, 0x89, 0x88, 0x4a, 0x7c, 0xae, 0x9f, 0x83, 0xa7, 0x87, 0x4f, 0xc2, 0xc0, 0x5c, + 0x7f, 0x42, 0x82, 0x63, 0xf1, 0xe1, 0x41, 0x6c, 0x1f, 0x5e, 0x84, 0x74, 0x07, 0x7b, 0x7b, 0xb6, + 0x70, 0x84, 0x1f, 0x8a, 0x71, 0xaf, 0x48, 0x75, 0xff, 0x64, 0x73, 0xac, 0xb0, 0x7f, 0x96, 0x1c, + 0xe6, 0xe3, 0xb3, 0xde, 0x0c, 0xf4, 0xf4, 0xdb, 0x12, 0x70, 0x34, 0x96, 0x78, 0x6c, 0x47, 0xef, + 0x07, 0x30, 0xad, 0x6e, 0xcf, 0x63, 0xce, 0x2e, 0xd3, 0xc4, 0x59, 0x5a, 0x42, 0x95, 0x17, 0xd1, + 0xb2, 0x3d, 0xcf, 0xaf, 0x67, 0x46, 0x14, 0x58, 0x11, 0x05, 0x78, 0x26, 0xe8, 0x68, 0x8a, 0x76, + 0xf4, 0xd4, 0x90, 0x91, 0x0e, 0x08, 0xe6, 0xe3, 0x20, 0x1b, 0x6d, 0x13, 0x5b, 0x9e, 0xe6, 0x7a, + 0x0e, 0xd6, 0x3b, 0xa6, 0xb5, 0xcb, 0xec, 0x6c, 0x79, 0x62, 0x47, 0x6f, 0xbb, 0x58, 0x2d, 0xb1, + 0xea, 0x86, 0xa8, 0x25, 0x18, 0x54, 0x80, 0x9c, 0x10, 0x46, 0x3a, 0x82, 0xc1, 0xaa, 0x7d, 0x0c, + 0xe5, 0xbb, 0xb3, 0x90, 0x0b, 0x05, 0x53, 0xe8, 0x34, 0xe4, 0x5f, 0xd7, 0x6f, 0xea, 0x9a, 0x08, + 0x90, 0x19, 0x27, 0x72, 0xa4, 0x6c, 0x93, 0x07, 0xc9, 0x8f, 0xc3, 0x0c, 0x05, 0xb1, 0x7b, 0x1e, + 0x76, 0x34, 0xa3, 0xad, 0xbb, 0x2e, 0x65, 0x5a, 0x86, 0x82, 0x22, 0x52, 0xb7, 0x41, 0xaa, 0x96, + 0x44, 0x0d, 0x7a, 0x0a, 0xa6, 0x29, 0x46, 0xa7, 0xd7, 0xf6, 0xcc, 0x6e, 0x1b, 0x6b, 0x24, 0x64, + 0x77, 0xa9, 0xc9, 0xf1, 0x7b, 0x36, 0x45, 0x20, 0xd6, 0x38, 0x00, 0xe9, 0x91, 0x8b, 0x96, 0xe1, + 0x7e, 0x8a, 0xb6, 0x8b, 0x2d, 0xec, 0xe8, 0x1e, 0xd6, 0xf0, 0xfb, 0x7a, 0x7a, 0xdb, 0xd5, 0x74, + 0xab, 0xa5, 0xed, 0xe9, 0xee, 0xde, 0xec, 0x8c, 0xef, 0x96, 0x9c, 0x20, 0x80, 0x2b, 0x1c, 0xae, + 0x46, 0xc1, 0x2a, 0x56, 0xeb, 0xaa, 0xee, 0xee, 0xa1, 0x32, 0x1c, 0xa3, 0x54, 0x5c, 0xcf, 0x31, + 0xad, 0x5d, 0xcd, 0xd8, 0xc3, 0xc6, 0x0d, 0xad, 0xe7, 0xed, 0x3c, 0x33, 0x7b, 0x32, 0xdc, 0x3e, + 0xed, 0x61, 0x83, 0xc2, 0x2c, 0x11, 0x90, 0x2d, 0x6f, 0xe7, 0x19, 0xd4, 0x80, 0x3c, 0x99, 0x8c, + 0x8e, 0xf9, 0x06, 0xd6, 0x76, 0x6c, 0x87, 0xda, 0xd0, 0x62, 0x8c, 0x6a, 0x0a, 0x71, 0x70, 0x71, + 0x83, 0x23, 0xac, 0xd9, 0x2d, 0x5c, 0x9e, 0x68, 0x6c, 0xd6, 0x6a, 0xcb, 0x6a, 0x4e, 0x50, 0xb9, + 0x62, 0x3b, 0x44, 0xa0, 0x76, 0x6d, 0x9f, 0xc1, 0x39, 0x26, 0x50, 0xbb, 0xb6, 0x60, 0xef, 0x53, + 0x30, 0x6d, 0x18, 0x6c, 0xcc, 0xa6, 0xa1, 0xf1, 0xc0, 0xda, 0x9d, 0x95, 0x23, 0xcc, 0x32, 0x8c, + 0x15, 0x06, 0xc0, 0x65, 0xdc, 0x45, 0xcf, 0xc2, 0xd1, 0x80, 0x59, 0x61, 0xc4, 0xa9, 0x81, 0x51, + 0xf6, 0xa3, 0x3e, 0x05, 0xd3, 0xdd, 0xfd, 0x41, 0x44, 0x14, 0x69, 0xb1, 0xbb, 0xdf, 0x8f, 0xf6, + 0x34, 0xcc, 0x74, 0xf7, 0xba, 0x83, 0x78, 0xe7, 0xc3, 0x78, 0xa8, 0xbb, 0xd7, 0xed, 0x47, 0x7c, + 0x90, 0x66, 0x59, 0x1c, 0x6c, 0x50, 0xef, 0xf0, 0x78, 0x18, 0x3c, 0x54, 0x81, 0x16, 0x41, 0x36, + 0x0c, 0x0d, 0x5b, 0xfa, 0x76, 0x1b, 0x6b, 0xba, 0x83, 0x2d, 0xdd, 0x9d, 0x9d, 0xa7, 0xc0, 0x29, + 0xcf, 0xe9, 0x61, 0xb5, 0x68, 0x18, 0x35, 0x5a, 0x59, 0xa1, 0x75, 0xe8, 0x3c, 0x4c, 0xd9, 0xdb, + 0xaf, 0x1b, 0x4c, 0x22, 0xb5, 0xae, 0x83, 0x77, 0xcc, 0xdb, 0xb3, 0x0f, 0x50, 0xf6, 0x96, 0x48, + 0x05, 0x95, 0xc7, 0x4d, 0x5a, 0x8c, 0x1e, 0x06, 0xd9, 0x70, 0xf7, 0x74, 0xa7, 0x4b, 0x55, 0xb2, + 0xdb, 0xd5, 0x0d, 0x3c, 0xfb, 0x20, 0x03, 0x65, 0xe5, 0xeb, 0xa2, 0x98, 0xac, 0x08, 0xf7, 0x96, + 0xb9, 0xe3, 0x09, 0x8a, 0x67, 0xd9, 0x8a, 0xa0, 0x65, 0x9c, 0xda, 0x39, 0x90, 0x09, 0x27, 0x22, + 0x0d, 0x9f, 0xa3, 0x60, 0xc5, 0xee, 0x5e, 0x37, 0xdc, 0xee, 0x19, 0x28, 0x10, 0xc8, 0xa0, 0xd1, + 0x87, 0x99, 0xe3, 0xd6, 0xdd, 0x0b, 0xb5, 0xf8, 0x24, 0x1c, 0x23, 0x40, 0x1d, 0xec, 0xe9, 0x2d, + 0xdd, 0xd3, 0x43, 0xd0, 0x8f, 0x52, 0x68, 0xc2, 0xf6, 0x35, 0x5e, 0x19, 0xe9, 0xa7, 0xd3, 0xdb, + 0xde, 0xf7, 0x05, 0xeb, 0x31, 0xd6, 0x4f, 0x52, 0x26, 0x44, 0xeb, 0x5d, 0x8b, 0xa6, 0x94, 0x32, + 0xe4, 0xc3, 0x72, 0x8f, 0xb2, 0xc0, 0x24, 0x5f, 0x96, 0x88, 0x13, 0xb4, 0xb4, 0xb1, 0x4c, 0xdc, + 0x97, 0xd7, 0x6a, 0x72, 0x82, 0xb8, 0x51, 0xab, 0xf5, 0x66, 0x4d, 0x53, 0xb7, 0xd6, 0x9b, 0xf5, + 0xb5, 0x9a, 0x9c, 0x0c, 0x39, 0xf6, 0xd7, 0x52, 0x99, 0x87, 0xe4, 0xb3, 0xca, 0x2f, 0x24, 0xa1, + 0x18, 0x8d, 0xad, 0xd1, 0xf3, 0x70, 0x5c, 0xa4, 0xc8, 0x5c, 0xec, 0x69, 0xb7, 0x4c, 0x87, 0x2e, + 0xc8, 0x8e, 0xce, 0x8c, 0xa3, 0x2f, 0x3f, 0x33, 0x1c, 0xaa, 0x81, 0xbd, 0xf7, 0x9a, 0x0e, 0x59, + 0x6e, 0x1d, 0xdd, 0x43, 0xab, 0x30, 0x6f, 0xd9, 0x9a, 0xeb, 0xe9, 0x56, 0x4b, 0x77, 0x5a, 0x5a, + 0x90, 0x9c, 0xd4, 0x74, 0xc3, 0xc0, 0xae, 0x6b, 0x33, 0x43, 0xe8, 0x53, 0xb9, 0xcf, 0xb2, 0x1b, + 0x1c, 0x38, 0xb0, 0x10, 0x15, 0x0e, 0xda, 0x27, 0xbe, 0xc9, 0x61, 0xe2, 0x7b, 0x12, 0xb2, 0x1d, + 0xbd, 0xab, 0x61, 0xcb, 0x73, 0xf6, 0xa9, 0x7f, 0x9e, 0x51, 0x33, 0x1d, 0xbd, 0x5b, 0x23, 0xdf, + 0xe8, 0x3a, 0x3c, 0x14, 0x80, 0x6a, 0x6d, 0xbc, 0xab, 0x1b, 0xfb, 0x1a, 0x75, 0xc6, 0x69, 0xa2, + 0x47, 0x33, 0x6c, 0x6b, 0xa7, 0x6d, 0x1a, 0x9e, 0x4b, 0xf5, 0x03, 0xd3, 0x71, 0x4a, 0x80, 0xb1, + 0x4a, 0x11, 0xae, 0xb9, 0xb6, 0x45, 0x7d, 0xf0, 0x25, 0x01, 0xfd, 0xee, 0xcd, 0x70, 0x74, 0x96, + 0x52, 0xf2, 0xc4, 0xb5, 0x54, 0x66, 0x42, 0x4e, 0x5f, 0x4b, 0x65, 0xd2, 0xf2, 0xe4, 0xb5, 0x54, + 0x26, 0x23, 0x67, 0xaf, 0xa5, 0x32, 0x59, 0x19, 0x94, 0x0f, 0x64, 0x21, 0x1f, 0x8e, 0x0c, 0x48, + 0xa0, 0x65, 0x50, 0xdb, 0x28, 0x51, 0xed, 0x79, 0xe6, 0xc0, 0x38, 0x62, 0x71, 0x89, 0x18, 0xcd, + 0x72, 0x9a, 0xb9, 0xe1, 0x2a, 0xc3, 0x24, 0x0e, 0x0b, 0x11, 0x6b, 0xcc, 0xdc, 0x9e, 0x8c, 0xca, + 0xbf, 0xd0, 0x0a, 0xa4, 0x5f, 0x77, 0x29, 0xed, 0x34, 0xa5, 0xfd, 0xc0, 0xc1, 0xb4, 0xaf, 0x35, + 0x28, 0xf1, 0xec, 0xb5, 0x86, 0xb6, 0xbe, 0xa1, 0xae, 0x55, 0x56, 0x55, 0x8e, 0x8e, 0x4e, 0x40, + 0xaa, 0xad, 0xbf, 0xb1, 0x1f, 0x35, 0xaf, 0xb4, 0x08, 0x2d, 0x42, 0xa9, 0x67, 0xb1, 0xa8, 0x9b, + 0x4c, 0x15, 0x81, 0x2a, 0x85, 0xa1, 0x8a, 0x41, 0xed, 0x2a, 0x81, 0x1f, 0x53, 0x3c, 0x4e, 0x40, + 0xea, 0x16, 0xd6, 0x6f, 0x44, 0x8d, 0x20, 0x2d, 0x42, 0xe7, 0x20, 0xdf, 0xc2, 0xdb, 0xbd, 0x5d, + 0xcd, 0xc1, 0x2d, 0xdd, 0xf0, 0xa2, 0xaa, 0x3f, 0x47, 0xab, 0x54, 0x5a, 0x83, 0x5e, 0x86, 0x2c, + 0x99, 0x23, 0x8b, 0xce, 0xf1, 0x14, 0x65, 0xc1, 0x63, 0x07, 0xb3, 0x80, 0x4f, 0xb1, 0x40, 0x52, + 0x03, 0x7c, 0x74, 0x0d, 0xd2, 0x9e, 0xee, 0xec, 0x62, 0x8f, 0x6a, 0xfe, 0x62, 0x4c, 0xba, 0x2a, + 0x86, 0x52, 0x93, 0x62, 0x10, 0xb6, 0x52, 0x19, 0xe5, 0x14, 0xd0, 0x55, 0x98, 0x64, 0x7f, 0xb9, + 0xb3, 0xd3, 0x0b, 0xc9, 0xc3, 0x13, 0x53, 0x05, 0xfa, 0xbb, 0xa8, 0xb3, 0x2e, 0xc0, 0x04, 0x15, + 0x36, 0x04, 0xc0, 0xc5, 0x4d, 0x3e, 0x82, 0x32, 0x90, 0x5a, 0xda, 0x50, 0x89, 0xde, 0x92, 0x21, + 0xcf, 0x4a, 0xb5, 0xcd, 0x7a, 0x6d, 0xa9, 0x26, 0x27, 0x94, 0xa7, 0x20, 0xcd, 0x24, 0x88, 0xe8, + 0x34, 0x5f, 0x86, 0xe4, 0x23, 0xfc, 0x93, 0xd3, 0x90, 0x44, 0xed, 0xd6, 0x5a, 0xb5, 0xa6, 0xca, + 0x09, 0x65, 0x0b, 0x4a, 0x7d, 0x5c, 0x47, 0x47, 0x61, 0x4a, 0xad, 0x35, 0x6b, 0xeb, 0x24, 0x6a, + 0xd3, 0xb6, 0xd6, 0x5f, 0x5e, 0xdf, 0x78, 0xef, 0xba, 0x7c, 0x24, 0x5a, 0x2c, 0x14, 0xa4, 0x84, + 0x66, 0x40, 0x0e, 0x8a, 0x1b, 0x1b, 0x5b, 0x2a, 0xed, 0xcd, 0x77, 0x24, 0x40, 0xee, 0x67, 0x1b, + 0x3a, 0x0e, 0xd3, 0xcd, 0x8a, 0xba, 0x52, 0x6b, 0x6a, 0x2c, 0x12, 0xf5, 0x49, 0xcf, 0x80, 0x1c, + 0xae, 0xb8, 0x52, 0xa7, 0x81, 0xf6, 0x3c, 0x9c, 0x0c, 0x97, 0xd6, 0x5e, 0x69, 0xd6, 0xd6, 0x1b, + 0xb4, 0xf1, 0xca, 0xfa, 0x0a, 0xd1, 0xd6, 0x7d, 0xf4, 0x44, 0xec, 0x9b, 0x24, 0x5d, 0x8d, 0xd2, + 0xab, 0xad, 0x2e, 0xcb, 0xa9, 0xfe, 0xe2, 0x8d, 0xf5, 0xda, 0xc6, 0x15, 0x79, 0xa2, 0xbf, 0x75, + 0x1a, 0x0f, 0xa7, 0xd1, 0x1c, 0x1c, 0xeb, 0x2f, 0xd5, 0x6a, 0xeb, 0x4d, 0xf5, 0x55, 0x79, 0xb2, + 0xbf, 0xe1, 0x46, 0x4d, 0xbd, 0x5e, 0x5f, 0xaa, 0xc9, 0x19, 0x74, 0x0c, 0x50, 0xb4, 0x47, 0xcd, + 0xab, 0x1b, 0xcb, 0x72, 0x76, 0x40, 0x3f, 0x29, 0x2e, 0xe4, 0xc3, 0x41, 0xe9, 0x5f, 0x8a, 0x6a, + 0x54, 0x3e, 0x9c, 0x80, 0x5c, 0x28, 0xc8, 0x24, 0xd1, 0x81, 0xde, 0x6e, 0xdb, 0xb7, 0x34, 0xbd, + 0x6d, 0xea, 0x2e, 0xd7, 0x5e, 0x40, 0x8b, 0x2a, 0xa4, 0x64, 0x5c, 0x6d, 0x31, 0xbe, 0xbd, 0x48, + 0xff, 0x75, 0xb4, 0x17, 0x13, 0x72, 0x5a, 0xf9, 0xb8, 0x04, 0x72, 0x7f, 0xf4, 0xd8, 0x37, 0x7c, + 0x69, 0xd8, 0xf0, 0xff, 0x52, 0xe6, 0xee, 0x63, 0x12, 0x14, 0xa3, 0x21, 0x63, 0x5f, 0xf7, 0x4e, + 0xff, 0x95, 0x76, 0xef, 0x77, 0x12, 0x50, 0x88, 0x04, 0x8a, 0xe3, 0xf6, 0xee, 0x7d, 0x30, 0x65, + 0xb6, 0x70, 0xa7, 0x6b, 0x7b, 0xd8, 0x32, 0xf6, 0xb5, 0x36, 0xbe, 0x89, 0xdb, 0xb3, 0x0a, 0x55, + 0xf1, 0x17, 0x0e, 0x0e, 0x45, 0x17, 0xeb, 0x01, 0xde, 0x2a, 0x41, 0x2b, 0x4f, 0xd7, 0x97, 0x6b, + 0x6b, 0x9b, 0x1b, 0xcd, 0xda, 0xfa, 0xd2, 0xab, 0x42, 0xbb, 0xa8, 0xb2, 0xd9, 0x07, 0xf6, 0x2e, + 0x2a, 0xed, 0x4d, 0x90, 0xfb, 0x3b, 0x45, 0x74, 0x45, 0x4c, 0xb7, 0xe4, 0x23, 0x68, 0x1a, 0x4a, + 0xeb, 0x1b, 0x5a, 0xa3, 0xbe, 0x5c, 0xd3, 0x6a, 0x57, 0xae, 0xd4, 0x96, 0x9a, 0x0d, 0x96, 0x5c, + 0xf4, 0xa1, 0x9b, 0x72, 0x22, 0xcc, 0xe2, 0x8f, 0x24, 0x61, 0x3a, 0xa6, 0x27, 0xa8, 0xc2, 0xd3, + 0x02, 0x2c, 0x53, 0xf1, 0xd8, 0x38, 0xbd, 0x5f, 0x24, 0x8e, 0xf9, 0xa6, 0xee, 0x78, 0x3c, 0x8b, + 0xf0, 0x30, 0x10, 0x2e, 0x59, 0x1e, 0xf1, 0x13, 0x1c, 0x9e, 0xb4, 0x65, 0xb9, 0x82, 0x52, 0x50, + 0xce, 0xf2, 0xb6, 0x8f, 0x02, 0xea, 0xda, 0xae, 0xe9, 0x99, 0x37, 0xb1, 0x66, 0x5a, 0x22, 0xc3, + 0x9b, 0x5a, 0x90, 0xce, 0xa5, 0x54, 0x59, 0xd4, 0xd4, 0x2d, 0xcf, 0x87, 0xb6, 0xf0, 0xae, 0xde, + 0x07, 0x4d, 0xfc, 0x98, 0xa4, 0x2a, 0x8b, 0x1a, 0x1f, 0xfa, 0x34, 0xe4, 0x5b, 0x76, 0x8f, 0x04, + 0x54, 0x0c, 0x8e, 0x68, 0x0b, 0x49, 0xcd, 0xb1, 0x32, 0x1f, 0x84, 0x87, 0xca, 0x41, 0x6a, 0x39, + 0xaf, 0xe6, 0x58, 0x19, 0x03, 0x39, 0x0b, 0x25, 0x7d, 0x77, 0xd7, 0x21, 0xc4, 0x05, 0x21, 0x16, + 0xfc, 0x17, 0xfd, 0x62, 0x0a, 0x38, 0x77, 0x0d, 0x32, 0x82, 0x0f, 0xc4, 0x1f, 0x26, 0x9c, 0xd0, + 0xba, 0x2c, 0xa3, 0x95, 0x38, 0x97, 0x55, 0x33, 0x96, 0xa8, 0x3c, 0x0d, 0x79, 0xd3, 0xd5, 0x82, + 0xbd, 0xcd, 0xc4, 0x42, 0xe2, 0x5c, 0x46, 0xcd, 0x99, 0xae, 0xbf, 0x47, 0xa2, 0x7c, 0x22, 0x01, + 0xc5, 0xe8, 0xae, 0x2d, 0x5a, 0x86, 0x4c, 0xdb, 0xe6, 0x9b, 0x2c, 0xec, 0xc8, 0xc0, 0xb9, 0x11, + 0x1b, 0xbd, 0x8b, 0xab, 0x1c, 0x5e, 0xf5, 0x31, 0xe7, 0x7e, 0x4d, 0x82, 0x8c, 0x28, 0x46, 0xc7, + 0x20, 0xd5, 0xd5, 0xbd, 0x3d, 0x4a, 0x6e, 0xa2, 0x9a, 0x90, 0x25, 0x95, 0x7e, 0x93, 0x72, 0xb7, + 0xab, 0xb3, 0x7d, 0x22, 0x5e, 0x4e, 0xbe, 0xc9, 0xbc, 0xb6, 0xb1, 0xde, 0xa2, 0x99, 0x05, 0xbb, + 0xd3, 0xc1, 0x96, 0xe7, 0x8a, 0x79, 0xe5, 0xe5, 0x4b, 0xbc, 0x18, 0x3d, 0x02, 0x53, 0x9e, 0xa3, + 0x9b, 0xed, 0x08, 0x6c, 0x8a, 0xc2, 0xca, 0xa2, 0xc2, 0x07, 0x2e, 0xc3, 0x09, 0x41, 0xb7, 0x85, + 0x3d, 0xdd, 0xd8, 0xc3, 0xad, 0x00, 0x29, 0x4d, 0x33, 0x88, 0xc7, 0x39, 0xc0, 0x32, 0xaf, 0x17, + 0xb8, 0xca, 0xe7, 0x12, 0x30, 0x25, 0x72, 0x21, 0x2d, 0x9f, 0x59, 0x6b, 0x00, 0xba, 0x65, 0xd9, + 0x5e, 0x98, 0x5d, 0x83, 0xa2, 0x3c, 0x80, 0xb7, 0x58, 0xf1, 0x91, 0xd4, 0x10, 0x81, 0xb9, 0x2f, + 0x49, 0x00, 0x41, 0xd5, 0x50, 0xbe, 0xcd, 0x43, 0x8e, 0xef, 0xc9, 0xd3, 0x83, 0x1d, 0x2c, 0x7d, + 0x06, 0xac, 0xe8, 0x8a, 0xd9, 0xa6, 0x49, 0xce, 0x6d, 0xbc, 0x6b, 0x5a, 0x7c, 0x77, 0x86, 0x7d, + 0x88, 0x24, 0x67, 0x2a, 0xd8, 0x9e, 0x54, 0x21, 0xe3, 0xe2, 0x8e, 0x6e, 0x79, 0xa6, 0xc1, 0xf7, + 0x5b, 0x2e, 0x1f, 0xaa, 0xf3, 0x8b, 0x0d, 0x8e, 0xad, 0xfa, 0x74, 0x94, 0x73, 0x90, 0x11, 0xa5, + 0xc4, 0xf1, 0x5b, 0xdf, 0x58, 0xaf, 0xc9, 0x47, 0xd0, 0x24, 0x24, 0x1b, 0xb5, 0xa6, 0x2c, 0x91, + 0x20, 0xb6, 0xb2, 0x5a, 0xaf, 0x34, 0xe4, 0x44, 0xf5, 0xef, 0xc2, 0xb4, 0x61, 0x77, 0xfa, 0x1b, + 0xac, 0xca, 0x7d, 0x09, 0x44, 0xf7, 0xaa, 0xf4, 0xda, 0x63, 0x1c, 0x68, 0xd7, 0x6e, 0xeb, 0xd6, + 0xee, 0xa2, 0xed, 0xec, 0x06, 0xc7, 0x62, 0x48, 0xac, 0xe1, 0x86, 0x0e, 0xc7, 0x74, 0xb7, 0xff, + 0x42, 0x92, 0x7e, 0x38, 0x91, 0x5c, 0xd9, 0xac, 0xfe, 0x78, 0x62, 0x6e, 0x85, 0x21, 0x6e, 0x8a, + 0xe1, 0xa8, 0x78, 0xa7, 0x8d, 0x0d, 0xd2, 0x79, 0xf8, 0x68, 0x0a, 0xa6, 0xf4, 0x8e, 0x69, 0xd9, + 0x17, 0xe8, 0xbf, 0xfc, 0x50, 0xcd, 0x04, 0xfd, 0x98, 0x1b, 0x79, 0xfa, 0xa6, 0x7c, 0x99, 0x29, + 0x30, 0x34, 0x6a, 0x0f, 0x7b, 0xf6, 0x4f, 0xbe, 0xe3, 0xc7, 0x26, 0x82, 0xdc, 0x67, 0x79, 0x0d, + 0x64, 0x11, 0x76, 0x63, 0xcb, 0xb0, 0x89, 0xb4, 0x8d, 0xa6, 0xf1, 0xa7, 0x82, 0x46, 0x89, 0xe3, + 0xd6, 0x38, 0x6a, 0xf9, 0x79, 0xc8, 0xf8, 0x64, 0x0e, 0xde, 0x4e, 0x9a, 0xfd, 0x9f, 0x82, 0x88, + 0x8f, 0x51, 0x7e, 0x09, 0x80, 0x39, 0x3b, 0x2c, 0x2d, 0x7b, 0x30, 0xfe, 0x57, 0x04, 0x7e, 0x96, + 0xe2, 0x10, 0x2d, 0x54, 0x5e, 0x81, 0x62, 0xcb, 0xb6, 0x3c, 0xcd, 0xee, 0x98, 0x1e, 0xee, 0x74, + 0xbd, 0xfd, 0x51, 0x44, 0xfe, 0x8c, 0x11, 0xc9, 0xa8, 0x05, 0x82, 0xb7, 0x21, 0xd0, 0x48, 0x4f, + 0xd8, 0xce, 0xda, 0x38, 0x3d, 0xf9, 0x73, 0xbf, 0x27, 0x14, 0x87, 0xf4, 0xa4, 0x5a, 0xfb, 0xe5, + 0xcf, 0x9f, 0x92, 0x3e, 0xf7, 0xf9, 0x53, 0xd2, 0xef, 0x7c, 0xfe, 0x94, 0xf4, 0xa1, 0x2f, 0x9c, + 0x3a, 0xf2, 0xb9, 0x2f, 0x9c, 0x3a, 0xf2, 0x9b, 0x5f, 0x38, 0x75, 0xe4, 0xb5, 0x47, 0x76, 0x4d, + 0x6f, 0xaf, 0xb7, 0xbd, 0x68, 0xd8, 0x9d, 0x0b, 0x86, 0xed, 0x76, 0x6c, 0x97, 0xff, 0xf7, 0x98, + 0xdb, 0xba, 0xc1, 0xe5, 0xc7, 0xbb, 0xcd, 0xa4, 0x60, 0x3b, 0xcd, 0x76, 0xd4, 0xe0, 0x0f, 0x1f, + 0x81, 0x99, 0x5d, 0x7b, 0xd7, 0xa6, 0x9f, 0x17, 0xc8, 0x5f, 0x5c, 0x40, 0xb2, 0x7e, 0xe9, 0x18, + 0x42, 0xb2, 0x0e, 0xd3, 0x1c, 0x58, 0xa3, 0x87, 0x3b, 0x58, 0x22, 0x0b, 0x1d, 0xb8, 0x8b, 0x32, + 0xfb, 0x33, 0xbf, 0x47, 0x7d, 0x56, 0x75, 0x8a, 0xa3, 0x92, 0x3a, 0x96, 0xeb, 0x2a, 0xab, 0x70, + 0x34, 0x42, 0x8f, 0x59, 0x10, 0xec, 0x8c, 0xa0, 0xf8, 0xef, 0x39, 0xc5, 0xe9, 0x10, 0xc5, 0x06, + 0x47, 0x2d, 0x2f, 0x41, 0xe1, 0x30, 0xb4, 0x7e, 0x89, 0xd3, 0xca, 0xe3, 0x30, 0x91, 0x15, 0x28, + 0x51, 0x22, 0x46, 0xcf, 0xf5, 0xec, 0x0e, 0x9d, 0xc3, 0x83, 0xc9, 0xfc, 0x87, 0xdf, 0x63, 0x2a, + 0xbd, 0x48, 0xd0, 0x96, 0x7c, 0xac, 0x72, 0x19, 0xe8, 0x79, 0x96, 0x16, 0x36, 0xda, 0x23, 0x28, + 0xfc, 0x32, 0xef, 0x88, 0x0f, 0x5f, 0xbe, 0x0e, 0x33, 0xe4, 0x6f, 0x6a, 0x3d, 0xc3, 0x3d, 0x19, + 0xbd, 0xe5, 0x32, 0xfb, 0x5f, 0xbe, 0x99, 0x59, 0x8d, 0x69, 0x9f, 0x40, 0xa8, 0x4f, 0xa1, 0x59, + 0xdc, 0xc5, 0x9e, 0x87, 0x1d, 0x57, 0xd3, 0xdb, 0x71, 0xdd, 0x0b, 0xe5, 0xac, 0x67, 0x7f, 0xe0, + 0xcb, 0xd1, 0x59, 0x5c, 0x61, 0x98, 0x95, 0x76, 0xbb, 0xbc, 0x05, 0xc7, 0x63, 0xa4, 0x62, 0x0c, + 0x9a, 0x1f, 0xe1, 0x34, 0x67, 0x06, 0x24, 0x83, 0x90, 0xdd, 0x04, 0x51, 0xee, 0xcf, 0xe5, 0x18, + 0x34, 0x3f, 0xca, 0x69, 0x22, 0x8e, 0x2b, 0xa6, 0x94, 0x50, 0xbc, 0x06, 0x53, 0x37, 0xb1, 0xb3, + 0x6d, 0xbb, 0x7c, 0x9f, 0x60, 0x0c, 0x72, 0x1f, 0xe3, 0xe4, 0x4a, 0x1c, 0x91, 0x6e, 0x1c, 0x10, + 0x5a, 0xcf, 0x42, 0x66, 0x47, 0x37, 0xf0, 0x18, 0x24, 0xee, 0x72, 0x12, 0x93, 0x04, 0x9e, 0xa0, + 0x56, 0x20, 0xbf, 0x6b, 0x73, 0x07, 0x6a, 0x34, 0xfa, 0xc7, 0x39, 0x7a, 0x4e, 0xe0, 0x70, 0x12, + 0x5d, 0xbb, 0xdb, 0x6b, 0x13, 0xef, 0x6a, 0x34, 0x89, 0x1f, 0x14, 0x24, 0x04, 0x0e, 0x27, 0x71, + 0x08, 0xb6, 0xbe, 0x29, 0x48, 0xb8, 0x21, 0x7e, 0xbe, 0x04, 0x39, 0xdb, 0x6a, 0xef, 0xdb, 0xd6, + 0x38, 0x9d, 0xf8, 0x21, 0x4e, 0x01, 0x38, 0x0a, 0x21, 0xf0, 0x1c, 0x64, 0xc7, 0x9d, 0x88, 0x1f, + 0xfd, 0xb2, 0x58, 0x1e, 0x62, 0x06, 0x56, 0xa0, 0x24, 0x14, 0x94, 0x69, 0x5b, 0x63, 0x90, 0xf8, + 0x31, 0x4e, 0xa2, 0x18, 0x42, 0xe3, 0xc3, 0xf0, 0xb0, 0xeb, 0xed, 0xe2, 0x71, 0x88, 0x7c, 0x42, + 0x0c, 0x83, 0xa3, 0x70, 0x56, 0x6e, 0x63, 0xcb, 0xd8, 0x1b, 0x8f, 0xc2, 0x27, 0x05, 0x2b, 0x05, + 0x0e, 0x21, 0xb1, 0x04, 0x85, 0x8e, 0xee, 0xb8, 0x7b, 0x7a, 0x7b, 0xac, 0xe9, 0xf8, 0x14, 0xa7, + 0x91, 0xf7, 0x91, 0x38, 0x47, 0x7a, 0xd6, 0x61, 0xc8, 0xfc, 0xb8, 0xe0, 0x48, 0x08, 0x8d, 0x2f, + 0x3d, 0xd7, 0xa3, 0x9b, 0x2a, 0x87, 0xa1, 0xf6, 0x13, 0x62, 0xe9, 0x31, 0xdc, 0xb5, 0x30, 0xc5, + 0xe7, 0x20, 0xeb, 0x9a, 0x6f, 0x8c, 0x45, 0xe6, 0x9f, 0x88, 0x99, 0xa6, 0x08, 0x04, 0xf9, 0x55, + 0x38, 0x11, 0x6b, 0x26, 0xc6, 0x20, 0xf6, 0x93, 0x9c, 0xd8, 0xb1, 0x18, 0x53, 0xc1, 0x55, 0xc2, + 0x61, 0x49, 0xfe, 0x94, 0x50, 0x09, 0xb8, 0x8f, 0xd6, 0x26, 0x09, 0x69, 0x5d, 0x7d, 0xe7, 0x70, + 0x5c, 0xfb, 0xa7, 0x82, 0x6b, 0x0c, 0x37, 0xc2, 0xb5, 0x26, 0x1c, 0xe3, 0x14, 0x0f, 0x37, 0xaf, + 0x3f, 0x2d, 0x14, 0x2b, 0xc3, 0xde, 0x8a, 0xce, 0xee, 0xd7, 0xc2, 0x9c, 0xcf, 0x4e, 0x11, 0x3b, + 0xb9, 0x5a, 0x47, 0xef, 0x8e, 0x41, 0xf9, 0x67, 0x38, 0x65, 0xa1, 0xf1, 0xfd, 0xe0, 0xcb, 0x5d, + 0xd3, 0xbb, 0x84, 0xf8, 0x2b, 0x30, 0x2b, 0x88, 0xf7, 0x2c, 0x07, 0x1b, 0xf6, 0xae, 0x65, 0xbe, + 0x81, 0x5b, 0x63, 0x90, 0xfe, 0x67, 0x7d, 0x53, 0xb5, 0x15, 0x42, 0x27, 0x94, 0xeb, 0x20, 0xfb, + 0xbe, 0x8a, 0x66, 0x76, 0xba, 0xb6, 0xe3, 0x8d, 0xa0, 0xf8, 0x69, 0x31, 0x53, 0x3e, 0x5e, 0x9d, + 0xa2, 0x95, 0x6b, 0xc0, 0x4e, 0x1a, 0x8d, 0x2b, 0x92, 0x9f, 0xe1, 0x84, 0x0a, 0x01, 0x16, 0x57, + 0x1c, 0x86, 0xdd, 0xe9, 0xea, 0xce, 0x38, 0xfa, 0xef, 0x67, 0x85, 0xe2, 0xe0, 0x28, 0x5c, 0x71, + 0x10, 0x7f, 0x8d, 0x58, 0xfb, 0x31, 0x28, 0xfc, 0x9c, 0x50, 0x1c, 0x02, 0x87, 0x93, 0x10, 0x0e, + 0xc3, 0x18, 0x24, 0xfe, 0xb9, 0x20, 0x21, 0x70, 0x08, 0x89, 0xf7, 0x04, 0x86, 0xd6, 0xc1, 0xbb, + 0xa6, 0xeb, 0xf1, 0xa3, 0x82, 0x07, 0x93, 0xfa, 0xf9, 0x2f, 0x47, 0x9d, 0x30, 0x35, 0x84, 0x4a, + 0x34, 0x11, 0xf7, 0xec, 0x69, 0x40, 0x3f, 0xba, 0x63, 0x9f, 0x15, 0x9a, 0x28, 0x84, 0x46, 0xfa, + 0x16, 0xf2, 0x10, 0x09, 0xdb, 0x0d, 0x12, 0xc6, 0x8e, 0x41, 0xee, 0x5f, 0xf4, 0x75, 0xae, 0x21, + 0x70, 0x09, 0xcd, 0x90, 0xff, 0xd3, 0xb3, 0x6e, 0xe0, 0xfd, 0xb1, 0xa4, 0xf3, 0x17, 0xfa, 0xfc, + 0x9f, 0x2d, 0x86, 0xc9, 0x74, 0x48, 0xa9, 0xcf, 0x9f, 0x1a, 0x1d, 0x01, 0x7d, 0xd3, 0x57, 0xf8, + 0x78, 0xa3, 0xee, 0x54, 0x79, 0x95, 0x08, 0x79, 0xd4, 0xe9, 0x19, 0x4d, 0xec, 0x9b, 0xbf, 0xe2, + 0xcb, 0x79, 0xc4, 0xe7, 0x29, 0x5f, 0x81, 0x42, 0xc4, 0xe1, 0x19, 0x4d, 0xea, 0x5b, 0x38, 0xa9, + 0x7c, 0xd8, 0xdf, 0x29, 0x3f, 0x05, 0x29, 0xe2, 0xbc, 0x8c, 0x46, 0xff, 0x00, 0x47, 0xa7, 0xe0, + 0xe5, 0x17, 0x20, 0x23, 0x9c, 0x96, 0xd1, 0xa8, 0xdf, 0xca, 0x51, 0x7d, 0x14, 0x82, 0x2e, 0x1c, + 0x96, 0xd1, 0xe8, 0x7f, 0x5f, 0xa0, 0x0b, 0x14, 0x82, 0x3e, 0x3e, 0x0b, 0xff, 0xcd, 0xb7, 0xa7, + 0xb8, 0xd1, 0x11, 0xbc, 0x7b, 0x0e, 0x26, 0xb9, 0xa7, 0x32, 0x1a, 0xfb, 0xdb, 0x78, 0xe3, 0x02, + 0xa3, 0xfc, 0x34, 0x4c, 0x8c, 0xc9, 0xf0, 0xef, 0xe4, 0xa8, 0x0c, 0xbe, 0xbc, 0x04, 0xb9, 0x90, + 0x77, 0x32, 0x1a, 0xfd, 0xbb, 0x38, 0x7a, 0x18, 0x8b, 0x74, 0x9d, 0x7b, 0x27, 0xa3, 0x09, 0xfc, + 0x03, 0xd1, 0x75, 0x8e, 0x41, 0xd8, 0x26, 0x1c, 0x93, 0xd1, 0xd8, 0x1f, 0x12, 0x5c, 0x17, 0x28, + 0xe5, 0x97, 0x20, 0xeb, 0x1b, 0x9b, 0xd1, 0xf8, 0xdf, 0xcd, 0xf1, 0x03, 0x1c, 0xc2, 0x81, 0x90, + 0xb1, 0x1b, 0x4d, 0xe2, 0x1f, 0x0a, 0x0e, 0x84, 0xb0, 0xc8, 0x32, 0xea, 0x77, 0x60, 0x46, 0x53, + 0xfa, 0x1e, 0xb1, 0x8c, 0xfa, 0xfc, 0x17, 0x32, 0x9b, 0x54, 0xe7, 0x8f, 0x26, 0xf1, 0xbd, 0x62, + 0x36, 0x29, 0x3c, 0xe9, 0x46, 0xbf, 0x47, 0x30, 0x9a, 0xc6, 0xf7, 0x8b, 0x6e, 0xf4, 0x39, 0x04, + 0xe5, 0x4d, 0x40, 0x83, 0xde, 0xc0, 0x68, 0x7a, 0x1f, 0xe6, 0xf4, 0xa6, 0x06, 0x9c, 0x81, 0xf2, + 0x7b, 0xe1, 0x58, 0xbc, 0x27, 0x30, 0x9a, 0xea, 0x0f, 0x7c, 0xa5, 0x2f, 0x76, 0x0b, 0x3b, 0x02, + 0xe5, 0x66, 0x60, 0x52, 0xc2, 0x5e, 0xc0, 0x68, 0xb2, 0x1f, 0xf9, 0x4a, 0x54, 0x71, 0x87, 0x9d, + 0x80, 0x72, 0x05, 0x20, 0x30, 0xc0, 0xa3, 0x69, 0x7d, 0x8c, 0xd3, 0x0a, 0x21, 0x91, 0xa5, 0xc1, + 0xed, 0xef, 0x68, 0xfc, 0xbb, 0x62, 0x69, 0x70, 0x0c, 0xb2, 0x34, 0x84, 0xe9, 0x1d, 0x8d, 0xfd, + 0x71, 0xb1, 0x34, 0x04, 0x0a, 0x91, 0xec, 0x90, 0x75, 0x1b, 0x4d, 0xe1, 0x87, 0x84, 0x64, 0x87, + 0xb0, 0xca, 0xeb, 0x30, 0x35, 0x60, 0x10, 0x47, 0x93, 0xfa, 0x61, 0x4e, 0x4a, 0xee, 0xb7, 0x87, + 0x61, 0xe3, 0xc5, 0x8d, 0xe1, 0x68, 0x6a, 0x3f, 0xd2, 0x67, 0xbc, 0xb8, 0x2d, 0x2c, 0x3f, 0x07, + 0x19, 0xab, 0xd7, 0x6e, 0x93, 0xc5, 0x33, 0x2a, 0xe5, 0xf5, 0xdf, 0xbf, 0xca, 0xb9, 0x23, 0x10, + 0xca, 0x4f, 0xc1, 0x04, 0xee, 0x6c, 0xe3, 0xd6, 0x28, 0xcc, 0x3f, 0xf8, 0xaa, 0x50, 0x98, 0x04, + 0xba, 0xfc, 0x12, 0x00, 0x4b, 0x8d, 0xd0, 0x43, 0x1a, 0x23, 0x70, 0xbf, 0xf4, 0x55, 0x7e, 0xf8, + 0x32, 0x40, 0x09, 0x08, 0x8c, 0x93, 0xa9, 0xfb, 0x72, 0x94, 0x00, 0x9d, 0x91, 0x67, 0x61, 0xf2, + 0x75, 0xd7, 0xb6, 0x3c, 0x7d, 0x64, 0xc6, 0xf2, 0x0f, 0x39, 0xb6, 0x80, 0x27, 0x0c, 0xeb, 0xd8, + 0x0e, 0xf6, 0xf4, 0x5d, 0x77, 0x14, 0xee, 0x1f, 0x71, 0x5c, 0x1f, 0x81, 0x20, 0x1b, 0xba, 0xeb, + 0x8d, 0x33, 0xee, 0xff, 0x21, 0x90, 0x05, 0x02, 0xe9, 0x34, 0xf9, 0xfb, 0x06, 0x1e, 0x99, 0xe1, + 0xfc, 0x63, 0xd1, 0x69, 0x0e, 0x5f, 0x7e, 0x01, 0xb2, 0xe4, 0x4f, 0x76, 0xa2, 0x7a, 0x04, 0xf2, + 0x9f, 0x70, 0xe4, 0x00, 0x83, 0xb4, 0xec, 0x7a, 0x2d, 0xcf, 0x1c, 0xcd, 0xec, 0x3f, 0xe5, 0x33, + 0x2d, 0xe0, 0xcb, 0x15, 0xc8, 0xb9, 0x5e, 0xab, 0xd5, 0xe3, 0xfe, 0xe9, 0xa8, 0xfc, 0xf0, 0x57, + 0xfd, 0x94, 0x85, 0x8f, 0x43, 0x66, 0xfb, 0xd6, 0x0d, 0xaf, 0x6b, 0xd3, 0xdd, 0xb8, 0x91, 0x19, + 0x62, 0x4e, 0x21, 0x84, 0x52, 0x5e, 0x82, 0x3c, 0x19, 0x8b, 0xb8, 0xa9, 0x32, 0x32, 0x3f, 0xcc, + 0x19, 0x10, 0x41, 0xaa, 0x7e, 0xe3, 0xb0, 0xe4, 0x6e, 0xfc, 0x1e, 0x02, 0xac, 0xd8, 0x2b, 0x36, + 0xdb, 0x3d, 0x78, 0xed, 0xc1, 0xc1, 0xec, 0x6f, 0x34, 0xaf, 0x4b, 0xff, 0x82, 0xff, 0x25, 0xc1, + 0xfd, 0x86, 0xdd, 0xc1, 0xde, 0xf6, 0x8e, 0x77, 0xc1, 0x70, 0xf6, 0xbb, 0x9e, 0x7d, 0xe1, 0xe6, + 0xc5, 0x0b, 0x37, 0xf0, 0xbe, 0xcb, 0x13, 0xbf, 0x48, 0x54, 0x2f, 0xb2, 0xea, 0xc5, 0x9b, 0x17, + 0xe7, 0x62, 0x53, 0xc4, 0xca, 0x2b, 0x90, 0xdd, 0xa4, 0x37, 0x57, 0x5f, 0xc6, 0xfb, 0x68, 0x0e, + 0x26, 0x71, 0xeb, 0xd2, 0x53, 0x4f, 0x5d, 0x7c, 0x96, 0xee, 0xc5, 0xe7, 0xaf, 0x1e, 0x51, 0x45, + 0x01, 0x3a, 0x05, 0x59, 0x17, 0x1b, 0xdd, 0x4b, 0x4f, 0x5d, 0xbe, 0x71, 0x91, 0xee, 0xe3, 0x90, + 0xda, 0xa0, 0xa8, 0x9c, 0xf9, 0xe2, 0x9b, 0xf3, 0xd2, 0x17, 0x7f, 0x68, 0x5e, 0xaa, 0x4e, 0x40, + 0xd2, 0xed, 0x75, 0xaa, 0x6b, 0x43, 0x93, 0xdc, 0x4f, 0x44, 0x86, 0x29, 0xc6, 0x21, 0xfe, 0xd0, + 0xbb, 0xe6, 0x85, 0xc1, 0xd1, 0xf9, 0xc9, 0xee, 0x4f, 0xa5, 0xe0, 0x54, 0xcc, 0xe0, 0xbb, 0x8e, + 0x6d, 0xef, 0x1c, 0x7a, 0xf4, 0x3b, 0x30, 0xb1, 0x49, 0x10, 0xd1, 0x0c, 0x4c, 0x78, 0xb6, 0xa7, + 0xb7, 0xe9, 0xb8, 0x93, 0x2a, 0xfb, 0x20, 0xa5, 0xec, 0xf2, 0x4c, 0x82, 0x95, 0x9a, 0xe2, 0xde, + 0x4c, 0x1b, 0xeb, 0x3b, 0xec, 0x0c, 0x72, 0x92, 0x6e, 0x8f, 0x66, 0x48, 0x01, 0x3d, 0x6e, 0x3c, + 0x03, 0x13, 0x7a, 0x8f, 0xed, 0xec, 0x25, 0xcf, 0xe5, 0x55, 0xf6, 0xa1, 0xac, 0xc2, 0x24, 0x4f, + 0xe1, 0x22, 0x19, 0x92, 0x37, 0xf0, 0x3e, 0xe3, 0xaf, 0x4a, 0xfe, 0x44, 0x17, 0x60, 0x82, 0xf6, + 0x9e, 0x5f, 0xae, 0x38, 0xb1, 0x38, 0xd8, 0xfd, 0x45, 0xda, 0x4b, 0x95, 0xc1, 0x29, 0xd7, 0x20, + 0xb3, 0x6c, 0x77, 0x4c, 0xcb, 0x8e, 0x92, 0xcb, 0x32, 0x72, 0xb4, 0xd3, 0xdd, 0x9e, 0xc7, 0x37, + 0xdb, 0xd8, 0x07, 0x3a, 0x06, 0x69, 0x76, 0x28, 0x9d, 0x6f, 0x4f, 0xf2, 0x2f, 0x65, 0x09, 0x26, + 0x29, 0xed, 0x8d, 0xae, 0x7f, 0x11, 0x4c, 0x0a, 0x5d, 0x04, 0xe3, 0xe4, 0x13, 0x41, 0x6f, 0x11, + 0xa4, 0x5a, 0xba, 0xa7, 0xf3, 0x81, 0xd3, 0xbf, 0x95, 0x97, 0x20, 0xc3, 0x89, 0xb8, 0xe8, 0x09, + 0x48, 0xda, 0x5d, 0x97, 0x6f, 0x30, 0x9e, 0x1c, 0x3a, 0x96, 0x8d, 0x6e, 0x35, 0xf5, 0xcb, 0x6f, + 0xcd, 0x1f, 0x51, 0x09, 0xf4, 0xbb, 0x25, 0x2b, 0xdf, 0x93, 0x80, 0x53, 0x03, 0xfb, 0x1e, 0x5c, + 0x5b, 0x0c, 0xbb, 0x98, 0x5e, 0x86, 0xcc, 0xb2, 0x50, 0x42, 0xb3, 0x30, 0xe9, 0x62, 0xc3, 0xb6, + 0x5a, 0x2e, 0x97, 0x0b, 0xf1, 0x49, 0x98, 0x6c, 0xe9, 0x96, 0xed, 0xf2, 0x1b, 0x14, 0xec, 0xa3, + 0xfa, 0x51, 0xe9, 0x70, 0x6b, 0xbf, 0x20, 0x5a, 0xa2, 0xeb, 0x7f, 0x53, 0x7a, 0xed, 0xe2, 0xc8, + 0xcd, 0xc3, 0x1b, 0x96, 0x7d, 0xcb, 0xf2, 0x07, 0x11, 0xd9, 0x40, 0x3c, 0xd5, 0xbf, 0x81, 0xf8, + 0x5e, 0xdc, 0x6e, 0xbf, 0x4c, 0xe0, 0x9b, 0x04, 0xd5, 0xe7, 0xca, 0xc7, 0x53, 0x83, 0x5c, 0xb9, + 0xe5, 0xe8, 0xdd, 0x2e, 0x76, 0xdc, 0x61, 0x5c, 0x39, 0x03, 0xb9, 0xe5, 0xd0, 0x21, 0x81, 0x19, + 0x71, 0x59, 0x47, 0xa2, 0x07, 0x08, 0xd8, 0x87, 0xa2, 0x00, 0x5c, 0x69, 0xdb, 0xba, 0x17, 0x03, + 0x93, 0x08, 0xc1, 0xd4, 0x2d, 0xef, 0xf2, 0x93, 0x31, 0x30, 0x49, 0x01, 0x73, 0x06, 0x72, 0x5b, + 0xc3, 0x80, 0x52, 0x51, 0x42, 0x4f, 0x5c, 0x8a, 0x81, 0x99, 0xe8, 0x23, 0x14, 0x0b, 0x54, 0x10, + 0x40, 0xa7, 0x21, 0x5b, 0xb5, 0xed, 0x76, 0x0c, 0x48, 0x26, 0x44, 0xa7, 0x11, 0x3a, 0xff, 0x10, + 0x01, 0xca, 0x86, 0x3a, 0x54, 0xdd, 0xf7, 0xb0, 0x1b, 0x03, 0x93, 0xe7, 0x30, 0x87, 0x17, 0x90, + 0xf7, 0xf2, 0x79, 0x39, 0xac, 0x80, 0x88, 0xf9, 0xbc, 0x27, 0x01, 0xf9, 0xfe, 0x7c, 0x48, 0xc5, + 0x32, 0xaa, 0x44, 0xc3, 0xea, 0x8e, 0xde, 0x11, 0x02, 0x32, 0xe5, 0xaf, 0x6b, 0x5a, 0x3f, 0x54, + 0xc3, 0xce, 0x8d, 0x58, 0x7f, 0x73, 0x23, 0x24, 0x51, 0xf9, 0x6c, 0x12, 0x4a, 0x4b, 0xb6, 0xe5, + 0x62, 0xcb, 0xed, 0xb9, 0x9b, 0xb4, 0x0b, 0xe8, 0x49, 0x98, 0xd8, 0x6e, 0xdb, 0xc6, 0x0d, 0xca, + 0xdb, 0xdc, 0xa5, 0x53, 0x8b, 0x03, 0x9d, 0x59, 0xac, 0x92, 0x7a, 0x06, 0xae, 0x32, 0x60, 0xf4, + 0x02, 0x64, 0xf0, 0x4d, 0xb3, 0x85, 0x2d, 0x03, 0x73, 0x4d, 0x7b, 0x3a, 0x06, 0xb1, 0xc6, 0x41, + 0x38, 0xae, 0x8f, 0x82, 0xbe, 0x06, 0xb2, 0x37, 0xf5, 0xb6, 0xd9, 0xd2, 0x3d, 0xdb, 0xe1, 0x57, + 0x8e, 0x94, 0x18, 0xfc, 0xeb, 0x02, 0x86, 0x13, 0x08, 0x90, 0x50, 0x19, 0x26, 0x6f, 0x62, 0x87, + 0x9e, 0x6f, 0x61, 0x37, 0x81, 0x16, 0xe2, 0xf0, 0x19, 0x04, 0xc7, 0x16, 0x08, 0xe8, 0x29, 0x48, + 0xe9, 0xdb, 0x86, 0x49, 0x8f, 0x3e, 0xe4, 0x2e, 0xdd, 0x1f, 0x83, 0x58, 0xa9, 0x2e, 0xd5, 0x19, + 0x16, 0x3d, 0xfd, 0x47, 0xc1, 0x49, 0xa7, 0xdd, 0x7d, 0xcb, 0xd8, 0x73, 0x6c, 0x6b, 0x9f, 0x1e, + 0xf6, 0x89, 0xef, 0x74, 0x43, 0xc0, 0x88, 0x4e, 0xfb, 0x48, 0xa4, 0xd3, 0x3b, 0x58, 0xf7, 0x7a, + 0x0e, 0xe6, 0xf7, 0xe0, 0xe3, 0x3a, 0x7d, 0x85, 0x41, 0x88, 0x4e, 0x73, 0x04, 0xa5, 0x0e, 0xb9, + 0xd0, 0x3c, 0xb0, 0x13, 0xf1, 0xb7, 0xb5, 0x6d, 0xb2, 0x48, 0xf8, 0x82, 0xcf, 0x74, 0xf4, 0xdb, + 0x74, 0xd1, 0xa0, 0xe3, 0x30, 0x49, 0x2a, 0x77, 0xf9, 0x29, 0xc9, 0xa4, 0x9a, 0xee, 0xe8, 0xb7, + 0x57, 0x74, 0xf7, 0x5a, 0x2a, 0x93, 0x94, 0x53, 0xca, 0xa7, 0x24, 0x28, 0x46, 0xa7, 0x06, 0x3d, + 0x02, 0x88, 0x60, 0xe8, 0xbb, 0x58, 0xb3, 0x7a, 0x1d, 0x8d, 0x4e, 0xb2, 0xa0, 0x5b, 0xea, 0xe8, + 0xb7, 0x2b, 0xbb, 0x78, 0xbd, 0xd7, 0xa1, 0x1d, 0x70, 0xd1, 0x1a, 0xc8, 0x02, 0x58, 0x08, 0xa0, + 0x6f, 0x6e, 0x07, 0x6e, 0xe5, 0x73, 0x80, 0x6a, 0x86, 0x18, 0xa8, 0x0f, 0xff, 0xb7, 0x79, 0x49, + 0x2d, 0x32, 0x7a, 0xbe, 0x61, 0x88, 0x0c, 0x25, 0x19, 0x1d, 0x8a, 0xf2, 0x12, 0x94, 0xfa, 0xa4, + 0x00, 0x29, 0x50, 0xe8, 0xf6, 0xb6, 0xb5, 0x1b, 0x78, 0x9f, 0x5e, 0x13, 0x63, 0xe6, 0x31, 0xab, + 0xe6, 0xba, 0xbd, 0xed, 0x97, 0xf1, 0x3e, 0x5d, 0x7d, 0xe5, 0xcc, 0xcf, 0x13, 0x07, 0xea, 0xcd, + 0x79, 0x49, 0x79, 0x04, 0x0a, 0x11, 0x31, 0x20, 0x56, 0x58, 0xef, 0x76, 0xb9, 0xfe, 0x23, 0x7f, + 0x86, 0x80, 0x5f, 0x83, 0x3c, 0x71, 0x3c, 0x70, 0x8b, 0xc3, 0x3e, 0x04, 0x25, 0xca, 0x0a, 0xad, + 0x9f, 0xd7, 0x05, 0x5a, 0xbc, 0x26, 0x18, 0xae, 0x40, 0x21, 0x80, 0x0b, 0xd8, 0x9e, 0x13, 0x50, + 0x2b, 0xba, 0xab, 0x7c, 0x9f, 0x04, 0xa5, 0x3e, 0xd9, 0x40, 0x2f, 0x40, 0xb6, 0xeb, 0x60, 0xc3, + 0x74, 0xd9, 0x31, 0xa2, 0x11, 0x2c, 0x4c, 0x51, 0xf6, 0x05, 0x18, 0x68, 0x19, 0x0a, 0xe2, 0x48, + 0x49, 0x0b, 0xb7, 0xf5, 0xfd, 0xd1, 0xb3, 0xc0, 0x48, 0x88, 0x27, 0x52, 0x96, 0x09, 0x92, 0xf2, + 0x4b, 0x12, 0x14, 0x22, 0x42, 0x87, 0x5a, 0x70, 0xff, 0x4d, 0xdb, 0xc3, 0xe1, 0x54, 0x07, 0xbf, + 0x3a, 0xb4, 0x87, 0xcd, 0xdd, 0x3d, 0x8f, 0x77, 0xf5, 0xe4, 0x40, 0x3b, 0x81, 0xa1, 0xa1, 0x0e, + 0x89, 0xa4, 0xce, 0x11, 0x3a, 0x41, 0xc6, 0x83, 0xdd, 0x31, 0xba, 0x4a, 0x89, 0xa0, 0x0d, 0x40, + 0xdd, 0x6d, 0xaf, 0x9f, 0x74, 0x62, 0x5c, 0xd2, 0x32, 0x41, 0x0e, 0x13, 0x54, 0x1a, 0x00, 0xc1, + 0xc2, 0x45, 0x95, 0x71, 0x06, 0x91, 0x3c, 0xa8, 0x87, 0xe5, 0xc4, 0xac, 0x54, 0xdd, 0xfc, 0xe4, + 0xe7, 0x4f, 0x0d, 0x35, 0x34, 0xaf, 0x5d, 0x1a, 0xdf, 0xa3, 0x12, 0xba, 0xdf, 0xb7, 0x0c, 0x7f, + 0x9e, 0x86, 0xd3, 0x83, 0x96, 0xc1, 0x57, 0x71, 0x87, 0x35, 0x0e, 0x07, 0x47, 0x31, 0xca, 0x67, + 0x24, 0xc8, 0xfb, 0x2b, 0xa9, 0x81, 0x3d, 0xf4, 0x3c, 0x80, 0xdf, 0x96, 0x70, 0x31, 0xef, 0x3b, + 0x48, 0x09, 0xab, 0x21, 0x78, 0xf4, 0x0c, 0x64, 0xba, 0x8e, 0xdd, 0xb5, 0x5d, 0x7e, 0xf1, 0x75, + 0x14, 0xae, 0x0f, 0x8d, 0x1e, 0x05, 0x44, 0x03, 0x02, 0xed, 0xa6, 0xed, 0x99, 0xd6, 0xae, 0xd6, + 0xb5, 0x6f, 0xf1, 0xf7, 0x04, 0x92, 0xaa, 0x4c, 0x6b, 0xae, 0xd3, 0x8a, 0x4d, 0x52, 0xae, 0x7c, + 0x5a, 0x82, 0xac, 0x4f, 0x85, 0xf8, 0x90, 0x7a, 0xab, 0xe5, 0x60, 0xd7, 0xe5, 0xae, 0x80, 0xf8, + 0x44, 0xcf, 0xc3, 0x24, 0x57, 0x0a, 0xfe, 0xb5, 0xea, 0x38, 0x6f, 0x59, 0x44, 0x67, 0xdc, 0x5f, + 0x4e, 0x33, 0x9d, 0x81, 0x4e, 0x43, 0x3e, 0xa6, 0x37, 0xb9, 0x9b, 0x41, 0x47, 0xe8, 0x73, 0x45, + 0x7c, 0x08, 0x5a, 0xd7, 0x31, 0x6d, 0xc7, 0xf4, 0xf6, 0xa9, 0xe9, 0x49, 0xaa, 0xb2, 0xa8, 0xd8, + 0xe4, 0xe5, 0x4a, 0x1b, 0x4a, 0x0d, 0xb3, 0xd3, 0xa5, 0x1e, 0x1e, 0xef, 0xfa, 0xe5, 0xa0, 0x83, + 0xd2, 0x18, 0x1d, 0x1c, 0xda, 0xb5, 0xc4, 0x40, 0xd7, 0xce, 0xff, 0x86, 0xc4, 0x6d, 0x43, 0x7d, + 0xf9, 0x4a, 0x5b, 0xdf, 0x45, 0x17, 0xe1, 0x68, 0x75, 0x75, 0x63, 0xe9, 0x65, 0xad, 0xbe, 0xac, + 0x5d, 0x59, 0xad, 0xac, 0x04, 0xa7, 0x78, 0xe7, 0x8e, 0xdd, 0xb9, 0xbb, 0x80, 0x42, 0xb0, 0x5b, + 0x16, 0x75, 0x71, 0xd0, 0x05, 0x98, 0x89, 0xa2, 0x54, 0xaa, 0x8d, 0xda, 0x7a, 0x53, 0x96, 0xe6, + 0x8e, 0xde, 0xb9, 0xbb, 0x30, 0x15, 0xc2, 0xa8, 0x6c, 0xbb, 0xd8, 0xf2, 0x06, 0x11, 0x96, 0x36, + 0xd6, 0xd6, 0xea, 0x4d, 0x39, 0x31, 0x80, 0xb0, 0x64, 0x77, 0x3a, 0xa6, 0x87, 0x1e, 0x86, 0xa9, + 0x28, 0xc2, 0x7a, 0x7d, 0x55, 0x4e, 0xce, 0xa1, 0x3b, 0x77, 0x17, 0x8a, 0x21, 0xe8, 0x75, 0xb3, + 0x3d, 0x97, 0xf9, 0xe0, 0x8f, 0x9c, 0x3a, 0xf2, 0xc9, 0x7f, 0x7c, 0x4a, 0xaa, 0xae, 0xbe, 0x2b, + 0x0b, 0xef, 0xfb, 0x13, 0x30, 0xdf, 0xef, 0x29, 0x79, 0x66, 0x07, 0xbb, 0x9e, 0xde, 0xe9, 0x0e, + 0x73, 0xda, 0x9f, 0x83, 0x6c, 0x53, 0xc0, 0x1c, 0x3a, 0x96, 0xb9, 0x7b, 0x48, 0x57, 0xb5, 0xe8, + 0x37, 0x25, 0x7c, 0xd5, 0x4b, 0x63, 0xfa, 0xaa, 0xfe, 0x38, 0xee, 0xc9, 0x59, 0xfd, 0xed, 0x06, + 0xdc, 0x17, 0x30, 0x71, 0xdb, 0x30, 0x89, 0x12, 0x61, 0xab, 0x99, 0xb1, 0x45, 0xf6, 0x65, 0x96, + 0xd4, 0x12, 0x65, 0x74, 0xb0, 0xda, 0x99, 0x1b, 0x91, 0x5e, 0x98, 0x1b, 0xe1, 0x1b, 0xcf, 0x8d, + 0xd6, 0x90, 0x43, 0xd4, 0xe1, 0xa8, 0x19, 0x56, 0xfe, 0x73, 0x16, 0x26, 0x55, 0xfc, 0xbe, 0x1e, + 0x76, 0x3d, 0xf4, 0x04, 0xa4, 0xb0, 0xb1, 0x67, 0x0f, 0xae, 0x4c, 0x3e, 0xca, 0xc5, 0x9a, 0xb1, + 0x67, 0x73, 0xe0, 0xab, 0x47, 0x54, 0x0a, 0x8c, 0x2e, 0xc3, 0xc4, 0x4e, 0xbb, 0xe7, 0xee, 0x71, + 0x85, 0x73, 0x6a, 0x10, 0xeb, 0x0a, 0xa9, 0x0e, 0xd0, 0x18, 0x38, 0x69, 0x8c, 0x3e, 0xa7, 0x95, + 0x1c, 0xd6, 0x18, 0x7d, 0x45, 0x2b, 0x68, 0x8c, 0x00, 0xa3, 0x25, 0x00, 0xd3, 0x32, 0x3d, 0xcd, + 0xd8, 0xd3, 0x4d, 0x8b, 0x7b, 0xae, 0x4a, 0x1c, 0xaa, 0xe9, 0x2d, 0x11, 0x90, 0x00, 0x3f, 0x6b, + 0x8a, 0x32, 0xd2, 0xe3, 0xf7, 0xf5, 0xb0, 0x23, 0xbc, 0xd7, 0x98, 0x1e, 0xbf, 0x87, 0x54, 0x87, + 0x7a, 0x4c, 0xc1, 0x89, 0xb7, 0xcf, 0xae, 0x7a, 0x7b, 0xb7, 0xf9, 0x03, 0x26, 0x0b, 0x83, 0xa8, + 0xf4, 0xa6, 0x77, 0xf3, 0x76, 0x80, 0x3c, 0x69, 0xb0, 0x12, 0xf4, 0x2c, 0xa4, 0x0d, 0xaa, 0x04, + 0xe8, 0x05, 0xcc, 0xdc, 0xa5, 0xf9, 0x18, 0x64, 0x5a, 0x1f, 0xe0, 0x72, 0x04, 0xb4, 0x01, 0xc5, + 0xb6, 0xe9, 0x7a, 0x9a, 0x6b, 0xe9, 0x5d, 0x77, 0xcf, 0xf6, 0x5c, 0xfa, 0x86, 0x58, 0xee, 0xd2, + 0x43, 0x83, 0x24, 0x56, 0x4d, 0xd7, 0x6b, 0x08, 0xb0, 0x80, 0x52, 0xa1, 0x1d, 0x2e, 0x27, 0x04, + 0xed, 0x9d, 0x1d, 0xec, 0xf8, 0x14, 0xe9, 0xdb, 0x63, 0xb1, 0x04, 0x37, 0x08, 0x9c, 0xc0, 0x0c, + 0x11, 0xb4, 0xc3, 0xe5, 0xe8, 0xeb, 0x60, 0xba, 0x6d, 0xeb, 0x2d, 0x9f, 0x9e, 0x66, 0xec, 0xf5, + 0xac, 0x1b, 0xb3, 0x45, 0x4a, 0xf5, 0x7c, 0x4c, 0x37, 0x6d, 0xbd, 0x25, 0x90, 0x97, 0x08, 0x68, + 0x40, 0x79, 0xaa, 0xdd, 0x5f, 0x87, 0x34, 0x98, 0xd1, 0xbb, 0xdd, 0xf6, 0x7e, 0x3f, 0xf9, 0x12, + 0x25, 0xff, 0xc8, 0x20, 0xf9, 0x0a, 0x81, 0x1e, 0x42, 0x1f, 0xe9, 0x03, 0x95, 0x68, 0x0b, 0xe4, + 0xae, 0x83, 0xe9, 0xc9, 0x0c, 0x66, 0xc5, 0xf4, 0x36, 0xbd, 0x23, 0x99, 0xbb, 0x74, 0x6e, 0x90, + 0xf8, 0x26, 0x83, 0xdc, 0xe4, 0x80, 0x01, 0xe5, 0x52, 0x37, 0x5a, 0xc3, 0xc8, 0xda, 0x06, 0xa6, + 0x77, 0xb8, 0x39, 0xd9, 0xa9, 0xe1, 0x64, 0x29, 0x64, 0x2c, 0xd9, 0x48, 0x0d, 0xba, 0x02, 0x39, + 0xf6, 0x6e, 0x0f, 0x71, 0x1e, 0x30, 0xbd, 0x5b, 0x99, 0xbb, 0x74, 0x26, 0x66, 0xb9, 0x52, 0xa0, + 0xeb, 0xb6, 0x87, 0x03, 0x62, 0x80, 0xfd, 0x42, 0xb4, 0x0d, 0x47, 0xe9, 0x3d, 0xd3, 0x7d, 0x2d, + 0xea, 0x22, 0xce, 0x4e, 0x53, 0x8a, 0x8f, 0x0e, 0x52, 0xa4, 0x8f, 0x2c, 0xed, 0x5f, 0x0f, 0xfb, + 0x8a, 0x01, 0xe9, 0xe9, 0x9b, 0x83, 0xb5, 0x44, 0xd2, 0x76, 0x4c, 0x4b, 0x6f, 0x9b, 0x6f, 0x60, + 0x16, 0x4f, 0xd1, 0x27, 0x16, 0x62, 0x25, 0xed, 0x0a, 0x87, 0xa3, 0x76, 0x30, 0x24, 0x69, 0x3b, + 0xe1, 0xf2, 0xea, 0x24, 0xcf, 0x82, 0xf8, 0x77, 0x86, 0x27, 0xe5, 0x0c, 0xbb, 0x27, 0x7c, 0x2d, + 0x95, 0x01, 0x39, 0xa7, 0x9c, 0x85, 0x5c, 0x48, 0x4f, 0x11, 0x23, 0xc5, 0xfd, 0x7c, 0x9e, 0x5b, + 0x11, 0x9f, 0x4a, 0x11, 0xf2, 0x61, 0xd5, 0xa4, 0x7c, 0x48, 0x82, 0x5c, 0x48, 0xe9, 0x10, 0x4c, + 0x11, 0x5c, 0x73, 0x4c, 0x11, 0x3a, 0x9f, 0x11, 0x81, 0x8e, 0xa8, 0x4f, 0xd0, 0x30, 0x2a, 0x4f, + 0x0b, 0x79, 0x9c, 0x85, 0xe6, 0x21, 0xd7, 0xbd, 0xd4, 0xf5, 0x41, 0x92, 0x14, 0x04, 0xba, 0x97, + 0xba, 0x02, 0xe0, 0x34, 0xe4, 0xc9, 0xd0, 0xb5, 0x70, 0x04, 0x9f, 0x55, 0x73, 0xa4, 0x8c, 0x83, + 0x28, 0xbf, 0x96, 0x00, 0xb9, 0x5f, 0x99, 0xa1, 0x67, 0x20, 0x45, 0xb4, 0x38, 0x57, 0xd3, 0x73, + 0x03, 0x31, 0x82, 0x6f, 0x35, 0x59, 0xb4, 0xf9, 0x21, 0x12, 0xeb, 0x50, 0x0c, 0x74, 0x82, 0x68, + 0x30, 0xdd, 0xb4, 0x34, 0xb3, 0x25, 0xde, 0xa9, 0xa4, 0xdf, 0xf5, 0x16, 0x89, 0x66, 0x0d, 0x91, + 0x13, 0xd1, 0x98, 0xed, 0x39, 0x20, 0x25, 0xd1, 0x97, 0x3e, 0x51, 0x4b, 0x46, 0x5f, 0x3e, 0x65, + 0x25, 0xe2, 0x56, 0xb3, 0xd7, 0x6f, 0x4e, 0xc7, 0xc8, 0x93, 0x80, 0xd9, 0xea, 0xb6, 0x74, 0x0f, + 0x73, 0x7f, 0x34, 0xec, 0x61, 0x3f, 0x04, 0x25, 0xbd, 0xdb, 0xd5, 0x5c, 0x4f, 0xf7, 0x30, 0x8f, + 0x3d, 0x27, 0xa8, 0xcf, 0x5b, 0xd0, 0xbb, 0x5d, 0xfa, 0xce, 0x17, 0x8b, 0x3d, 0x1f, 0x84, 0x22, + 0xd1, 0xf0, 0xa6, 0xde, 0x16, 0x81, 0x4d, 0x9a, 0x85, 0xa8, 0xbc, 0x94, 0x07, 0x47, 0x2d, 0xc8, + 0x87, 0x95, 0xbb, 0x9f, 0x7a, 0x96, 0x82, 0xd4, 0x33, 0x29, 0xa3, 0x17, 0x4f, 0x18, 0x87, 0xc4, + 0x65, 0x9d, 0x34, 0x27, 0xcb, 0x9c, 0x62, 0xfe, 0x45, 0x1c, 0x9d, 0xae, 0x63, 0xdf, 0x64, 0x97, + 0xa9, 0x32, 0x2a, 0xfb, 0x50, 0x5e, 0x85, 0x62, 0xd4, 0x0e, 0xa0, 0x22, 0x24, 0xbc, 0xdb, 0xbc, + 0x95, 0x84, 0x77, 0x1b, 0x5d, 0x0c, 0xbd, 0x90, 0x56, 0x8c, 0xb3, 0x7e, 0x1c, 0x3f, 0x78, 0xda, + 0xeb, 0x5a, 0x2a, 0x93, 0x90, 0x93, 0x4a, 0x09, 0x0a, 0x11, 0x2b, 0xa1, 0x1c, 0x83, 0x99, 0x38, + 0x9d, 0xaf, 0x98, 0x30, 0x13, 0xa7, 0xba, 0xd1, 0x65, 0xc8, 0xf8, 0x4a, 0x5f, 0x48, 0xd0, 0x40, + 0xeb, 0x3e, 0x92, 0x0f, 0x4b, 0x64, 0x87, 0x4c, 0x04, 0xdd, 0xa1, 0x48, 0xf0, 0xa8, 0xa3, 0xdb, + 0xbd, 0xaa, 0xbb, 0x7b, 0xca, 0x37, 0xc2, 0xec, 0x30, 0x7d, 0x1e, 0x62, 0x1c, 0x4b, 0x35, 0x08, + 0xc6, 0x1d, 0x83, 0x34, 0x7f, 0x6d, 0x21, 0x41, 0x33, 0xa7, 0xfc, 0x8b, 0x30, 0x94, 0xe9, 0xf6, + 0x24, 0x4b, 0xa8, 0xd2, 0x0f, 0x45, 0x83, 0x13, 0x43, 0x55, 0x7a, 0xb0, 0xa5, 0xc2, 0x73, 0xb0, + 0x6c, 0x4b, 0xc5, 0x27, 0xc4, 0x3a, 0xcb, 0x3e, 0xe8, 0x2b, 0x9c, 0xd8, 0x6a, 0xf1, 0xe0, 0x26, + 0xab, 0xf2, 0x2f, 0xe5, 0x23, 0x49, 0x38, 0x16, 0xaf, 0xd7, 0xd1, 0x02, 0xe4, 0x3b, 0xfa, 0x6d, + 0xcd, 0x8b, 0xa6, 0x3e, 0xa0, 0xa3, 0xdf, 0x6e, 0xf2, 0xbc, 0x87, 0x0c, 0x49, 0xef, 0xb6, 0x4b, + 0x2f, 0x72, 0xe5, 0x55, 0xf2, 0x27, 0xba, 0x0e, 0x53, 0x6d, 0xdb, 0xd0, 0xdb, 0x5a, 0x5b, 0x77, + 0x3d, 0x8d, 0x9b, 0x7d, 0xb6, 0x9c, 0x1e, 0x18, 0xa6, 0xa7, 0xd9, 0x75, 0x2b, 0xd3, 0x23, 0x2a, + 0x88, 0x2f, 0x84, 0x12, 0x25, 0xb2, 0xaa, 0xbb, 0x1e, 0x0f, 0x1f, 0x6a, 0x90, 0xeb, 0x98, 0xee, + 0x36, 0xde, 0xd3, 0x6f, 0x9a, 0xb6, 0xc3, 0xd7, 0x55, 0x8c, 0xf4, 0xac, 0x05, 0x40, 0x9c, 0x54, + 0x18, 0x2f, 0x34, 0x29, 0x13, 0x11, 0x69, 0x16, 0x9a, 0x25, 0x7d, 0x68, 0xcd, 0xf2, 0x38, 0xcc, + 0x58, 0xf8, 0x36, 0xbd, 0x2b, 0xc8, 0x57, 0x2e, 0x93, 0x14, 0x76, 0xd5, 0x0f, 0x91, 0x3a, 0x7f, + 0xad, 0xbb, 0x74, 0x57, 0xeb, 0x61, 0xf0, 0x03, 0x46, 0x4d, 0x44, 0xb3, 0x19, 0x0a, 0x5d, 0x12, + 0xe5, 0x15, 0x56, 0xac, 0xdc, 0xa1, 0x93, 0x13, 0x67, 0x1d, 0x05, 0xeb, 0xa5, 0x80, 0xf5, 0x4d, + 0x98, 0xe1, 0xf8, 0xad, 0x08, 0xf7, 0x07, 0xc2, 0xf3, 0xa8, 0xd3, 0x15, 0xe2, 0x3a, 0x12, 0xf8, + 0xc3, 0x19, 0x9f, 0xbc, 0x47, 0xc6, 0x23, 0x48, 0x51, 0xb6, 0xa4, 0x98, 0xba, 0x21, 0x7f, 0xff, + 0xbf, 0x36, 0x19, 0x1f, 0x48, 0xc2, 0xd4, 0x80, 0x63, 0xe1, 0x0f, 0x4c, 0x8a, 0x1d, 0x58, 0x22, + 0x76, 0x60, 0xc9, 0x43, 0x0f, 0x8c, 0xcf, 0x76, 0x6a, 0xf4, 0x6c, 0x4f, 0xbc, 0x93, 0xb3, 0x9d, + 0xbe, 0xc7, 0xd9, 0x7e, 0x57, 0xe7, 0xe1, 0x63, 0x12, 0xcc, 0x0d, 0x77, 0xc7, 0x62, 0x27, 0xe4, + 0x11, 0x98, 0xf2, 0xbb, 0xe2, 0x93, 0x67, 0xea, 0x51, 0xf6, 0x2b, 0x38, 0xfd, 0xa1, 0x16, 0xef, + 0x41, 0x28, 0xf6, 0x79, 0x8b, 0x4c, 0x98, 0x0b, 0x91, 0x0c, 0xa2, 0xf2, 0xad, 0x49, 0x98, 0x89, + 0x73, 0xe8, 0x62, 0x56, 0xac, 0x0a, 0xd3, 0x2d, 0x6c, 0x98, 0xad, 0x7b, 0x5e, 0xb0, 0x53, 0x1c, + 0xfd, 0xff, 0xaf, 0xd7, 0x18, 0x39, 0xf9, 0x51, 0x80, 0x8c, 0x8a, 0xdd, 0x2e, 0x71, 0xd0, 0xd8, + 0x6b, 0xcf, 0x06, 0xee, 0x7a, 0x41, 0xa6, 0x3d, 0x36, 0x6e, 0xe0, 0x20, 0x02, 0x8f, 0xc4, 0xcf, + 0x3e, 0x1e, 0x7a, 0x92, 0xa7, 0x09, 0x86, 0x06, 0xfc, 0xcc, 0xfd, 0xf6, 0x51, 0x59, 0x9e, 0xe0, + 0x69, 0x91, 0x27, 0x48, 0x0e, 0x8b, 0x7e, 0xb9, 0x33, 0xee, 0xe3, 0xf1, 0x44, 0xc1, 0x93, 0x3c, + 0x51, 0x90, 0x1a, 0xd6, 0x1c, 0xf3, 0xd9, 0x83, 0xe6, 0x4c, 0x76, 0x91, 0x3b, 0x9c, 0x29, 0x48, + 0x0f, 0x1b, 0x6a, 0xc8, 0xb9, 0x0e, 0x86, 0x1a, 0xa4, 0x0a, 0x9e, 0x16, 0xa9, 0x82, 0xc9, 0x61, + 0x9d, 0xe6, 0xde, 0x64, 0xd0, 0x69, 0x96, 0x2b, 0x78, 0x31, 0x94, 0x2b, 0xc8, 0xf6, 0xef, 0x0c, + 0x0e, 0xe4, 0x0a, 0x7c, 0x6c, 0x3f, 0x59, 0x50, 0xf6, 0x93, 0x05, 0xf9, 0xa1, 0x99, 0x06, 0xee, + 0x06, 0xfa, 0xc8, 0x22, 0x5b, 0xb0, 0x39, 0x90, 0x2d, 0x60, 0xc1, 0xfd, 0xd9, 0x91, 0xd9, 0x02, + 0x9f, 0x54, 0x5f, 0xba, 0x60, 0x73, 0x20, 0x5d, 0x50, 0x1c, 0x46, 0xb1, 0xcf, 0xe7, 0x0c, 0x28, + 0x46, 0xf3, 0x05, 0x5f, 0x1f, 0x9f, 0x2f, 0x18, 0x1a, 0xd0, 0xc7, 0xf8, 0x97, 0x3e, 0xe9, 0x98, + 0x84, 0xc1, 0x37, 0x0e, 0x49, 0x18, 0xc8, 0xc3, 0x02, 0xdb, 0x38, 0xef, 0xd2, 0x6f, 0x20, 0x2e, + 0x63, 0x70, 0x3d, 0x26, 0x63, 0xc0, 0x42, 0xfb, 0x87, 0xc7, 0xc8, 0x18, 0xf8, 0xa4, 0x07, 0x52, + 0x06, 0xd7, 0x63, 0x52, 0x06, 0x68, 0x38, 0xdd, 0x3e, 0xa7, 0x28, 0x4c, 0x37, 0x9a, 0x33, 0x58, + 0x89, 0xe6, 0x0c, 0xa6, 0x0f, 0xf6, 0x45, 0x99, 0x69, 0xf7, 0xa9, 0x85, 0x93, 0x06, 0xc6, 0xb0, + 0xa4, 0x01, 0x8b, 0xeb, 0x1f, 0x1b, 0x33, 0x69, 0xe0, 0xd3, 0x8e, 0xcd, 0x1a, 0x6c, 0x0e, 0x64, + 0x0d, 0x8e, 0x0e, 0x13, 0xb8, 0x3e, 0x23, 0x13, 0x08, 0xdc, 0xd0, 0xb4, 0x01, 0x7b, 0x64, 0x8c, + 0x3d, 0x2f, 0x06, 0x72, 0xee, 0x5a, 0x2a, 0x93, 0x93, 0xf3, 0xca, 0xc3, 0xc4, 0xad, 0xe9, 0xd3, + 0x7b, 0x24, 0x88, 0xc0, 0x8e, 0x63, 0x3b, 0xe2, 0x58, 0x06, 0xfd, 0x50, 0xce, 0x41, 0x3e, 0xac, + 0xe2, 0x0e, 0x48, 0x31, 0x94, 0xa0, 0x10, 0xd1, 0x6a, 0xca, 0xcf, 0x4b, 0x90, 0x0f, 0xeb, 0xab, + 0x48, 0x00, 0x9a, 0xe5, 0x01, 0x68, 0x28, 0xf1, 0x90, 0x88, 0x26, 0x1e, 0xe6, 0x21, 0x47, 0x82, + 0xb0, 0xbe, 0x9c, 0x82, 0xde, 0xf5, 0x73, 0x0a, 0xe7, 0x61, 0x8a, 0xda, 0x50, 0x96, 0x9e, 0xe0, + 0x76, 0x8a, 0xed, 0xcf, 0x94, 0x48, 0x05, 0x65, 0x06, 0xdf, 0x79, 0x7c, 0x0c, 0xa6, 0x43, 0xb0, + 0x7e, 0x70, 0xc7, 0xc2, 0x6b, 0xd9, 0x87, 0xae, 0xf0, 0x28, 0xef, 0x97, 0x24, 0x98, 0x1a, 0x50, + 0x97, 0xb1, 0x79, 0x03, 0xe9, 0x9d, 0xca, 0x1b, 0x24, 0xee, 0x3d, 0x6f, 0x10, 0x0e, 0x57, 0x93, + 0xd1, 0x70, 0xf5, 0x2f, 0x24, 0x28, 0x44, 0xd4, 0x36, 0x99, 0x04, 0xc3, 0x6e, 0x89, 0x43, 0x3c, + 0xf4, 0x6f, 0xe2, 0xa7, 0xb4, 0xed, 0x5d, 0x1e, 0x26, 0x92, 0x3f, 0x09, 0x94, 0x6f, 0x88, 0xb2, + 0xdc, 0xcc, 0xf8, 0xb1, 0xe7, 0x44, 0xf8, 0x38, 0x1f, 0x3f, 0xe2, 0x96, 0x0e, 0x8e, 0xb8, 0xf9, + 0x67, 0x77, 0x26, 0x43, 0x67, 0x77, 0xd0, 0xb3, 0x90, 0xa5, 0xbb, 0x00, 0x9a, 0xdd, 0x0d, 0x7e, + 0x98, 0x62, 0xf8, 0xf1, 0x36, 0x97, 0xee, 0x1f, 0xb2, 0x33, 0x71, 0x81, 0x17, 0x92, 0x8d, 0x78, + 0x21, 0xf7, 0x41, 0x96, 0x74, 0x9f, 0x3d, 0xee, 0x08, 0xfc, 0x30, 0xad, 0x28, 0x50, 0x7e, 0x22, + 0x01, 0xa5, 0x3e, 0xab, 0x13, 0x3b, 0x78, 0x21, 0x95, 0x89, 0x50, 0x5a, 0x64, 0x3c, 0x86, 0x9c, + 0x02, 0xd8, 0xd5, 0x5d, 0xed, 0x96, 0x6e, 0x79, 0xfc, 0x0d, 0xf7, 0xa4, 0x1a, 0x2a, 0x41, 0x73, + 0x90, 0x21, 0x5f, 0x3d, 0x97, 0xbf, 0xe2, 0x9e, 0x54, 0xfd, 0x6f, 0x54, 0x87, 0x34, 0xbe, 0x49, + 0x9f, 0x23, 0x61, 0x8f, 0xfa, 0x1c, 0x8f, 0x51, 0x4f, 0xa4, 0xbe, 0x3a, 0x4b, 0xa6, 0xfb, 0x0f, + 0xde, 0x9a, 0x97, 0x19, 0xf8, 0xa3, 0xfe, 0xf3, 0x0b, 0x2a, 0x27, 0x10, 0x65, 0x43, 0xa6, 0x8f, + 0x0d, 0x34, 0x5d, 0x98, 0x17, 0xb1, 0x3f, 0x61, 0x2a, 0xdb, 0xb0, 0x54, 0x0b, 0x1d, 0xdc, 0xe9, + 0xda, 0x76, 0x5b, 0x63, 0xeb, 0xbc, 0x02, 0xc5, 0xa8, 0x91, 0x65, 0x2f, 0x2f, 0x7b, 0xba, 0x69, + 0x69, 0x11, 0xdf, 0x38, 0xcf, 0x0a, 0xd9, 0xba, 0xba, 0x96, 0xca, 0x48, 0x72, 0x82, 0xa7, 0x6b, + 0xde, 0x03, 0x47, 0x63, 0x6d, 0x2c, 0x7a, 0x06, 0xb2, 0x81, 0x7d, 0x66, 0xdb, 0xce, 0x07, 0xe5, + 0x61, 0x02, 0x60, 0xe5, 0x3a, 0x1c, 0x8d, 0x35, 0xb2, 0xe8, 0x05, 0x48, 0x3b, 0xd8, 0xed, 0xb5, + 0x3d, 0xfe, 0x2c, 0xe2, 0x83, 0xa3, 0xad, 0x73, 0xaf, 0xed, 0xa9, 0x1c, 0x49, 0xb9, 0x08, 0x27, + 0x86, 0x5a, 0xd9, 0x20, 0x9b, 0x22, 0x85, 0xb2, 0x29, 0xca, 0x4f, 0x49, 0x30, 0x37, 0xdc, 0x72, + 0xa2, 0x6a, 0x5f, 0x87, 0xce, 0x8f, 0x69, 0x77, 0x43, 0xbd, 0x22, 0xe1, 0x86, 0x83, 0x77, 0xb0, + 0x67, 0xec, 0x31, 0x13, 0xce, 0x94, 0x42, 0x41, 0x2d, 0xf0, 0x52, 0x8a, 0xe3, 0x32, 0xb0, 0xd7, + 0xb1, 0xe1, 0x69, 0x6c, 0x52, 0x5d, 0xfe, 0x53, 0x3b, 0x05, 0x56, 0xda, 0x60, 0x85, 0xca, 0x23, + 0x70, 0x7c, 0x88, 0x2d, 0x1e, 0x8c, 0x4b, 0x94, 0xd7, 0x08, 0x70, 0xac, 0x81, 0x45, 0x2f, 0x41, + 0xda, 0xf5, 0x74, 0xaf, 0xe7, 0xf2, 0x91, 0x9d, 0x1d, 0x69, 0x9b, 0x1b, 0x14, 0x5c, 0xe5, 0x68, + 0xca, 0x73, 0x80, 0x06, 0x2d, 0x6d, 0x4c, 0x6c, 0x25, 0xc5, 0xc5, 0x56, 0xdb, 0x70, 0xf2, 0x00, + 0x9b, 0x8a, 0x96, 0xfa, 0x3a, 0xf7, 0xc8, 0x58, 0x26, 0xb9, 0xaf, 0x83, 0x7f, 0x94, 0x80, 0xa3, + 0xb1, 0xa6, 0x35, 0xb4, 0x4a, 0xa5, 0xb7, 0xbb, 0x4a, 0x5f, 0x00, 0xf0, 0x6e, 0x6b, 0x6c, 0xa6, + 0x85, 0xb6, 0x8f, 0x8b, 0x27, 0x6e, 0x63, 0x83, 0x2a, 0x2c, 0x22, 0x18, 0x59, 0x8f, 0xff, 0x45, + 0x82, 0xff, 0x50, 0x3c, 0xdb, 0xa3, 0x96, 0xc0, 0xe5, 0xa1, 0xde, 0xd8, 0x36, 0x23, 0x08, 0x7c, + 0x59, 0xb1, 0x8b, 0x5e, 0x83, 0xe3, 0x7d, 0x16, 0xcd, 0xa7, 0x9d, 0x1a, 0xdb, 0xb0, 0x1d, 0x8d, + 0x1a, 0x36, 0x41, 0x3b, 0x6c, 0x95, 0x26, 0xa2, 0x56, 0xe9, 0x35, 0x80, 0x20, 0xb0, 0x25, 0xeb, + 0xcd, 0xb1, 0x7b, 0x56, 0x4b, 0x1c, 0x3e, 0xa5, 0x1f, 0xe8, 0x32, 0x4c, 0x10, 0x49, 0x10, 0xac, + 0x8a, 0x51, 0x18, 0x64, 0x4a, 0x43, 0x91, 0x31, 0x03, 0x57, 0x5e, 0x17, 0xd2, 0x16, 0xce, 0x31, + 0x0e, 0x69, 0xe3, 0xc5, 0x68, 0x1b, 0xca, 0xf0, 0x74, 0x65, 0x7c, 0x5b, 0x7f, 0x07, 0x26, 0xe8, + 0xf4, 0xc7, 0x9e, 0xfd, 0xfe, 0x06, 0x00, 0xdd, 0xf3, 0x1c, 0x73, 0xbb, 0x17, 0xb4, 0xb0, 0x30, + 0x44, 0x7e, 0x2a, 0x02, 0xb0, 0x7a, 0x1f, 0x17, 0xa4, 0x99, 0x00, 0x37, 0x24, 0x4c, 0x21, 0x8a, + 0xca, 0x3a, 0x14, 0xa3, 0xb8, 0xf1, 0x87, 0xd9, 0xc5, 0xaf, 0x02, 0x04, 0x47, 0x6d, 0x03, 0x43, + 0xce, 0x6f, 0x0b, 0xd1, 0x0f, 0xe5, 0x9b, 0x12, 0x90, 0x0f, 0x4b, 0xdf, 0xdf, 0x42, 0x63, 0xa9, + 0x7c, 0xab, 0x04, 0x19, 0x7f, 0xfc, 0xd1, 0x74, 0x7e, 0x64, 0x1f, 0x24, 0xb8, 0xd6, 0xe0, 0xe7, + 0xe0, 0xd9, 0xae, 0x47, 0xd2, 0xdf, 0xf5, 0x78, 0xde, 0x37, 0x08, 0x43, 0x83, 0xf9, 0x30, 0xb7, + 0xc5, 0xf1, 0x24, 0x6e, 0xa0, 0x9e, 0x1b, 0xef, 0x0c, 0xd4, 0x0c, 0x4c, 0x84, 0x8f, 0x2f, 0xb1, + 0x0f, 0x05, 0x87, 0x4e, 0x50, 0xb2, 0xd5, 0x18, 0x3e, 0x2c, 0x25, 0x1d, 0xfe, 0xb0, 0x94, 0xdf, + 0x4c, 0x22, 0xdc, 0xcc, 0x3f, 0x92, 0x20, 0x23, 0xd6, 0x05, 0x7a, 0x29, 0x7c, 0xbe, 0x57, 0x1c, + 0x16, 0x1c, 0xae, 0x97, 0x78, 0x03, 0xa1, 0xe3, 0xbd, 0x55, 0xb1, 0xcf, 0x68, 0xb6, 0xb4, 0x9d, + 0xb6, 0xbe, 0xcb, 0xb7, 0x8b, 0x86, 0x9e, 0x4e, 0x66, 0x87, 0x87, 0xf8, 0x81, 0xcb, 0x7a, 0x8b, + 0x7c, 0x70, 0x3f, 0xe4, 0xcf, 0x24, 0x90, 0xfb, 0xd7, 0xed, 0xdb, 0xef, 0xdf, 0xa0, 0xbd, 0x4a, + 0xc6, 0xd8, 0x2b, 0x74, 0x01, 0xa6, 0x83, 0x1f, 0xe6, 0x72, 0xcd, 0x5d, 0x8b, 0x1d, 0xfe, 0x65, + 0x49, 0x35, 0xe4, 0x57, 0x35, 0x44, 0xcd, 0xe0, 0xb8, 0x27, 0xee, 0x75, 0xdc, 0x1f, 0x48, 0x40, + 0x2e, 0x94, 0xe3, 0x43, 0x4f, 0x85, 0x94, 0x52, 0x31, 0xce, 0x4a, 0x84, 0x80, 0x43, 0x3f, 0xab, + 0x13, 0xe1, 0x54, 0xe2, 0x1e, 0x38, 0x35, 0x2c, 0x9b, 0x2a, 0x92, 0x86, 0xa9, 0x43, 0x27, 0x0d, + 0xe3, 0x0f, 0x10, 0x4e, 0x0c, 0x39, 0x40, 0xf8, 0xf7, 0x24, 0xc8, 0xf8, 0xc9, 0x97, 0xc3, 0xee, + 0xc9, 0x1d, 0x83, 0x34, 0xf7, 0xbd, 0xd8, 0xa6, 0x1c, 0xff, 0x8a, 0xcd, 0x8e, 0xce, 0x41, 0x46, + 0xbc, 0x32, 0xcf, 0x2d, 0x9c, 0xff, 0x7d, 0x7e, 0x1b, 0x72, 0xa1, 0x6d, 0x4d, 0x74, 0x02, 0x8e, + 0x2e, 0x5d, 0xad, 0x2d, 0xbd, 0xac, 0x35, 0x5f, 0xe9, 0x7f, 0x5b, 0x78, 0xa0, 0x4a, 0xad, 0xd1, + 0x6f, 0x59, 0x42, 0xc7, 0x61, 0x3a, 0x5a, 0xc5, 0x2a, 0x12, 0x73, 0xa9, 0x0f, 0xfe, 0xc8, 0xa9, + 0x23, 0xe7, 0xff, 0x4c, 0x82, 0xe9, 0x18, 0x2f, 0x17, 0x9d, 0x86, 0xfb, 0x37, 0xae, 0x5c, 0xa9, + 0xa9, 0x5a, 0x63, 0xbd, 0xb2, 0xd9, 0xb8, 0xba, 0xd1, 0xd4, 0xd4, 0x5a, 0x63, 0x6b, 0xb5, 0x19, + 0x6a, 0x74, 0x01, 0xee, 0x8b, 0x07, 0xa9, 0x2c, 0x2d, 0xd5, 0x36, 0x9b, 0xec, 0x71, 0xe3, 0x21, + 0x10, 0xd5, 0x0d, 0xb5, 0x29, 0x27, 0x86, 0x93, 0x50, 0x6b, 0xd7, 0x6a, 0x4b, 0x4d, 0x39, 0x89, + 0xce, 0xc2, 0x99, 0x83, 0x20, 0xb4, 0x2b, 0x1b, 0xea, 0x5a, 0xa5, 0x29, 0xa7, 0x46, 0x02, 0x36, + 0x6a, 0xeb, 0xcb, 0x35, 0x55, 0x9e, 0xe0, 0xe3, 0x7e, 0x33, 0x01, 0xb3, 0xc3, 0x9c, 0x69, 0x42, + 0xab, 0xb2, 0xb9, 0xb9, 0xfa, 0x6a, 0x40, 0x6b, 0xe9, 0xea, 0xd6, 0xfa, 0xcb, 0x83, 0x2c, 0x78, + 0x08, 0x94, 0x83, 0x00, 0x7d, 0x46, 0x3c, 0x08, 0xa7, 0x0f, 0x84, 0xe3, 0xec, 0x18, 0x01, 0xa6, + 0xd6, 0x9a, 0xea, 0xab, 0x72, 0x12, 0x2d, 0xc2, 0xf9, 0x91, 0x60, 0x7e, 0x9d, 0x9c, 0x42, 0x17, + 0xe0, 0x91, 0x83, 0xe1, 0x19, 0x83, 0x04, 0x82, 0x60, 0xd1, 0x1d, 0x09, 0x8e, 0xc6, 0x7a, 0xe5, + 0xe8, 0x0c, 0xcc, 0x6f, 0xaa, 0x1b, 0x4b, 0xb5, 0x46, 0x43, 0xdb, 0x54, 0x37, 0x36, 0x37, 0x1a, + 0x95, 0x55, 0xad, 0xd1, 0xac, 0x34, 0xb7, 0x1a, 0x21, 0xde, 0x28, 0x70, 0x6a, 0x18, 0x90, 0xcf, + 0x97, 0x03, 0x60, 0xb8, 0x04, 0x08, 0x39, 0xbd, 0x2b, 0xc1, 0x89, 0xa1, 0x5e, 0x38, 0x3a, 0x07, + 0x0f, 0xd0, 0xdf, 0x29, 0x7b, 0x55, 0xbb, 0xbe, 0xd1, 0x0c, 0xbf, 0xa2, 0x3d, 0xd0, 0xab, 0xb3, + 0x70, 0xe6, 0x40, 0x48, 0xbf, 0x6b, 0xa3, 0x00, 0xfb, 0xfa, 0xf7, 0x2d, 0x12, 0x94, 0xfa, 0x74, + 0x21, 0xba, 0x0f, 0x66, 0xd7, 0xea, 0x8d, 0x6a, 0xed, 0x6a, 0xe5, 0x7a, 0x7d, 0x43, 0xed, 0x5f, + 0xb3, 0x67, 0x60, 0x7e, 0xa0, 0x76, 0x79, 0x6b, 0x73, 0xb5, 0xbe, 0x54, 0x69, 0xd6, 0x68, 0xa3, + 0xb2, 0x44, 0x06, 0x36, 0x00, 0xb4, 0x5a, 0x5f, 0xb9, 0xda, 0xd4, 0x96, 0x56, 0xeb, 0xb5, 0xf5, + 0xa6, 0x56, 0x69, 0x36, 0x2b, 0xc1, 0x72, 0xae, 0xbe, 0x3c, 0xf4, 0xe8, 0xeb, 0xc5, 0xf1, 0x8f, + 0xbe, 0xf2, 0x23, 0x9c, 0xc1, 0x6d, 0xb5, 0x04, 0xcc, 0xfb, 0x95, 0x3c, 0x97, 0xd6, 0x7f, 0xc4, + 0x73, 0xda, 0xd7, 0xee, 0x1c, 0x60, 0xf8, 0x8d, 0xcf, 0x17, 0x20, 0x59, 0xe9, 0x76, 0x89, 0xe6, + 0xa3, 0xdf, 0x86, 0xdd, 0xe6, 0x7a, 0xd5, 0xff, 0x26, 0x75, 0xae, 0xbd, 0xe3, 0xdd, 0xd2, 0x1d, + 0xff, 0x97, 0xd7, 0xc4, 0xb7, 0xf2, 0x2c, 0x64, 0xfd, 0xe8, 0x81, 0xbe, 0x5d, 0xea, 0xdf, 0x43, + 0x4a, 0x89, 0x7b, 0x46, 0xfc, 0xb2, 0x46, 0x22, 0xb8, 0xac, 0x91, 0xfa, 0xe2, 0x9b, 0xf3, 0x52, + 0x75, 0x7d, 0x28, 0x77, 0x9e, 0x1c, 0x9f, 0x3b, 0x01, 0x03, 0x7c, 0x06, 0x7d, 0xef, 0xfd, 0xa1, + 0xdb, 0xc0, 0xfe, 0x89, 0xd3, 0x30, 0x7b, 0x62, 0xce, 0xe3, 0x8f, 0x3a, 0xe3, 0x3a, 0xc6, 0x19, + 0xd6, 0x51, 0xb3, 0x72, 0xaf, 0x87, 0x5c, 0x9f, 0x85, 0xc2, 0xa6, 0xee, 0x78, 0x0d, 0xec, 0x5d, + 0xc5, 0x7a, 0x0b, 0x3b, 0xd1, 0xbb, 0xb9, 0x05, 0x71, 0x37, 0x57, 0xd8, 0xb3, 0x44, 0x60, 0xcf, + 0x14, 0x13, 0x52, 0xf4, 0x39, 0xe1, 0xa1, 0x87, 0x4c, 0xd8, 0xa1, 0x10, 0x7e, 0xc8, 0x84, 0x7e, + 0xa0, 0xa7, 0xc4, 0xed, 0xdb, 0xe4, 0x88, 0xdb, 0xb7, 0x22, 0x72, 0x62, 0x77, 0x70, 0x3b, 0x30, + 0xc9, 0xbd, 0x99, 0xd8, 0xdd, 0xdb, 0x75, 0x28, 0x75, 0x75, 0xc7, 0xa3, 0xbf, 0x56, 0xb2, 0x47, + 0x87, 0xc1, 0x3d, 0x91, 0xb8, 0xeb, 0x53, 0x91, 0xe1, 0xf2, 0x66, 0x0a, 0xdd, 0x70, 0xa1, 0xf2, + 0xc5, 0x14, 0xa4, 0x39, 0x3b, 0x5e, 0x8c, 0x9e, 0x74, 0x8b, 0x38, 0xe6, 0x81, 0xf8, 0x07, 0x41, + 0x2e, 0x27, 0xe8, 0xa7, 0xa5, 0x1f, 0xea, 0x3f, 0x57, 0x56, 0xcd, 0x7d, 0xfe, 0xad, 0xf9, 0x49, + 0x9a, 0x29, 0xae, 0x2f, 0x07, 0x87, 0xcc, 0xde, 0x79, 0x2f, 0x68, 0x19, 0x0a, 0xa1, 0x1c, 0xb6, + 0xd9, 0xe2, 0x1b, 0xff, 0x73, 0xc3, 0x3d, 0x45, 0xb1, 0xcd, 0xeb, 0xe7, 0xb7, 0xeb, 0x2d, 0x74, + 0x0e, 0xe4, 0xd0, 0xce, 0x33, 0x0b, 0xcf, 0x59, 0xf2, 0xb6, 0xd8, 0xf6, 0xf7, 0x94, 0xe9, 0xc6, + 0xeb, 0x49, 0xc8, 0xd2, 0x1f, 0xd0, 0x09, 0xed, 0xcf, 0x66, 0x48, 0x01, 0xad, 0x3c, 0x0b, 0xa5, + 0xfe, 0x2d, 0x5c, 0xb6, 0x29, 0x5b, 0xbc, 0x19, 0xdd, 0xbe, 0x1d, 0xb6, 0xe1, 0x9b, 0x1d, 0xba, + 0xe1, 0xfb, 0x20, 0x14, 0x83, 0xa4, 0x04, 0x85, 0x05, 0xe6, 0x69, 0xfb, 0xa5, 0x14, 0x2c, 0x9c, + 0x5f, 0xc8, 0x45, 0xf2, 0x0b, 0xfe, 0xce, 0x00, 0xcf, 0xb6, 0x30, 0x98, 0x3c, 0xdb, 0x33, 0x26, + 0x15, 0x3c, 0xa9, 0x42, 0x61, 0xcf, 0x40, 0x41, 0x5c, 0x52, 0x64, 0x70, 0x05, 0x0a, 0x97, 0x17, + 0x85, 0x43, 0xf7, 0xa0, 0x8b, 0xf1, 0x7b, 0xd0, 0xb3, 0x90, 0x5a, 0xe6, 0x51, 0x71, 0x5f, 0x8e, + 0xed, 0xb3, 0x49, 0x48, 0xd1, 0x6d, 0xa5, 0x27, 0x23, 0x8e, 0x79, 0x9c, 0x48, 0x93, 0xf0, 0x00, + 0xb7, 0xd6, 0xdc, 0xdd, 0x90, 0x5f, 0x3e, 0xec, 0x88, 0x89, 0x9f, 0xda, 0x48, 0x86, 0x53, 0x1b, + 0x57, 0x20, 0xe3, 0xcb, 0x49, 0x6a, 0xa4, 0x9c, 0x94, 0x88, 0x9c, 0x10, 0x31, 0xe6, 0x05, 0xea, + 0x24, 0x0f, 0x2f, 0x50, 0x15, 0xb2, 0xbe, 0x86, 0xf1, 0x05, 0x6e, 0x1c, 0x99, 0x0d, 0xd0, 0xe2, + 0xcf, 0x62, 0xa4, 0x87, 0x9c, 0xc5, 0x08, 0x0b, 0x16, 0xff, 0xed, 0xcd, 0x49, 0x3a, 0xb0, 0x40, + 0xb0, 0xd8, 0xef, 0x6f, 0xde, 0x07, 0xd9, 0x20, 0xbe, 0x62, 0xb2, 0x17, 0x14, 0x90, 0xda, 0x20, + 0x52, 0x63, 0xb2, 0x16, 0xfa, 0x11, 0xe7, 0x21, 0x51, 0x1a, 0x0c, 0x8b, 0xd2, 0x94, 0x7f, 0x2b, + 0x41, 0x9a, 0x1f, 0xb7, 0x38, 0x20, 0x2d, 0xc0, 0xe6, 0x21, 0x31, 0x6c, 0x1e, 0x92, 0x6f, 0x6b, + 0x1e, 0xc0, 0xef, 0xa7, 0x38, 0x64, 0x7a, 0x5f, 0x6c, 0x72, 0x8e, 0x74, 0xb2, 0x61, 0xee, 0x8a, + 0x7d, 0xa2, 0x00, 0x4b, 0x79, 0x4b, 0x22, 0xe6, 0x97, 0xd7, 0x0f, 0x06, 0x9e, 0xd2, 0xa1, 0x03, + 0xcf, 0xc3, 0x9d, 0xb2, 0x89, 0x88, 0x52, 0xf2, 0xde, 0x44, 0x29, 0x32, 0xe9, 0xa9, 0xbe, 0x49, + 0x57, 0xbe, 0x20, 0xf1, 0xdf, 0x6f, 0xf6, 0x93, 0x7f, 0x7f, 0x45, 0xb3, 0xf5, 0xb5, 0x5c, 0xbe, + 0x5a, 0xb8, 0xa5, 0x0d, 0x4c, 0xdb, 0x03, 0x71, 0xf7, 0xa6, 0x23, 0xbd, 0x0e, 0xa6, 0x0f, 0x09, + 0x32, 0x8d, 0x60, 0x1a, 0x7f, 0x36, 0x21, 0x4e, 0xa5, 0x85, 0xe0, 0xff, 0x06, 0x4e, 0x67, 0x74, + 0x0d, 0x4f, 0x8c, 0xb9, 0x86, 0xd3, 0x43, 0xd7, 0xf0, 0xcf, 0x26, 0xe8, 0x3b, 0x1b, 0xec, 0x8c, + 0xc0, 0x5f, 0x86, 0x0e, 0x3e, 0x09, 0xd9, 0xae, 0xdd, 0xd6, 0x58, 0x0d, 0x7b, 0x8c, 0x3f, 0xd3, + 0xb5, 0xdb, 0xea, 0x80, 0xa8, 0x4d, 0xbc, 0x53, 0x0a, 0x3a, 0xfd, 0x0e, 0x4c, 0xc3, 0x64, 0xff, + 0xaa, 0xf2, 0x20, 0xcf, 0x78, 0xc1, 0x3d, 0xa8, 0x8b, 0x84, 0x09, 0xd4, 0x27, 0x93, 0xfa, 0x7d, + 0x3e, 0xbf, 0xdf, 0x0c, 0x54, 0xe5, 0x80, 0x04, 0x25, 0x72, 0xd2, 0xed, 0xc4, 0x50, 0xcd, 0x25, + 0x4e, 0xf6, 0x28, 0x1f, 0x96, 0x00, 0x56, 0x09, 0x73, 0xe9, 0x88, 0x89, 0xf3, 0xe3, 0xd2, 0x4e, + 0x68, 0x91, 0xb6, 0xe7, 0x87, 0x4e, 0x1c, 0xef, 0x41, 0xde, 0x0d, 0x77, 0x7d, 0x19, 0x0a, 0x81, + 0x80, 0xbb, 0x58, 0x74, 0x67, 0xfe, 0xa0, 0x8b, 0xac, 0x0d, 0xec, 0xa9, 0xf9, 0x9b, 0xa1, 0x2f, + 0xe5, 0xdf, 0x49, 0x90, 0xa5, 0xbd, 0x5a, 0xc3, 0x9e, 0x1e, 0x99, 0x48, 0xe9, 0x6d, 0x4c, 0xe4, + 0xfd, 0x00, 0x8c, 0x8e, 0x6b, 0xbe, 0x81, 0xb9, 0x7c, 0x65, 0x69, 0x49, 0xc3, 0x7c, 0x03, 0xa3, + 0xa7, 0x7d, 0xae, 0x27, 0x47, 0x70, 0x5d, 0x24, 0x6f, 0x39, 0xef, 0x8f, 0xc3, 0xa4, 0xd5, 0xeb, + 0x68, 0xec, 0x30, 0x29, 0x15, 0x5a, 0xab, 0xd7, 0x69, 0xde, 0x76, 0x95, 0x1b, 0x30, 0xd9, 0xbc, + 0xcd, 0xde, 0xef, 0x39, 0x09, 0x59, 0xc7, 0xb6, 0xb9, 0x37, 0xc8, 0x1c, 0xf1, 0x0c, 0x29, 0xa0, + 0xce, 0x4f, 0x5c, 0xce, 0xff, 0xc2, 0xb8, 0x6e, 0x3f, 0x77, 0xf8, 0xcf, 0xff, 0x86, 0x04, 0x85, + 0xc8, 0x8a, 0x42, 0x8f, 0xc2, 0xf1, 0x46, 0x7d, 0x65, 0xbd, 0xb6, 0xac, 0xad, 0x35, 0x56, 0xfa, + 0x02, 0xec, 0xb9, 0xd2, 0x9d, 0xbb, 0x0b, 0x39, 0x7e, 0x55, 0x75, 0x18, 0xf4, 0xa6, 0x5a, 0x63, + 0x91, 0x36, 0x83, 0xde, 0x74, 0xf0, 0x4d, 0xdb, 0xc3, 0x14, 0xfa, 0x71, 0x38, 0x11, 0x03, 0xed, + 0x5f, 0x58, 0x9d, 0xba, 0x73, 0x77, 0xa1, 0xb0, 0xe9, 0x60, 0x26, 0x6a, 0x14, 0x63, 0x11, 0x66, + 0x07, 0x31, 0x58, 0x56, 0x43, 0x5e, 0x98, 0x93, 0xef, 0xdc, 0x5d, 0xc8, 0x0b, 0xdd, 0x41, 0xe0, + 0xdf, 0xf5, 0x1b, 0xab, 0x1f, 0xcd, 0xc2, 0x09, 0xf6, 0x86, 0x95, 0xc6, 0x62, 0x40, 0xf6, 0xc1, + 0x43, 0xd2, 0x7c, 0xb8, 0x6a, 0xf4, 0x8f, 0x13, 0x28, 0x2f, 0xc3, 0x74, 0xdd, 0xf2, 0xb0, 0xb3, + 0xa3, 0x87, 0x7f, 0x5e, 0x38, 0xf6, 0x07, 0x7b, 0x17, 0x22, 0xaf, 0x6c, 0xf2, 0x08, 0x3e, 0x5c, + 0xa4, 0x7c, 0x93, 0x04, 0x72, 0xc3, 0xd0, 0xdb, 0xba, 0xf3, 0x76, 0x49, 0xa1, 0xa7, 0xc5, 0x8f, + 0x52, 0xf0, 0x0b, 0x22, 0xc9, 0x73, 0xc5, 0x4b, 0xb3, 0x8b, 0xe1, 0xc1, 0x2d, 0xb2, 0x96, 0xa8, + 0x0e, 0x66, 0x3f, 0x46, 0x41, 0xfe, 0x3c, 0xff, 0x0a, 0x40, 0x50, 0x81, 0x4e, 0xc2, 0xf1, 0xc6, + 0x52, 0x65, 0xb5, 0xe2, 0xe7, 0x69, 0x1a, 0x9b, 0xb5, 0x25, 0xf6, 0xcb, 0xf7, 0x47, 0xd0, 0x31, + 0x40, 0xe1, 0x4a, 0xff, 0x77, 0xe6, 0x8e, 0xc2, 0x54, 0xb8, 0x9c, 0xfd, 0x0c, 0x79, 0xa2, 0x7c, + 0x15, 0x4a, 0xec, 0x37, 0x92, 0x89, 0x01, 0xc4, 0x2d, 0xcd, 0xb4, 0xd0, 0x88, 0x9f, 0x1c, 0x9e, + 0xfd, 0x95, 0xff, 0xca, 0x7e, 0xa2, 0xa2, 0xc0, 0x10, 0x2b, 0x04, 0xaf, 0x6e, 0x95, 0x9b, 0x30, + 0x43, 0x6f, 0x84, 0xd3, 0x9f, 0x95, 0xd1, 0x4c, 0xc1, 0xff, 0xd1, 0x6f, 0x08, 0x12, 0x7a, 0xc9, + 0x73, 0x59, 0x75, 0x3a, 0x40, 0xf7, 0x67, 0xaf, 0xfc, 0x72, 0xf0, 0xa3, 0x22, 0x7e, 0x07, 0x47, + 0x52, 0xfc, 0x55, 0xde, 0x43, 0xf1, 0x84, 0xb0, 0xe8, 0xe2, 0x2a, 0x4c, 0xe9, 0x86, 0x81, 0xbb, + 0x91, 0xfe, 0x8d, 0x78, 0xb6, 0x4d, 0x8c, 0x56, 0xe6, 0x98, 0x41, 0xd7, 0x9e, 0x86, 0xb4, 0x4b, + 0x27, 0x65, 0x14, 0x09, 0xd1, 0x1d, 0x0e, 0x5e, 0xae, 0x41, 0x91, 0x89, 0x81, 0x3f, 0xa2, 0x11, + 0x04, 0xfe, 0x23, 0x27, 0x90, 0xa7, 0x68, 0x62, 0x34, 0x16, 0x4c, 0xb5, 0xb0, 0xd1, 0xd6, 0x1d, + 0x1c, 0x1a, 0xcd, 0xc1, 0x4f, 0x17, 0xff, 0xcb, 0x4f, 0x3f, 0xee, 0xef, 0xa1, 0x87, 0x84, 0x2e, + 0x66, 0xb1, 0xa8, 0x32, 0xa7, 0x1d, 0x8c, 0x17, 0x43, 0x51, 0xb4, 0xc7, 0xc7, 0x7d, 0x70, 0x63, + 0xff, 0x8a, 0x37, 0x76, 0x2a, 0x4e, 0xc2, 0x43, 0x2d, 0x15, 0x38, 0x55, 0x56, 0x51, 0xae, 0x42, + 0x61, 0xc7, 0x6c, 0x87, 0xa6, 0xfb, 0xe0, 0x56, 0xfe, 0xf5, 0xa7, 0x1f, 0x67, 0x0b, 0x8d, 0x20, + 0x71, 0xd6, 0xdc, 0xd3, 0x4f, 0xa6, 0x50, 0xea, 0xcf, 0x85, 0xbb, 0xea, 0x6b, 0xa7, 0x4f, 0x24, + 0xe1, 0x14, 0x07, 0xde, 0xd6, 0x5d, 0x4c, 0x14, 0x17, 0xf6, 0xf4, 0x8b, 0x17, 0x0c, 0xdb, 0xb4, + 0x82, 0xa4, 0x22, 0x55, 0x58, 0xa4, 0x7e, 0x91, 0xd7, 0x0f, 0xc9, 0x69, 0x0d, 0x57, 0x74, 0x73, + 0x83, 0x3f, 0xdb, 0xa3, 0xb4, 0x21, 0xb5, 0x64, 0x9b, 0x16, 0xf1, 0xb9, 0x5a, 0xd8, 0xb2, 0x3b, + 0xe2, 0xbc, 0x22, 0xfd, 0x40, 0x57, 0x21, 0xad, 0x77, 0xec, 0x9e, 0xc5, 0xdf, 0x6f, 0xab, 0x3e, + 0x4e, 0x6c, 0xe1, 0x6f, 0xbd, 0x35, 0x7f, 0x94, 0x91, 0x75, 0x5b, 0x37, 0x16, 0x4d, 0xfb, 0x42, + 0x47, 0xf7, 0xf6, 0xc8, 0x24, 0xff, 0xfa, 0x67, 0x1e, 0x03, 0xde, 0x5e, 0xdd, 0xf2, 0x3e, 0xf9, + 0xfb, 0x3f, 0x7d, 0x5e, 0x52, 0x39, 0x3e, 0x4b, 0x3b, 0x2a, 0x5d, 0x98, 0x5c, 0xc6, 0xc6, 0x01, + 0x0d, 0xd6, 0xfb, 0x1a, 0xbc, 0xc8, 0x1b, 0x3c, 0x39, 0xd8, 0x20, 0xfb, 0x1d, 0xc1, 0x65, 0x6c, + 0x84, 0x9a, 0x5d, 0xc6, 0x46, 0xb4, 0xc5, 0xea, 0xf2, 0x6f, 0xfe, 0xee, 0xa9, 0x23, 0xef, 0xff, + 0xfc, 0xa9, 0x23, 0x43, 0xa7, 0x4c, 0x19, 0xfd, 0x2b, 0x37, 0xfe, 0x4c, 0xfd, 0x6f, 0x09, 0x4e, + 0xf4, 0x9b, 0x07, 0xdd, 0xda, 0x1f, 0xf6, 0xe6, 0xc1, 0x65, 0x48, 0x56, 0xac, 0x7d, 0x74, 0x82, + 0xbd, 0xe6, 0xaa, 0xf5, 0x9c, 0xb6, 0x38, 0xe6, 0x49, 0xbe, 0xb7, 0x9c, 0x76, 0xf4, 0x48, 0x81, + 0xff, 0x32, 0xd7, 0x77, 0x1d, 0xf2, 0xb9, 0x83, 0x4c, 0xc5, 0xda, 0x17, 0x0f, 0x1d, 0x3c, 0x3a, + 0xe6, 0x43, 0x07, 0xba, 0xb5, 0xdf, 0xdd, 0x3e, 0xec, 0xfb, 0x06, 0x77, 0x9e, 0x82, 0x07, 0x38, + 0x8f, 0x5c, 0x4f, 0xbf, 0x61, 0x5a, 0xbb, 0xbe, 0xb0, 0xf2, 0x6f, 0xce, 0x8a, 0x63, 0x7c, 0x42, + 0x44, 0xa9, 0x10, 0xd9, 0x41, 0x09, 0x9c, 0x3b, 0xf0, 0xc1, 0x84, 0xb9, 0x83, 0xb3, 0xc9, 0x73, + 0x23, 0xd6, 0xcd, 0x41, 0x8b, 0x61, 0xc8, 0xea, 0x19, 0x3a, 0xbd, 0x23, 0x5f, 0x0f, 0x1b, 0x99, + 0x4c, 0xfe, 0xb0, 0x04, 0xc5, 0xab, 0xa6, 0xeb, 0xd9, 0x8e, 0x69, 0xe8, 0x6d, 0xba, 0x91, 0xfe, + 0xfc, 0xd8, 0xde, 0x7f, 0x35, 0x4b, 0x96, 0x02, 0x5f, 0x54, 0x7b, 0xc2, 0x01, 0x4f, 0xdf, 0xd4, + 0xdb, 0xcc, 0xf3, 0x0e, 0xeb, 0xdd, 0x7e, 0xb6, 0x87, 0xf6, 0x97, 0xc3, 0x54, 0x18, 0x6e, 0x39, + 0x31, 0x2b, 0x29, 0xdf, 0x97, 0x80, 0x12, 0x0d, 0x19, 0x5c, 0x7a, 0x20, 0x8c, 0x1e, 0x39, 0xba, + 0x06, 0x29, 0x47, 0xf7, 0xb8, 0x13, 0x52, 0xbd, 0x7c, 0xe8, 0x95, 0xc8, 0x5a, 0xa1, 0x34, 0xd0, + 0x7b, 0x20, 0xd3, 0xd1, 0x6f, 0x6b, 0x94, 0x5e, 0xe2, 0x6d, 0xd1, 0x9b, 0xec, 0xe8, 0xb7, 0x49, + 0xff, 0xd0, 0x37, 0x40, 0x89, 0x90, 0x34, 0xf6, 0x74, 0x6b, 0x17, 0x33, 0xca, 0xc9, 0xb7, 0x45, + 0xb9, 0xd0, 0xd1, 0x6f, 0x2f, 0x51, 0x6a, 0x84, 0x3e, 0xd7, 0x58, 0xbf, 0x28, 0xf1, 0xd3, 0x55, + 0x94, 0x31, 0x48, 0x07, 0xd9, 0xf0, 0xbf, 0x68, 0xa3, 0xe2, 0xd0, 0xf2, 0xd9, 0x61, 0xbc, 0xef, + 0x63, 0x6b, 0xb5, 0x40, 0xba, 0xf7, 0xb9, 0xb7, 0xe6, 0x25, 0xd6, 0x6a, 0xc9, 0x18, 0x60, 0x7b, + 0x8e, 0x9d, 0x1a, 0xd3, 0x68, 0x66, 0x3b, 0x31, 0x32, 0x08, 0x2d, 0x88, 0x20, 0x94, 0x11, 0x04, + 0x86, 0x4d, 0xea, 0xf9, 0x18, 0xfe, 0x44, 0x82, 0xdc, 0x72, 0xc8, 0x4f, 0x9c, 0x85, 0xc9, 0x8e, + 0x6d, 0x99, 0x37, 0xb0, 0xe3, 0x9f, 0x3a, 0x67, 0x9f, 0x68, 0x0e, 0x32, 0xec, 0x17, 0x20, 0xbd, + 0x7d, 0xb1, 0xdb, 0x24, 0xbe, 0x09, 0xd6, 0x2d, 0xbc, 0xed, 0x9a, 0x82, 0xcf, 0xaa, 0xf8, 0x44, + 0x0f, 0x83, 0xec, 0x62, 0xa3, 0xe7, 0x98, 0xde, 0xbe, 0x66, 0xd8, 0x96, 0xa7, 0x1b, 0x1e, 0x3f, + 0xac, 0x54, 0x12, 0xe5, 0x4b, 0xac, 0x98, 0x10, 0x69, 0x61, 0x4f, 0x37, 0xdb, 0xec, 0x32, 0x76, + 0x56, 0x15, 0x9f, 0x68, 0x25, 0xb4, 0xfd, 0x9f, 0xf6, 0x77, 0x27, 0x62, 0x39, 0x2a, 0x7e, 0x6f, + 0x9e, 0x0a, 0x33, 0x1d, 0xf5, 0x91, 0xe0, 0xac, 0x00, 0x1f, 0xf3, 0x0e, 0x64, 0x04, 0x18, 0x7a, + 0x08, 0x4a, 0x5d, 0xc7, 0xa6, 0x56, 0xbf, 0x6b, 0x1a, 0x5a, 0xcf, 0x31, 0xf9, 0xb8, 0x0b, 0xbc, + 0x78, 0xd3, 0x34, 0xb6, 0x1c, 0x13, 0x3d, 0x0a, 0xc8, 0xb5, 0x0d, 0x7a, 0x11, 0x5c, 0xb7, 0x5a, + 0x6d, 0xa2, 0xb0, 0x4d, 0x76, 0xd6, 0x2c, 0xab, 0xca, 0xac, 0xe6, 0x2a, 0xad, 0xd8, 0x72, 0x4c, + 0x97, 0xb7, 0x73, 0x77, 0x32, 0x7c, 0xb6, 0x68, 0x09, 0x64, 0xbb, 0x8b, 0x9d, 0x48, 0xc6, 0x87, + 0x2d, 0x9f, 0xd9, 0x5f, 0xff, 0xcc, 0x63, 0x33, 0x7c, 0x3c, 0x3c, 0xe7, 0xc3, 0x5e, 0x71, 0x54, + 0x4b, 0x02, 0x43, 0xa4, 0x82, 0x5e, 0x8d, 0x1c, 0x8c, 0xef, 0x6d, 0x07, 0x6f, 0x32, 0xcd, 0x0c, + 0x48, 0x41, 0xc5, 0xda, 0xaf, 0xce, 0xfe, 0x6a, 0x40, 0x9a, 0xc7, 0x8b, 0x9b, 0xf4, 0xa4, 0x51, + 0xf8, 0x90, 0x3c, 0x25, 0x83, 0x8e, 0x41, 0xfa, 0x75, 0xdd, 0x6c, 0x8b, 0x5f, 0xf7, 0x55, 0xf9, + 0x17, 0x2a, 0xfb, 0x07, 0x3f, 0x53, 0x34, 0x83, 0xa3, 0x0c, 0x63, 0x7d, 0xd5, 0xb6, 0x5a, 0xd1, + 0xf3, 0x9e, 0x68, 0x09, 0xd2, 0x9e, 0x7d, 0x03, 0x5b, 0x7c, 0x46, 0xab, 0x8f, 0x1c, 0xc2, 0x47, + 0x50, 0x39, 0x2a, 0xfa, 0x3a, 0x90, 0x5b, 0xb8, 0x8d, 0x77, 0x59, 0x2a, 0x61, 0x4f, 0x77, 0x30, + 0xcb, 0x69, 0xdf, 0x93, 0x07, 0x50, 0xf2, 0x49, 0x35, 0x28, 0x25, 0xb4, 0x19, 0x0d, 0x9d, 0x26, + 0xfd, 0x3b, 0x5d, 0xb1, 0x63, 0x0c, 0x2d, 0x95, 0xb0, 0xba, 0x8c, 0x84, 0x5a, 0x0f, 0x83, 0xdc, + 0xb3, 0xb6, 0x6d, 0x8b, 0xfe, 0x28, 0x26, 0x4f, 0x62, 0x65, 0xd8, 0x65, 0x09, 0xbf, 0x9c, 0x5f, + 0x96, 0xd8, 0x84, 0x62, 0x00, 0x4a, 0x97, 0x74, 0xf6, 0xb0, 0x4b, 0xba, 0xe0, 0x13, 0x20, 0x20, + 0x68, 0x0d, 0x20, 0x50, 0x1a, 0x34, 0xcd, 0x9e, 0x1b, 0x3e, 0x63, 0x81, 0xfa, 0x09, 0x0f, 0x26, + 0x44, 0x00, 0x59, 0x30, 0xdd, 0x31, 0x2d, 0xcd, 0xc5, 0xed, 0x1d, 0x8d, 0x73, 0x8e, 0xd0, 0xcd, + 0x51, 0xf6, 0xbf, 0x78, 0x88, 0xd9, 0xfc, 0xad, 0xcf, 0x3c, 0x56, 0x0a, 0x5c, 0xa7, 0x85, 0xc7, + 0x17, 0x9f, 0x7c, 0x5a, 0x9d, 0xea, 0x98, 0x56, 0x03, 0xb7, 0x77, 0x96, 0x7d, 0xc2, 0xe8, 0x79, + 0x38, 0x19, 0x30, 0xc4, 0xb6, 0xb4, 0x3d, 0xbb, 0xdd, 0xd2, 0x1c, 0xbc, 0xa3, 0x19, 0xd4, 0xf1, + 0xcb, 0x53, 0x36, 0x1e, 0xf7, 0x41, 0x36, 0xac, 0xab, 0x76, 0xbb, 0xa5, 0xe2, 0x9d, 0x25, 0x52, + 0x8d, 0xce, 0x40, 0xc0, 0x0d, 0xcd, 0x6c, 0xb9, 0xb3, 0x85, 0x85, 0xe4, 0xb9, 0x94, 0x9a, 0xf7, + 0x0b, 0xeb, 0x2d, 0xb7, 0x9c, 0xf9, 0xe0, 0x9b, 0xf3, 0x47, 0xbe, 0xf8, 0xe6, 0xfc, 0x11, 0xe5, + 0x0a, 0x7d, 0xb5, 0x8d, 0x2f, 0x2d, 0xec, 0xa2, 0xcb, 0x90, 0xd5, 0xc5, 0x07, 0x7b, 0xf8, 0xf0, + 0x80, 0xa5, 0x19, 0x80, 0x2a, 0x9f, 0x92, 0x20, 0xbd, 0x7c, 0x7d, 0x53, 0x37, 0x1d, 0x54, 0x23, + 0x81, 0x91, 0x90, 0xd5, 0x71, 0x57, 0x79, 0x20, 0xde, 0x62, 0x99, 0xaf, 0x0f, 0x4b, 0x0f, 0x67, + 0xab, 0xa7, 0x7f, 0xfd, 0x33, 0x8f, 0xdd, 0xcf, 0xc9, 0x5c, 0xef, 0xcb, 0x14, 0x0b, 0x7a, 0xfd, + 0x19, 0xe4, 0xd0, 0x98, 0xaf, 0xc1, 0x24, 0xeb, 0xaa, 0x8b, 0x5e, 0x82, 0x89, 0x2e, 0xf9, 0x83, + 0x9f, 0xb8, 0x3e, 0x35, 0x54, 0xe6, 0x29, 0x7c, 0x58, 0x42, 0x18, 0x9e, 0xf2, 0xed, 0x09, 0x80, + 0xe5, 0xeb, 0xd7, 0x9b, 0x8e, 0xd9, 0x6d, 0x63, 0xef, 0x9d, 0x1a, 0xfb, 0x16, 0x1c, 0x0d, 0x65, + 0x0e, 0x1d, 0xe3, 0xf0, 0xe3, 0x9f, 0x0e, 0x72, 0x88, 0x8e, 0x11, 0x4b, 0xb6, 0xe5, 0x7a, 0x3e, + 0xd9, 0xe4, 0xe1, 0xc9, 0x2e, 0xbb, 0xde, 0x20, 0x67, 0x5f, 0x81, 0x5c, 0xc0, 0x0c, 0x17, 0xd5, + 0x21, 0xe3, 0xf1, 0xbf, 0x39, 0x83, 0x95, 0xe1, 0x0c, 0x16, 0x68, 0x61, 0x26, 0xfb, 0xe8, 0xca, + 0x5f, 0x48, 0x00, 0xa1, 0x35, 0xf2, 0xd7, 0x53, 0xc6, 0x48, 0x78, 0xc6, 0x95, 0x73, 0xf2, 0x9e, + 0xc3, 0x33, 0x46, 0x20, 0xc4, 0xd4, 0xef, 0x4c, 0xc0, 0xf4, 0x96, 0x58, 0xbd, 0x7f, 0xfd, 0x79, + 0xb0, 0x05, 0x93, 0xd8, 0xf2, 0x1c, 0xd3, 0xbf, 0x31, 0xf0, 0xf8, 0xb0, 0x39, 0x8f, 0x19, 0x54, + 0xcd, 0xf2, 0x9c, 0xfd, 0xb0, 0x04, 0x08, 0x5a, 0x21, 0x7e, 0xfc, 0x60, 0x12, 0x66, 0x87, 0xa1, + 0xa2, 0xb3, 0x50, 0x32, 0x1c, 0x4c, 0x0b, 0xa2, 0xef, 0x70, 0x16, 0x45, 0x31, 0x37, 0x3b, 0x2a, + 0x10, 0xcf, 0x92, 0x08, 0x17, 0x01, 0xbd, 0x37, 0x57, 0xb2, 0x18, 0x50, 0xa0, 0x86, 0xa7, 0x09, + 0x25, 0xf1, 0x54, 0xce, 0xb6, 0xde, 0xd6, 0x2d, 0x43, 0xb8, 0xdc, 0x87, 0xb2, 0xf9, 0xe2, 0xb9, + 0x9d, 0x2a, 0x23, 0x81, 0x6a, 0x30, 0x29, 0xa8, 0xa5, 0x0e, 0x4f, 0x4d, 0xe0, 0xa2, 0x07, 0x21, + 0x1f, 0x36, 0x0c, 0xd4, 0x1b, 0x49, 0xd1, 0xe7, 0x87, 0x73, 0x21, 0xdb, 0x30, 0xca, 0xfa, 0xa4, + 0x0f, 0xb4, 0x3e, 0xdc, 0xe9, 0xfb, 0xc1, 0x24, 0x4c, 0xa9, 0xb8, 0xf5, 0x37, 0x7f, 0x6a, 0x36, + 0x01, 0xd8, 0x72, 0x25, 0xda, 0x94, 0xcf, 0xce, 0x3d, 0xac, 0xf9, 0x2c, 0x23, 0xb2, 0xec, 0xd2, + 0x1f, 0x57, 0x1f, 0x9c, 0xa5, 0x77, 0x7e, 0x86, 0x7e, 0x3b, 0x01, 0xf9, 0xf0, 0x0c, 0xfd, 0xad, + 0x34, 0x5c, 0x68, 0x3d, 0x50, 0x55, 0x6c, 0xb3, 0xfc, 0xe1, 0x61, 0xaa, 0x6a, 0x40, 0x9a, 0x47, + 0xe8, 0xa8, 0x2f, 0x25, 0x21, 0xcd, 0x2f, 0xde, 0x6e, 0x0c, 0xf8, 0xb7, 0x23, 0x1f, 0x62, 0x2e, + 0x88, 0xb7, 0xac, 0x63, 0xdd, 0xdb, 0x07, 0xa1, 0x48, 0x02, 0xfb, 0xc8, 0x6d, 0x5e, 0xe9, 0x5c, + 0x81, 0xc6, 0xe7, 0xc1, 0xe1, 0x26, 0x34, 0x0f, 0x39, 0x02, 0x16, 0xe8, 0x62, 0x02, 0x03, 0x1d, + 0xfd, 0x76, 0x8d, 0x95, 0xa0, 0x8b, 0x80, 0xf6, 0xfc, 0x6c, 0x8b, 0x16, 0x30, 0x42, 0x3a, 0x57, + 0xa0, 0x6a, 0x61, 0x2a, 0xa8, 0x15, 0x28, 0xf7, 0x03, 0x90, 0x9e, 0x68, 0x2c, 0x33, 0xc9, 0x7f, + 0x2a, 0x9b, 0x94, 0x2c, 0xd3, 0xec, 0xe4, 0xb7, 0x48, 0xcc, 0x55, 0xee, 0x4b, 0x01, 0xf0, 0x48, + 0xa5, 0x39, 0xc6, 0xc2, 0xf8, 0xd3, 0xb7, 0xe6, 0xe7, 0xf6, 0xf5, 0x4e, 0xbb, 0xac, 0xc4, 0xd0, + 0x51, 0xe2, 0xb2, 0x12, 0xc4, 0x81, 0x8e, 0xa6, 0x10, 0x50, 0x1d, 0xe4, 0x1b, 0x78, 0x5f, 0x73, + 0xf8, 0xaf, 0xc9, 0x6b, 0x3b, 0x58, 0xbc, 0x87, 0x7e, 0x62, 0x31, 0x26, 0x4f, 0xbc, 0xb8, 0x64, + 0x9b, 0x16, 0xdf, 0xc6, 0x2c, 0xde, 0xc0, 0xfb, 0x2a, 0xc7, 0xbb, 0x82, 0x71, 0xf9, 0x01, 0xb2, + 0x5a, 0xee, 0xfc, 0xfe, 0x4f, 0x9f, 0x3f, 0x19, 0xca, 0x79, 0xde, 0xf6, 0x93, 0x7b, 0x6c, 0x8a, + 0x89, 0xf3, 0x8b, 0x02, 0x43, 0x14, 0xba, 0xc1, 0x0d, 0xa1, 0x78, 0x41, 0x3a, 0x38, 0x0e, 0x09, + 0xf0, 0x23, 0x71, 0x48, 0x68, 0x89, 0xbe, 0x18, 0xd8, 0x81, 0xc4, 0xa8, 0xd1, 0x84, 0xa5, 0x93, + 0x23, 0xd1, 0x95, 0x7f, 0x44, 0xf9, 0x4f, 0x12, 0x9c, 0x18, 0x90, 0x66, 0xbf, 0xcb, 0x06, 0x20, + 0x27, 0x54, 0x49, 0xa5, 0x42, 0x5c, 0xe2, 0xb9, 0xb7, 0xc5, 0x31, 0xe5, 0x0c, 0x18, 0x82, 0x77, + 0xc6, 0xa0, 0x71, 0x4d, 0xf6, 0x2b, 0x12, 0xcc, 0x84, 0x3b, 0xe0, 0x0f, 0xa5, 0x01, 0xf9, 0x70, + 0xd3, 0x7c, 0x10, 0x0f, 0x8c, 0x33, 0x88, 0x70, 0xff, 0x23, 0x44, 0xd0, 0xf5, 0x40, 0x63, 0xb0, + 0x94, 0xe2, 0xc5, 0xb1, 0x99, 0x22, 0x3a, 0x16, 0xab, 0x39, 0xd8, 0xdc, 0x7c, 0x49, 0x82, 0xd4, + 0xa6, 0x6d, 0xb7, 0xd1, 0xfb, 0x60, 0xca, 0xb2, 0x3d, 0x8d, 0xac, 0x2c, 0xdc, 0xd2, 0x78, 0xfa, + 0x80, 0x69, 0xe3, 0xda, 0x81, 0xbc, 0xfa, 0x83, 0xb7, 0xe6, 0x07, 0x31, 0xe3, 0xf6, 0x1d, 0x4a, + 0x96, 0xed, 0x55, 0x29, 0x50, 0x93, 0x65, 0x18, 0x76, 0xa0, 0x10, 0x6d, 0x8e, 0x69, 0xec, 0xca, + 0xa8, 0xe6, 0x0a, 0x23, 0x9b, 0xca, 0x6f, 0x87, 0xda, 0x61, 0x3f, 0x3d, 0xf4, 0xc7, 0x64, 0xe6, + 0xbe, 0x01, 0xe4, 0xeb, 0xfd, 0x57, 0x44, 0xaf, 0xc0, 0xa4, 0xb8, 0x12, 0x2a, 0x8d, 0x7b, 0xdd, + 0x34, 0xcc, 0x4f, 0x8e, 0x4c, 0x73, 0xb6, 0x9f, 0x4b, 0xc0, 0x89, 0x25, 0xdb, 0x72, 0x79, 0xb2, + 0x87, 0xaf, 0x6a, 0x96, 0x60, 0xde, 0x47, 0x0f, 0x0f, 0x49, 0x45, 0xe5, 0x07, 0x13, 0x4e, 0xd7, + 0xa1, 0x44, 0x4c, 0xac, 0x61, 0x5b, 0x6f, 0x33, 0xdf, 0x54, 0xb0, 0xdb, 0x2d, 0xde, 0xa3, 0x1b, + 0x78, 0x9f, 0xd0, 0xb5, 0xf0, 0xad, 0x08, 0xdd, 0xe4, 0xbd, 0xd1, 0xb5, 0xf0, 0xad, 0x10, 0xdd, + 0xe0, 0xdc, 0x50, 0x2a, 0x72, 0x0b, 0xe9, 0x32, 0x24, 0x89, 0x2a, 0x9c, 0x38, 0x84, 0xf2, 0x20, + 0x08, 0x21, 0xb3, 0xd6, 0x80, 0x13, 0x3c, 0x5b, 0xe0, 0x6e, 0xec, 0x50, 0x8e, 0x62, 0x3a, 0xa0, + 0x97, 0xf1, 0x7e, 0x4c, 0xea, 0x20, 0x3f, 0x56, 0xea, 0xe0, 0xfc, 0xcf, 0x49, 0x00, 0x41, 0xde, + 0x0c, 0x3d, 0x0a, 0xc7, 0xab, 0x1b, 0xeb, 0xcb, 0xc1, 0x85, 0x8c, 0xd0, 0xf6, 0xba, 0x38, 0xa9, + 0xe1, 0x76, 0xb1, 0x61, 0xee, 0x98, 0xb8, 0x85, 0x1e, 0x82, 0x99, 0x28, 0x34, 0xf9, 0xaa, 0x2d, + 0xcb, 0xd2, 0x5c, 0xfe, 0xce, 0xdd, 0x85, 0x0c, 0x8b, 0x13, 0x70, 0x0b, 0x9d, 0x83, 0xa3, 0x83, + 0x70, 0xf5, 0xf5, 0x15, 0x39, 0x31, 0x57, 0xb8, 0x73, 0x77, 0x21, 0xeb, 0x07, 0x14, 0x48, 0x01, + 0x14, 0x86, 0xe4, 0xf4, 0x92, 0x73, 0x70, 0xe7, 0xee, 0x42, 0x9a, 0x2d, 0x19, 0x7e, 0x93, 0xe3, + 0xeb, 0x01, 0xea, 0xd6, 0x8e, 0xa3, 0x1b, 0x54, 0x35, 0xcc, 0xc1, 0xb1, 0xfa, 0xfa, 0x15, 0xb5, + 0xb2, 0xd4, 0xac, 0x6f, 0xac, 0xf7, 0x9d, 0x0a, 0x88, 0xd6, 0x2d, 0x6f, 0x6c, 0x55, 0x57, 0x6b, + 0x5a, 0xa3, 0xbe, 0xb2, 0xce, 0xae, 0x5d, 0x45, 0xea, 0xde, 0xbb, 0xde, 0xac, 0xaf, 0xd5, 0xe4, + 0x44, 0xf5, 0xf2, 0xd0, 0x2d, 0xb9, 0xfb, 0x22, 0x8b, 0x31, 0x30, 0x47, 0x91, 0xcd, 0xb8, 0xff, + 0x1b, 0x00, 0x00, 0xff, 0xff, 0x99, 0x81, 0xa8, 0x52, 0xec, 0xa7, 0x00, 0x00, +>>>>>>> 234cdc45f (refactor(x/staking)!: removing unbonding queue index (#22795)) } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r)