// Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
package abci

import (
	crypto "cosmossdk.io/api/tendermint/crypto"
	types "cosmossdk.io/api/tendermint/types"
	fmt "fmt"
	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"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	io "io"
	reflect "reflect"
	sync "sync"
)

var (
	md_Request                       protoreflect.MessageDescriptor
	fd_Request_echo                  protoreflect.FieldDescriptor
	fd_Request_flush                 protoreflect.FieldDescriptor
	fd_Request_info                  protoreflect.FieldDescriptor
	fd_Request_init_chain            protoreflect.FieldDescriptor
	fd_Request_query                 protoreflect.FieldDescriptor
	fd_Request_check_tx              protoreflect.FieldDescriptor
	fd_Request_commit                protoreflect.FieldDescriptor
	fd_Request_list_snapshots        protoreflect.FieldDescriptor
	fd_Request_offer_snapshot        protoreflect.FieldDescriptor
	fd_Request_load_snapshot_chunk   protoreflect.FieldDescriptor
	fd_Request_apply_snapshot_chunk  protoreflect.FieldDescriptor
	fd_Request_prepare_proposal      protoreflect.FieldDescriptor
	fd_Request_process_proposal      protoreflect.FieldDescriptor
	fd_Request_extend_vote           protoreflect.FieldDescriptor
	fd_Request_verify_vote_extension protoreflect.FieldDescriptor
	fd_Request_finalize_block        protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_Request = File_tendermint_abci_types_proto.Messages().ByName("Request")
	fd_Request_echo = md_Request.Fields().ByName("echo")
	fd_Request_flush = md_Request.Fields().ByName("flush")
	fd_Request_info = md_Request.Fields().ByName("info")
	fd_Request_init_chain = md_Request.Fields().ByName("init_chain")
	fd_Request_query = md_Request.Fields().ByName("query")
	fd_Request_check_tx = md_Request.Fields().ByName("check_tx")
	fd_Request_commit = md_Request.Fields().ByName("commit")
	fd_Request_list_snapshots = md_Request.Fields().ByName("list_snapshots")
	fd_Request_offer_snapshot = md_Request.Fields().ByName("offer_snapshot")
	fd_Request_load_snapshot_chunk = md_Request.Fields().ByName("load_snapshot_chunk")
	fd_Request_apply_snapshot_chunk = md_Request.Fields().ByName("apply_snapshot_chunk")
	fd_Request_prepare_proposal = md_Request.Fields().ByName("prepare_proposal")
	fd_Request_process_proposal = md_Request.Fields().ByName("process_proposal")
	fd_Request_extend_vote = md_Request.Fields().ByName("extend_vote")
	fd_Request_verify_vote_extension = md_Request.Fields().ByName("verify_vote_extension")
	fd_Request_finalize_block = md_Request.Fields().ByName("finalize_block")
}

var _ protoreflect.Message = (*fastReflection_Request)(nil)

type fastReflection_Request Request

func (x *Request) ProtoReflect() protoreflect.Message {
	return (*fastReflection_Request)(x)
}

func (x *Request) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_Request_messageType fastReflection_Request_messageType
var _ protoreflect.MessageType = fastReflection_Request_messageType{}

type fastReflection_Request_messageType struct{}

func (x fastReflection_Request_messageType) Zero() protoreflect.Message {
	return (*fastReflection_Request)(nil)
}
func (x fastReflection_Request_messageType) New() protoreflect.Message {
	return new(fastReflection_Request)
}
func (x fastReflection_Request_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_Request
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_Request) Descriptor() protoreflect.MessageDescriptor {
	return md_Request
}

// 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_Request) Type() protoreflect.MessageType {
	return _fastReflection_Request_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_Request) New() protoreflect.Message {
	return new(fastReflection_Request)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_Request) Interface() protoreflect.ProtoMessage {
	return (*Request)(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_Request) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Value != nil {
		switch o := x.Value.(type) {
		case *Request_Echo:
			v := o.Echo
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_echo, value) {
				return
			}
		case *Request_Flush:
			v := o.Flush
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_flush, value) {
				return
			}
		case *Request_Info:
			v := o.Info
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_info, value) {
				return
			}
		case *Request_InitChain:
			v := o.InitChain
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_init_chain, value) {
				return
			}
		case *Request_Query:
			v := o.Query
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_query, value) {
				return
			}
		case *Request_CheckTx:
			v := o.CheckTx
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_check_tx, value) {
				return
			}
		case *Request_Commit:
			v := o.Commit
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_commit, value) {
				return
			}
		case *Request_ListSnapshots:
			v := o.ListSnapshots
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_list_snapshots, value) {
				return
			}
		case *Request_OfferSnapshot:
			v := o.OfferSnapshot
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_offer_snapshot, value) {
				return
			}
		case *Request_LoadSnapshotChunk:
			v := o.LoadSnapshotChunk
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_load_snapshot_chunk, value) {
				return
			}
		case *Request_ApplySnapshotChunk:
			v := o.ApplySnapshotChunk
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_apply_snapshot_chunk, value) {
				return
			}
		case *Request_PrepareProposal:
			v := o.PrepareProposal
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_prepare_proposal, value) {
				return
			}
		case *Request_ProcessProposal:
			v := o.ProcessProposal
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_process_proposal, value) {
				return
			}
		case *Request_ExtendVote:
			v := o.ExtendVote
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_extend_vote, value) {
				return
			}
		case *Request_VerifyVoteExtension:
			v := o.VerifyVoteExtension
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_verify_vote_extension, value) {
				return
			}
		case *Request_FinalizeBlock:
			v := o.FinalizeBlock
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Request_finalize_block, 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_Request) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.Request.echo":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_Echo); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.flush":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_Flush); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.info":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_Info); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.init_chain":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_InitChain); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.query":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_Query); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.check_tx":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_CheckTx); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.commit":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_Commit); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.list_snapshots":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_ListSnapshots); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.offer_snapshot":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_OfferSnapshot); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.load_snapshot_chunk":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_LoadSnapshotChunk); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.apply_snapshot_chunk":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_ApplySnapshotChunk); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.prepare_proposal":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_PrepareProposal); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.process_proposal":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_ProcessProposal); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.extend_vote":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_ExtendVote); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.verify_vote_extension":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_VerifyVoteExtension); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Request.finalize_block":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Request_FinalizeBlock); ok {
			return true
		} else {
			return false
		}
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Request"))
		}
		panic(fmt.Errorf("message tendermint.abci.Request 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_Request) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.Request.echo":
		x.Value = nil
	case "tendermint.abci.Request.flush":
		x.Value = nil
	case "tendermint.abci.Request.info":
		x.Value = nil
	case "tendermint.abci.Request.init_chain":
		x.Value = nil
	case "tendermint.abci.Request.query":
		x.Value = nil
	case "tendermint.abci.Request.check_tx":
		x.Value = nil
	case "tendermint.abci.Request.commit":
		x.Value = nil
	case "tendermint.abci.Request.list_snapshots":
		x.Value = nil
	case "tendermint.abci.Request.offer_snapshot":
		x.Value = nil
	case "tendermint.abci.Request.load_snapshot_chunk":
		x.Value = nil
	case "tendermint.abci.Request.apply_snapshot_chunk":
		x.Value = nil
	case "tendermint.abci.Request.prepare_proposal":
		x.Value = nil
	case "tendermint.abci.Request.process_proposal":
		x.Value = nil
	case "tendermint.abci.Request.extend_vote":
		x.Value = nil
	case "tendermint.abci.Request.verify_vote_extension":
		x.Value = nil
	case "tendermint.abci.Request.finalize_block":
		x.Value = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Request"))
		}
		panic(fmt.Errorf("message tendermint.abci.Request 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_Request) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.Request.echo":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestEcho)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_Echo); ok {
			return protoreflect.ValueOfMessage(v.Echo.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestEcho)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.flush":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestFlush)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_Flush); ok {
			return protoreflect.ValueOfMessage(v.Flush.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestFlush)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.info":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestInfo)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_Info); ok {
			return protoreflect.ValueOfMessage(v.Info.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestInfo)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.init_chain":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestInitChain)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_InitChain); ok {
			return protoreflect.ValueOfMessage(v.InitChain.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestInitChain)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.query":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestQuery)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_Query); ok {
			return protoreflect.ValueOfMessage(v.Query.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestQuery)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.check_tx":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestCheckTx)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_CheckTx); ok {
			return protoreflect.ValueOfMessage(v.CheckTx.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestCheckTx)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.commit":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestCommit)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_Commit); ok {
			return protoreflect.ValueOfMessage(v.Commit.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestCommit)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.list_snapshots":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestListSnapshots)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_ListSnapshots); ok {
			return protoreflect.ValueOfMessage(v.ListSnapshots.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestListSnapshots)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.offer_snapshot":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestOfferSnapshot)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_OfferSnapshot); ok {
			return protoreflect.ValueOfMessage(v.OfferSnapshot.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestOfferSnapshot)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.load_snapshot_chunk":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestLoadSnapshotChunk)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_LoadSnapshotChunk); ok {
			return protoreflect.ValueOfMessage(v.LoadSnapshotChunk.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestLoadSnapshotChunk)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.apply_snapshot_chunk":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestApplySnapshotChunk)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_ApplySnapshotChunk); ok {
			return protoreflect.ValueOfMessage(v.ApplySnapshotChunk.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestApplySnapshotChunk)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.prepare_proposal":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestPrepareProposal)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_PrepareProposal); ok {
			return protoreflect.ValueOfMessage(v.PrepareProposal.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestPrepareProposal)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.process_proposal":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestProcessProposal)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_ProcessProposal); ok {
			return protoreflect.ValueOfMessage(v.ProcessProposal.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestProcessProposal)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.extend_vote":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestExtendVote)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_ExtendVote); ok {
			return protoreflect.ValueOfMessage(v.ExtendVote.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestExtendVote)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.verify_vote_extension":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestVerifyVoteExtension)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_VerifyVoteExtension); ok {
			return protoreflect.ValueOfMessage(v.VerifyVoteExtension.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestVerifyVoteExtension)(nil).ProtoReflect())
		}
	case "tendermint.abci.Request.finalize_block":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*RequestFinalizeBlock)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Request_FinalizeBlock); ok {
			return protoreflect.ValueOfMessage(v.FinalizeBlock.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*RequestFinalizeBlock)(nil).ProtoReflect())
		}
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Request"))
		}
		panic(fmt.Errorf("message tendermint.abci.Request 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_Request) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.Request.echo":
		cv := value.Message().Interface().(*RequestEcho)
		x.Value = &Request_Echo{Echo: cv}
	case "tendermint.abci.Request.flush":
		cv := value.Message().Interface().(*RequestFlush)
		x.Value = &Request_Flush{Flush: cv}
	case "tendermint.abci.Request.info":
		cv := value.Message().Interface().(*RequestInfo)
		x.Value = &Request_Info{Info: cv}
	case "tendermint.abci.Request.init_chain":
		cv := value.Message().Interface().(*RequestInitChain)
		x.Value = &Request_InitChain{InitChain: cv}
	case "tendermint.abci.Request.query":
		cv := value.Message().Interface().(*RequestQuery)
		x.Value = &Request_Query{Query: cv}
	case "tendermint.abci.Request.check_tx":
		cv := value.Message().Interface().(*RequestCheckTx)
		x.Value = &Request_CheckTx{CheckTx: cv}
	case "tendermint.abci.Request.commit":
		cv := value.Message().Interface().(*RequestCommit)
		x.Value = &Request_Commit{Commit: cv}
	case "tendermint.abci.Request.list_snapshots":
		cv := value.Message().Interface().(*RequestListSnapshots)
		x.Value = &Request_ListSnapshots{ListSnapshots: cv}
	case "tendermint.abci.Request.offer_snapshot":
		cv := value.Message().Interface().(*RequestOfferSnapshot)
		x.Value = &Request_OfferSnapshot{OfferSnapshot: cv}
	case "tendermint.abci.Request.load_snapshot_chunk":
		cv := value.Message().Interface().(*RequestLoadSnapshotChunk)
		x.Value = &Request_LoadSnapshotChunk{LoadSnapshotChunk: cv}
	case "tendermint.abci.Request.apply_snapshot_chunk":
		cv := value.Message().Interface().(*RequestApplySnapshotChunk)
		x.Value = &Request_ApplySnapshotChunk{ApplySnapshotChunk: cv}
	case "tendermint.abci.Request.prepare_proposal":
		cv := value.Message().Interface().(*RequestPrepareProposal)
		x.Value = &Request_PrepareProposal{PrepareProposal: cv}
	case "tendermint.abci.Request.process_proposal":
		cv := value.Message().Interface().(*RequestProcessProposal)
		x.Value = &Request_ProcessProposal{ProcessProposal: cv}
	case "tendermint.abci.Request.extend_vote":
		cv := value.Message().Interface().(*RequestExtendVote)
		x.Value = &Request_ExtendVote{ExtendVote: cv}
	case "tendermint.abci.Request.verify_vote_extension":
		cv := value.Message().Interface().(*RequestVerifyVoteExtension)
		x.Value = &Request_VerifyVoteExtension{VerifyVoteExtension: cv}
	case "tendermint.abci.Request.finalize_block":
		cv := value.Message().Interface().(*RequestFinalizeBlock)
		x.Value = &Request_FinalizeBlock{FinalizeBlock: cv}
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Request"))
		}
		panic(fmt.Errorf("message tendermint.abci.Request 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_Request) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Request.echo":
		if x.Value == nil {
			value := &RequestEcho{}
			oneofValue := &Request_Echo{Echo: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_Echo:
			return protoreflect.ValueOfMessage(m.Echo.ProtoReflect())
		default:
			value := &RequestEcho{}
			oneofValue := &Request_Echo{Echo: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.flush":
		if x.Value == nil {
			value := &RequestFlush{}
			oneofValue := &Request_Flush{Flush: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_Flush:
			return protoreflect.ValueOfMessage(m.Flush.ProtoReflect())
		default:
			value := &RequestFlush{}
			oneofValue := &Request_Flush{Flush: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.info":
		if x.Value == nil {
			value := &RequestInfo{}
			oneofValue := &Request_Info{Info: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_Info:
			return protoreflect.ValueOfMessage(m.Info.ProtoReflect())
		default:
			value := &RequestInfo{}
			oneofValue := &Request_Info{Info: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.init_chain":
		if x.Value == nil {
			value := &RequestInitChain{}
			oneofValue := &Request_InitChain{InitChain: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_InitChain:
			return protoreflect.ValueOfMessage(m.InitChain.ProtoReflect())
		default:
			value := &RequestInitChain{}
			oneofValue := &Request_InitChain{InitChain: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.query":
		if x.Value == nil {
			value := &RequestQuery{}
			oneofValue := &Request_Query{Query: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_Query:
			return protoreflect.ValueOfMessage(m.Query.ProtoReflect())
		default:
			value := &RequestQuery{}
			oneofValue := &Request_Query{Query: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.check_tx":
		if x.Value == nil {
			value := &RequestCheckTx{}
			oneofValue := &Request_CheckTx{CheckTx: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_CheckTx:
			return protoreflect.ValueOfMessage(m.CheckTx.ProtoReflect())
		default:
			value := &RequestCheckTx{}
			oneofValue := &Request_CheckTx{CheckTx: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.commit":
		if x.Value == nil {
			value := &RequestCommit{}
			oneofValue := &Request_Commit{Commit: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_Commit:
			return protoreflect.ValueOfMessage(m.Commit.ProtoReflect())
		default:
			value := &RequestCommit{}
			oneofValue := &Request_Commit{Commit: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.list_snapshots":
		if x.Value == nil {
			value := &RequestListSnapshots{}
			oneofValue := &Request_ListSnapshots{ListSnapshots: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_ListSnapshots:
			return protoreflect.ValueOfMessage(m.ListSnapshots.ProtoReflect())
		default:
			value := &RequestListSnapshots{}
			oneofValue := &Request_ListSnapshots{ListSnapshots: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.offer_snapshot":
		if x.Value == nil {
			value := &RequestOfferSnapshot{}
			oneofValue := &Request_OfferSnapshot{OfferSnapshot: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_OfferSnapshot:
			return protoreflect.ValueOfMessage(m.OfferSnapshot.ProtoReflect())
		default:
			value := &RequestOfferSnapshot{}
			oneofValue := &Request_OfferSnapshot{OfferSnapshot: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.load_snapshot_chunk":
		if x.Value == nil {
			value := &RequestLoadSnapshotChunk{}
			oneofValue := &Request_LoadSnapshotChunk{LoadSnapshotChunk: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_LoadSnapshotChunk:
			return protoreflect.ValueOfMessage(m.LoadSnapshotChunk.ProtoReflect())
		default:
			value := &RequestLoadSnapshotChunk{}
			oneofValue := &Request_LoadSnapshotChunk{LoadSnapshotChunk: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.apply_snapshot_chunk":
		if x.Value == nil {
			value := &RequestApplySnapshotChunk{}
			oneofValue := &Request_ApplySnapshotChunk{ApplySnapshotChunk: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_ApplySnapshotChunk:
			return protoreflect.ValueOfMessage(m.ApplySnapshotChunk.ProtoReflect())
		default:
			value := &RequestApplySnapshotChunk{}
			oneofValue := &Request_ApplySnapshotChunk{ApplySnapshotChunk: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.prepare_proposal":
		if x.Value == nil {
			value := &RequestPrepareProposal{}
			oneofValue := &Request_PrepareProposal{PrepareProposal: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_PrepareProposal:
			return protoreflect.ValueOfMessage(m.PrepareProposal.ProtoReflect())
		default:
			value := &RequestPrepareProposal{}
			oneofValue := &Request_PrepareProposal{PrepareProposal: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.process_proposal":
		if x.Value == nil {
			value := &RequestProcessProposal{}
			oneofValue := &Request_ProcessProposal{ProcessProposal: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_ProcessProposal:
			return protoreflect.ValueOfMessage(m.ProcessProposal.ProtoReflect())
		default:
			value := &RequestProcessProposal{}
			oneofValue := &Request_ProcessProposal{ProcessProposal: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.extend_vote":
		if x.Value == nil {
			value := &RequestExtendVote{}
			oneofValue := &Request_ExtendVote{ExtendVote: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_ExtendVote:
			return protoreflect.ValueOfMessage(m.ExtendVote.ProtoReflect())
		default:
			value := &RequestExtendVote{}
			oneofValue := &Request_ExtendVote{ExtendVote: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.verify_vote_extension":
		if x.Value == nil {
			value := &RequestVerifyVoteExtension{}
			oneofValue := &Request_VerifyVoteExtension{VerifyVoteExtension: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_VerifyVoteExtension:
			return protoreflect.ValueOfMessage(m.VerifyVoteExtension.ProtoReflect())
		default:
			value := &RequestVerifyVoteExtension{}
			oneofValue := &Request_VerifyVoteExtension{VerifyVoteExtension: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Request.finalize_block":
		if x.Value == nil {
			value := &RequestFinalizeBlock{}
			oneofValue := &Request_FinalizeBlock{FinalizeBlock: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Request_FinalizeBlock:
			return protoreflect.ValueOfMessage(m.FinalizeBlock.ProtoReflect())
		default:
			value := &RequestFinalizeBlock{}
			oneofValue := &Request_FinalizeBlock{FinalizeBlock: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Request"))
		}
		panic(fmt.Errorf("message tendermint.abci.Request 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_Request) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Request.echo":
		value := &RequestEcho{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.flush":
		value := &RequestFlush{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.info":
		value := &RequestInfo{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.init_chain":
		value := &RequestInitChain{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.query":
		value := &RequestQuery{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.check_tx":
		value := &RequestCheckTx{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.commit":
		value := &RequestCommit{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.list_snapshots":
		value := &RequestListSnapshots{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.offer_snapshot":
		value := &RequestOfferSnapshot{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.load_snapshot_chunk":
		value := &RequestLoadSnapshotChunk{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.apply_snapshot_chunk":
		value := &RequestApplySnapshotChunk{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.prepare_proposal":
		value := &RequestPrepareProposal{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.process_proposal":
		value := &RequestProcessProposal{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.extend_vote":
		value := &RequestExtendVote{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.verify_vote_extension":
		value := &RequestVerifyVoteExtension{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Request.finalize_block":
		value := &RequestFinalizeBlock{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Request"))
		}
		panic(fmt.Errorf("message tendermint.abci.Request 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_Request) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	case "tendermint.abci.Request.value":
		if x.Value == nil {
			return nil
		}
		switch x.Value.(type) {
		case *Request_Echo:
			return x.Descriptor().Fields().ByName("echo")
		case *Request_Flush:
			return x.Descriptor().Fields().ByName("flush")
		case *Request_Info:
			return x.Descriptor().Fields().ByName("info")
		case *Request_InitChain:
			return x.Descriptor().Fields().ByName("init_chain")
		case *Request_Query:
			return x.Descriptor().Fields().ByName("query")
		case *Request_CheckTx:
			return x.Descriptor().Fields().ByName("check_tx")
		case *Request_Commit:
			return x.Descriptor().Fields().ByName("commit")
		case *Request_ListSnapshots:
			return x.Descriptor().Fields().ByName("list_snapshots")
		case *Request_OfferSnapshot:
			return x.Descriptor().Fields().ByName("offer_snapshot")
		case *Request_LoadSnapshotChunk:
			return x.Descriptor().Fields().ByName("load_snapshot_chunk")
		case *Request_ApplySnapshotChunk:
			return x.Descriptor().Fields().ByName("apply_snapshot_chunk")
		case *Request_PrepareProposal:
			return x.Descriptor().Fields().ByName("prepare_proposal")
		case *Request_ProcessProposal:
			return x.Descriptor().Fields().ByName("process_proposal")
		case *Request_ExtendVote:
			return x.Descriptor().Fields().ByName("extend_vote")
		case *Request_VerifyVoteExtension:
			return x.Descriptor().Fields().ByName("verify_vote_extension")
		case *Request_FinalizeBlock:
			return x.Descriptor().Fields().ByName("finalize_block")
		}
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.Request", 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_Request) 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_Request) 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_Request) 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_Request) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*Request)
		if x == nil {
			return protoiface.SizeOutput{
				NoUnkeyedLiterals: input.NoUnkeyedLiterals,
				Size:              0,
			}
		}
		options := runtime.SizeInputToOptions(input)
		_ = options
		var n int
		var l int
		_ = l
		switch x := x.Value.(type) {
		case *Request_Echo:
			if x == nil {
				break
			}
			l = options.Size(x.Echo)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_Flush:
			if x == nil {
				break
			}
			l = options.Size(x.Flush)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_Info:
			if x == nil {
				break
			}
			l = options.Size(x.Info)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_InitChain:
			if x == nil {
				break
			}
			l = options.Size(x.InitChain)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_Query:
			if x == nil {
				break
			}
			l = options.Size(x.Query)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_CheckTx:
			if x == nil {
				break
			}
			l = options.Size(x.CheckTx)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_Commit:
			if x == nil {
				break
			}
			l = options.Size(x.Commit)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_ListSnapshots:
			if x == nil {
				break
			}
			l = options.Size(x.ListSnapshots)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_OfferSnapshot:
			if x == nil {
				break
			}
			l = options.Size(x.OfferSnapshot)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_LoadSnapshotChunk:
			if x == nil {
				break
			}
			l = options.Size(x.LoadSnapshotChunk)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_ApplySnapshotChunk:
			if x == nil {
				break
			}
			l = options.Size(x.ApplySnapshotChunk)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Request_PrepareProposal:
			if x == nil {
				break
			}
			l = options.Size(x.PrepareProposal)
			n += 2 + l + runtime.Sov(uint64(l))
		case *Request_ProcessProposal:
			if x == nil {
				break
			}
			l = options.Size(x.ProcessProposal)
			n += 2 + l + runtime.Sov(uint64(l))
		case *Request_ExtendVote:
			if x == nil {
				break
			}
			l = options.Size(x.ExtendVote)
			n += 2 + l + runtime.Sov(uint64(l))
		case *Request_VerifyVoteExtension:
			if x == nil {
				break
			}
			l = options.Size(x.VerifyVoteExtension)
			n += 2 + l + runtime.Sov(uint64(l))
		case *Request_FinalizeBlock:
			if x == nil {
				break
			}
			l = options.Size(x.FinalizeBlock)
			n += 2 + 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().(*Request)
		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)
		}
		switch x := x.Value.(type) {
		case *Request_Echo:
			encoded, err := options.Marshal(x.Echo)
			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
		case *Request_Flush:
			encoded, err := options.Marshal(x.Flush)
			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
		case *Request_Info:
			encoded, err := options.Marshal(x.Info)
			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
		case *Request_InitChain:
			encoded, err := options.Marshal(x.InitChain)
			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
		case *Request_Query:
			encoded, err := options.Marshal(x.Query)
			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
		case *Request_CheckTx:
			encoded, err := options.Marshal(x.CheckTx)
			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] = 0x42
		case *Request_Commit:
			encoded, err := options.Marshal(x.Commit)
			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] = 0x5a
		case *Request_ListSnapshots:
			encoded, err := options.Marshal(x.ListSnapshots)
			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] = 0x62
		case *Request_OfferSnapshot:
			encoded, err := options.Marshal(x.OfferSnapshot)
			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] = 0x6a
		case *Request_LoadSnapshotChunk:
			encoded, err := options.Marshal(x.LoadSnapshotChunk)
			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] = 0x72
		case *Request_ApplySnapshotChunk:
			encoded, err := options.Marshal(x.ApplySnapshotChunk)
			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] = 0x7a
		case *Request_PrepareProposal:
			encoded, err := options.Marshal(x.PrepareProposal)
			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] = 0x1
			i--
			dAtA[i] = 0x82
		case *Request_ProcessProposal:
			encoded, err := options.Marshal(x.ProcessProposal)
			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] = 0x1
			i--
			dAtA[i] = 0x8a
		case *Request_ExtendVote:
			encoded, err := options.Marshal(x.ExtendVote)
			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] = 0x1
			i--
			dAtA[i] = 0x92
		case *Request_VerifyVoteExtension:
			encoded, err := options.Marshal(x.VerifyVoteExtension)
			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] = 0x1
			i--
			dAtA[i] = 0x9a
		case *Request_FinalizeBlock:
			encoded, err := options.Marshal(x.FinalizeBlock)
			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] = 0x1
			i--
			dAtA[i] = 0xa2
		}
		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().(*Request)
		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: Request: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Request: 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 Echo", 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
				}
				v := &RequestEcho{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_Echo{v}
				iNdEx = postIndex
			case 2:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Flush", 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
				}
				v := &RequestFlush{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_Flush{v}
				iNdEx = postIndex
			case 3:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Info", 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
				}
				v := &RequestInfo{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_Info{v}
				iNdEx = postIndex
			case 5:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field InitChain", 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
				}
				v := &RequestInitChain{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_InitChain{v}
				iNdEx = postIndex
			case 6:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Query", 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
				}
				v := &RequestQuery{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_Query{v}
				iNdEx = postIndex
			case 8:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CheckTx", 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
				}
				v := &RequestCheckTx{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_CheckTx{v}
				iNdEx = postIndex
			case 11:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Commit", 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
				}
				v := &RequestCommit{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_Commit{v}
				iNdEx = postIndex
			case 12:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ListSnapshots", 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
				}
				v := &RequestListSnapshots{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_ListSnapshots{v}
				iNdEx = postIndex
			case 13:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OfferSnapshot", 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
				}
				v := &RequestOfferSnapshot{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_OfferSnapshot{v}
				iNdEx = postIndex
			case 14:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LoadSnapshotChunk", 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
				}
				v := &RequestLoadSnapshotChunk{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_LoadSnapshotChunk{v}
				iNdEx = postIndex
			case 15:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ApplySnapshotChunk", 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
				}
				v := &RequestApplySnapshotChunk{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_ApplySnapshotChunk{v}
				iNdEx = postIndex
			case 16:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field PrepareProposal", 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
				}
				v := &RequestPrepareProposal{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_PrepareProposal{v}
				iNdEx = postIndex
			case 17:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProcessProposal", 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
				}
				v := &RequestProcessProposal{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_ProcessProposal{v}
				iNdEx = postIndex
			case 18:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ExtendVote", 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
				}
				v := &RequestExtendVote{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_ExtendVote{v}
				iNdEx = postIndex
			case 19:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field VerifyVoteExtension", 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
				}
				v := &RequestVerifyVoteExtension{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_VerifyVoteExtension{v}
				iNdEx = postIndex
			case 20:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field FinalizeBlock", 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
				}
				v := &RequestFinalizeBlock{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Request_FinalizeBlock{v}
				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_RequestEcho         protoreflect.MessageDescriptor
	fd_RequestEcho_message protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestEcho = File_tendermint_abci_types_proto.Messages().ByName("RequestEcho")
	fd_RequestEcho_message = md_RequestEcho.Fields().ByName("message")
}

var _ protoreflect.Message = (*fastReflection_RequestEcho)(nil)

type fastReflection_RequestEcho RequestEcho

func (x *RequestEcho) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestEcho)(x)
}

func (x *RequestEcho) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestEcho_messageType fastReflection_RequestEcho_messageType
var _ protoreflect.MessageType = fastReflection_RequestEcho_messageType{}

type fastReflection_RequestEcho_messageType struct{}

func (x fastReflection_RequestEcho_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestEcho)(nil)
}
func (x fastReflection_RequestEcho_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestEcho)
}
func (x fastReflection_RequestEcho_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestEcho
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestEcho) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestEcho
}

// 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_RequestEcho) Type() protoreflect.MessageType {
	return _fastReflection_RequestEcho_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestEcho) New() protoreflect.Message {
	return new(fastReflection_RequestEcho)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestEcho) Interface() protoreflect.ProtoMessage {
	return (*RequestEcho)(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_RequestEcho) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Message != "" {
		value := protoreflect.ValueOfString(x.Message)
		if !f(fd_RequestEcho_message, 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_RequestEcho) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestEcho.message":
		return x.Message != ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestEcho 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_RequestEcho) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestEcho.message":
		x.Message = ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestEcho 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_RequestEcho) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestEcho.message":
		value := x.Message
		return protoreflect.ValueOfString(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestEcho 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_RequestEcho) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestEcho.message":
		x.Message = value.Interface().(string)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestEcho 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_RequestEcho) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestEcho.message":
		panic(fmt.Errorf("field message of message tendermint.abci.RequestEcho is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestEcho 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_RequestEcho) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestEcho.message":
		return protoreflect.ValueOfString("")
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestEcho 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_RequestEcho) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestEcho", 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_RequestEcho) 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_RequestEcho) 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_RequestEcho) 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_RequestEcho) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestEcho)
		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.Message)
		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().(*RequestEcho)
		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.Message) > 0 {
			i -= len(x.Message)
			copy(dAtA[i:], x.Message)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Message)))
			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().(*RequestEcho)
		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: RequestEcho: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestEcho: 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 Message", 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.Message = 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_RequestFlush protoreflect.MessageDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestFlush = File_tendermint_abci_types_proto.Messages().ByName("RequestFlush")
}

var _ protoreflect.Message = (*fastReflection_RequestFlush)(nil)

type fastReflection_RequestFlush RequestFlush

func (x *RequestFlush) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestFlush)(x)
}

func (x *RequestFlush) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestFlush_messageType fastReflection_RequestFlush_messageType
var _ protoreflect.MessageType = fastReflection_RequestFlush_messageType{}

type fastReflection_RequestFlush_messageType struct{}

func (x fastReflection_RequestFlush_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestFlush)(nil)
}
func (x fastReflection_RequestFlush_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestFlush)
}
func (x fastReflection_RequestFlush_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestFlush
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestFlush) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestFlush
}

// 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_RequestFlush) Type() protoreflect.MessageType {
	return _fastReflection_RequestFlush_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestFlush) New() protoreflect.Message {
	return new(fastReflection_RequestFlush)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestFlush) Interface() protoreflect.ProtoMessage {
	return (*RequestFlush)(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_RequestFlush) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
}

// 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_RequestFlush) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFlush 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_RequestFlush) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFlush 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_RequestFlush) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFlush 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_RequestFlush) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFlush 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_RequestFlush) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFlush 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_RequestFlush) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFlush 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_RequestFlush) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestFlush", 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_RequestFlush) 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_RequestFlush) 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_RequestFlush) 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_RequestFlush) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestFlush)
		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.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().(*RequestFlush)
		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 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().(*RequestFlush)
		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: RequestFlush: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestFlush: illegal tag %d (wire type %d)", fieldNum, wire)
			}
			switch fieldNum {
			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_RequestInfo               protoreflect.MessageDescriptor
	fd_RequestInfo_version       protoreflect.FieldDescriptor
	fd_RequestInfo_block_version protoreflect.FieldDescriptor
	fd_RequestInfo_p2p_version   protoreflect.FieldDescriptor
	fd_RequestInfo_abci_version  protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestInfo = File_tendermint_abci_types_proto.Messages().ByName("RequestInfo")
	fd_RequestInfo_version = md_RequestInfo.Fields().ByName("version")
	fd_RequestInfo_block_version = md_RequestInfo.Fields().ByName("block_version")
	fd_RequestInfo_p2p_version = md_RequestInfo.Fields().ByName("p2p_version")
	fd_RequestInfo_abci_version = md_RequestInfo.Fields().ByName("abci_version")
}

var _ protoreflect.Message = (*fastReflection_RequestInfo)(nil)

type fastReflection_RequestInfo RequestInfo

func (x *RequestInfo) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestInfo)(x)
}

func (x *RequestInfo) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestInfo_messageType fastReflection_RequestInfo_messageType
var _ protoreflect.MessageType = fastReflection_RequestInfo_messageType{}

type fastReflection_RequestInfo_messageType struct{}

func (x fastReflection_RequestInfo_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestInfo)(nil)
}
func (x fastReflection_RequestInfo_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestInfo)
}
func (x fastReflection_RequestInfo_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestInfo
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestInfo) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestInfo
}

// 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_RequestInfo) Type() protoreflect.MessageType {
	return _fastReflection_RequestInfo_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestInfo) New() protoreflect.Message {
	return new(fastReflection_RequestInfo)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestInfo) Interface() protoreflect.ProtoMessage {
	return (*RequestInfo)(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_RequestInfo) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Version != "" {
		value := protoreflect.ValueOfString(x.Version)
		if !f(fd_RequestInfo_version, value) {
			return
		}
	}
	if x.BlockVersion != uint64(0) {
		value := protoreflect.ValueOfUint64(x.BlockVersion)
		if !f(fd_RequestInfo_block_version, value) {
			return
		}
	}
	if x.P2PVersion != uint64(0) {
		value := protoreflect.ValueOfUint64(x.P2PVersion)
		if !f(fd_RequestInfo_p2p_version, value) {
			return
		}
	}
	if x.AbciVersion != "" {
		value := protoreflect.ValueOfString(x.AbciVersion)
		if !f(fd_RequestInfo_abci_version, 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_RequestInfo) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestInfo.version":
		return x.Version != ""
	case "tendermint.abci.RequestInfo.block_version":
		return x.BlockVersion != uint64(0)
	case "tendermint.abci.RequestInfo.p2p_version":
		return x.P2PVersion != uint64(0)
	case "tendermint.abci.RequestInfo.abci_version":
		return x.AbciVersion != ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInfo 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_RequestInfo) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestInfo.version":
		x.Version = ""
	case "tendermint.abci.RequestInfo.block_version":
		x.BlockVersion = uint64(0)
	case "tendermint.abci.RequestInfo.p2p_version":
		x.P2PVersion = uint64(0)
	case "tendermint.abci.RequestInfo.abci_version":
		x.AbciVersion = ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInfo 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_RequestInfo) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestInfo.version":
		value := x.Version
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.RequestInfo.block_version":
		value := x.BlockVersion
		return protoreflect.ValueOfUint64(value)
	case "tendermint.abci.RequestInfo.p2p_version":
		value := x.P2PVersion
		return protoreflect.ValueOfUint64(value)
	case "tendermint.abci.RequestInfo.abci_version":
		value := x.AbciVersion
		return protoreflect.ValueOfString(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInfo 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_RequestInfo) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestInfo.version":
		x.Version = value.Interface().(string)
	case "tendermint.abci.RequestInfo.block_version":
		x.BlockVersion = value.Uint()
	case "tendermint.abci.RequestInfo.p2p_version":
		x.P2PVersion = value.Uint()
	case "tendermint.abci.RequestInfo.abci_version":
		x.AbciVersion = value.Interface().(string)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInfo 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_RequestInfo) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestInfo.version":
		panic(fmt.Errorf("field version of message tendermint.abci.RequestInfo is not mutable"))
	case "tendermint.abci.RequestInfo.block_version":
		panic(fmt.Errorf("field block_version of message tendermint.abci.RequestInfo is not mutable"))
	case "tendermint.abci.RequestInfo.p2p_version":
		panic(fmt.Errorf("field p2p_version of message tendermint.abci.RequestInfo is not mutable"))
	case "tendermint.abci.RequestInfo.abci_version":
		panic(fmt.Errorf("field abci_version of message tendermint.abci.RequestInfo is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInfo 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_RequestInfo) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestInfo.version":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.RequestInfo.block_version":
		return protoreflect.ValueOfUint64(uint64(0))
	case "tendermint.abci.RequestInfo.p2p_version":
		return protoreflect.ValueOfUint64(uint64(0))
	case "tendermint.abci.RequestInfo.abci_version":
		return protoreflect.ValueOfString("")
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInfo 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_RequestInfo) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestInfo", 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_RequestInfo) 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_RequestInfo) 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_RequestInfo) 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_RequestInfo) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestInfo)
		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.Version)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.BlockVersion != 0 {
			n += 1 + runtime.Sov(uint64(x.BlockVersion))
		}
		if x.P2PVersion != 0 {
			n += 1 + runtime.Sov(uint64(x.P2PVersion))
		}
		l = len(x.AbciVersion)
		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().(*RequestInfo)
		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.AbciVersion) > 0 {
			i -= len(x.AbciVersion)
			copy(dAtA[i:], x.AbciVersion)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AbciVersion)))
			i--
			dAtA[i] = 0x22
		}
		if x.P2PVersion != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.P2PVersion))
			i--
			dAtA[i] = 0x18
		}
		if x.BlockVersion != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.BlockVersion))
			i--
			dAtA[i] = 0x10
		}
		if len(x.Version) > 0 {
			i -= len(x.Version)
			copy(dAtA[i:], x.Version)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Version)))
			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().(*RequestInfo)
		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: RequestInfo: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestInfo: 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 Version", 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.Version = string(dAtA[iNdEx:postIndex])
				iNdEx = postIndex
			case 2:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockVersion", wireType)
				}
				x.BlockVersion = 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.BlockVersion |= uint64(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 P2PVersion", wireType)
				}
				x.P2PVersion = 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.P2PVersion |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 4:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AbciVersion", 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.AbciVersion = 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 = (*_RequestInitChain_4_list)(nil)

type _RequestInitChain_4_list struct {
	list *[]*ValidatorUpdate
}

func (x *_RequestInitChain_4_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_RequestInitChain_4_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_RequestInitChain_4_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ValidatorUpdate)
	(*x.list)[i] = concreteValue
}

func (x *_RequestInitChain_4_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ValidatorUpdate)
	*x.list = append(*x.list, concreteValue)
}

func (x *_RequestInitChain_4_list) AppendMutable() protoreflect.Value {
	v := new(ValidatorUpdate)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestInitChain_4_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_RequestInitChain_4_list) NewElement() protoreflect.Value {
	v := new(ValidatorUpdate)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestInitChain_4_list) IsValid() bool {
	return x.list != nil
}

var (
	md_RequestInitChain                  protoreflect.MessageDescriptor
	fd_RequestInitChain_time             protoreflect.FieldDescriptor
	fd_RequestInitChain_chain_id         protoreflect.FieldDescriptor
	fd_RequestInitChain_consensus_params protoreflect.FieldDescriptor
	fd_RequestInitChain_validators       protoreflect.FieldDescriptor
	fd_RequestInitChain_app_state_bytes  protoreflect.FieldDescriptor
	fd_RequestInitChain_initial_height   protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestInitChain = File_tendermint_abci_types_proto.Messages().ByName("RequestInitChain")
	fd_RequestInitChain_time = md_RequestInitChain.Fields().ByName("time")
	fd_RequestInitChain_chain_id = md_RequestInitChain.Fields().ByName("chain_id")
	fd_RequestInitChain_consensus_params = md_RequestInitChain.Fields().ByName("consensus_params")
	fd_RequestInitChain_validators = md_RequestInitChain.Fields().ByName("validators")
	fd_RequestInitChain_app_state_bytes = md_RequestInitChain.Fields().ByName("app_state_bytes")
	fd_RequestInitChain_initial_height = md_RequestInitChain.Fields().ByName("initial_height")
}

var _ protoreflect.Message = (*fastReflection_RequestInitChain)(nil)

type fastReflection_RequestInitChain RequestInitChain

func (x *RequestInitChain) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestInitChain)(x)
}

func (x *RequestInitChain) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestInitChain_messageType fastReflection_RequestInitChain_messageType
var _ protoreflect.MessageType = fastReflection_RequestInitChain_messageType{}

type fastReflection_RequestInitChain_messageType struct{}

func (x fastReflection_RequestInitChain_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestInitChain)(nil)
}
func (x fastReflection_RequestInitChain_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestInitChain)
}
func (x fastReflection_RequestInitChain_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestInitChain
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestInitChain) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestInitChain
}

// 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_RequestInitChain) Type() protoreflect.MessageType {
	return _fastReflection_RequestInitChain_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestInitChain) New() protoreflect.Message {
	return new(fastReflection_RequestInitChain)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestInitChain) Interface() protoreflect.ProtoMessage {
	return (*RequestInitChain)(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_RequestInitChain) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Time != nil {
		value := protoreflect.ValueOfMessage(x.Time.ProtoReflect())
		if !f(fd_RequestInitChain_time, value) {
			return
		}
	}
	if x.ChainId != "" {
		value := protoreflect.ValueOfString(x.ChainId)
		if !f(fd_RequestInitChain_chain_id, value) {
			return
		}
	}
	if x.ConsensusParams != nil {
		value := protoreflect.ValueOfMessage(x.ConsensusParams.ProtoReflect())
		if !f(fd_RequestInitChain_consensus_params, value) {
			return
		}
	}
	if len(x.Validators) != 0 {
		value := protoreflect.ValueOfList(&_RequestInitChain_4_list{list: &x.Validators})
		if !f(fd_RequestInitChain_validators, value) {
			return
		}
	}
	if len(x.AppStateBytes) != 0 {
		value := protoreflect.ValueOfBytes(x.AppStateBytes)
		if !f(fd_RequestInitChain_app_state_bytes, value) {
			return
		}
	}
	if x.InitialHeight != int64(0) {
		value := protoreflect.ValueOfInt64(x.InitialHeight)
		if !f(fd_RequestInitChain_initial_height, 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_RequestInitChain) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestInitChain.time":
		return x.Time != nil
	case "tendermint.abci.RequestInitChain.chain_id":
		return x.ChainId != ""
	case "tendermint.abci.RequestInitChain.consensus_params":
		return x.ConsensusParams != nil
	case "tendermint.abci.RequestInitChain.validators":
		return len(x.Validators) != 0
	case "tendermint.abci.RequestInitChain.app_state_bytes":
		return len(x.AppStateBytes) != 0
	case "tendermint.abci.RequestInitChain.initial_height":
		return x.InitialHeight != int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInitChain 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_RequestInitChain) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestInitChain.time":
		x.Time = nil
	case "tendermint.abci.RequestInitChain.chain_id":
		x.ChainId = ""
	case "tendermint.abci.RequestInitChain.consensus_params":
		x.ConsensusParams = nil
	case "tendermint.abci.RequestInitChain.validators":
		x.Validators = nil
	case "tendermint.abci.RequestInitChain.app_state_bytes":
		x.AppStateBytes = nil
	case "tendermint.abci.RequestInitChain.initial_height":
		x.InitialHeight = int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInitChain 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_RequestInitChain) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestInitChain.time":
		value := x.Time
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestInitChain.chain_id":
		value := x.ChainId
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.RequestInitChain.consensus_params":
		value := x.ConsensusParams
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestInitChain.validators":
		if len(x.Validators) == 0 {
			return protoreflect.ValueOfList(&_RequestInitChain_4_list{})
		}
		listValue := &_RequestInitChain_4_list{list: &x.Validators}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.RequestInitChain.app_state_bytes":
		value := x.AppStateBytes
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestInitChain.initial_height":
		value := x.InitialHeight
		return protoreflect.ValueOfInt64(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInitChain 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_RequestInitChain) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestInitChain.time":
		x.Time = value.Message().Interface().(*timestamppb.Timestamp)
	case "tendermint.abci.RequestInitChain.chain_id":
		x.ChainId = value.Interface().(string)
	case "tendermint.abci.RequestInitChain.consensus_params":
		x.ConsensusParams = value.Message().Interface().(*types.ConsensusParams)
	case "tendermint.abci.RequestInitChain.validators":
		lv := value.List()
		clv := lv.(*_RequestInitChain_4_list)
		x.Validators = *clv.list
	case "tendermint.abci.RequestInitChain.app_state_bytes":
		x.AppStateBytes = value.Bytes()
	case "tendermint.abci.RequestInitChain.initial_height":
		x.InitialHeight = value.Int()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInitChain 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_RequestInitChain) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestInitChain.time":
		if x.Time == nil {
			x.Time = new(timestamppb.Timestamp)
		}
		return protoreflect.ValueOfMessage(x.Time.ProtoReflect())
	case "tendermint.abci.RequestInitChain.consensus_params":
		if x.ConsensusParams == nil {
			x.ConsensusParams = new(types.ConsensusParams)
		}
		return protoreflect.ValueOfMessage(x.ConsensusParams.ProtoReflect())
	case "tendermint.abci.RequestInitChain.validators":
		if x.Validators == nil {
			x.Validators = []*ValidatorUpdate{}
		}
		value := &_RequestInitChain_4_list{list: &x.Validators}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.RequestInitChain.chain_id":
		panic(fmt.Errorf("field chain_id of message tendermint.abci.RequestInitChain is not mutable"))
	case "tendermint.abci.RequestInitChain.app_state_bytes":
		panic(fmt.Errorf("field app_state_bytes of message tendermint.abci.RequestInitChain is not mutable"))
	case "tendermint.abci.RequestInitChain.initial_height":
		panic(fmt.Errorf("field initial_height of message tendermint.abci.RequestInitChain is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInitChain 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_RequestInitChain) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestInitChain.time":
		m := new(timestamppb.Timestamp)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestInitChain.chain_id":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.RequestInitChain.consensus_params":
		m := new(types.ConsensusParams)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestInitChain.validators":
		list := []*ValidatorUpdate{}
		return protoreflect.ValueOfList(&_RequestInitChain_4_list{list: &list})
	case "tendermint.abci.RequestInitChain.app_state_bytes":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestInitChain.initial_height":
		return protoreflect.ValueOfInt64(int64(0))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestInitChain 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_RequestInitChain) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestInitChain", 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_RequestInitChain) 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_RequestInitChain) 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_RequestInitChain) 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_RequestInitChain) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestInitChain)
		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.Time != nil {
			l = options.Size(x.Time)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.ChainId)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.ConsensusParams != nil {
			l = options.Size(x.ConsensusParams)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if len(x.Validators) > 0 {
			for _, e := range x.Validators {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		l = len(x.AppStateBytes)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.InitialHeight != 0 {
			n += 1 + runtime.Sov(uint64(x.InitialHeight))
		}
		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().(*RequestInitChain)
		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.InitialHeight != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.InitialHeight))
			i--
			dAtA[i] = 0x30
		}
		if len(x.AppStateBytes) > 0 {
			i -= len(x.AppStateBytes)
			copy(dAtA[i:], x.AppStateBytes)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AppStateBytes)))
			i--
			dAtA[i] = 0x2a
		}
		if len(x.Validators) > 0 {
			for iNdEx := len(x.Validators) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Validators[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 x.ConsensusParams != nil {
			encoded, err := options.Marshal(x.ConsensusParams)
			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.ChainId) > 0 {
			i -= len(x.ChainId)
			copy(dAtA[i:], x.ChainId)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ChainId)))
			i--
			dAtA[i] = 0x12
		}
		if x.Time != nil {
			encoded, err := options.Marshal(x.Time)
			if err != nil {
				return protoiface.MarshalOutput{
					NoUnkeyedLiterals: input.NoUnkeyedLiterals,
					Buf:               input.Buf,
				}, err
			}
			i -= len(encoded)
			copy(dAtA[i:], encoded)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
			i--
			dAtA[i] = 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().(*RequestInitChain)
		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: RequestInitChain: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestInitChain: 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 Time", wireType)
				}
				var msglen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
					}
					if iNdEx >= l {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					msglen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if msglen < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				postIndex := iNdEx + msglen
				if postIndex < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if postIndex > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if x.Time == nil {
					x.Time = &timestamppb.Timestamp{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Time); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 2:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ChainId", 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.ChainId = 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 ConsensusParams", 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.ConsensusParams == nil {
					x.ConsensusParams = &types.ConsensusParams{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ConsensusParams); 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 Validators", 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.Validators = append(x.Validators, &ValidatorUpdate{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Validators[len(x.Validators)-1]); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 5:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AppStateBytes", 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.AppStateBytes = append(x.AppStateBytes[:0], dAtA[iNdEx:postIndex]...)
				if x.AppStateBytes == nil {
					x.AppStateBytes = []byte{}
				}
				iNdEx = postIndex
			case 6:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field InitialHeight", wireType)
				}
				x.InitialHeight = 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.InitialHeight |= 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_RequestQuery        protoreflect.MessageDescriptor
	fd_RequestQuery_data   protoreflect.FieldDescriptor
	fd_RequestQuery_path   protoreflect.FieldDescriptor
	fd_RequestQuery_height protoreflect.FieldDescriptor
	fd_RequestQuery_prove  protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestQuery = File_tendermint_abci_types_proto.Messages().ByName("RequestQuery")
	fd_RequestQuery_data = md_RequestQuery.Fields().ByName("data")
	fd_RequestQuery_path = md_RequestQuery.Fields().ByName("path")
	fd_RequestQuery_height = md_RequestQuery.Fields().ByName("height")
	fd_RequestQuery_prove = md_RequestQuery.Fields().ByName("prove")
}

var _ protoreflect.Message = (*fastReflection_RequestQuery)(nil)

type fastReflection_RequestQuery RequestQuery

func (x *RequestQuery) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestQuery)(x)
}

func (x *RequestQuery) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestQuery_messageType fastReflection_RequestQuery_messageType
var _ protoreflect.MessageType = fastReflection_RequestQuery_messageType{}

type fastReflection_RequestQuery_messageType struct{}

func (x fastReflection_RequestQuery_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestQuery)(nil)
}
func (x fastReflection_RequestQuery_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestQuery)
}
func (x fastReflection_RequestQuery_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestQuery
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestQuery) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestQuery
}

// 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_RequestQuery) Type() protoreflect.MessageType {
	return _fastReflection_RequestQuery_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestQuery) New() protoreflect.Message {
	return new(fastReflection_RequestQuery)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestQuery) Interface() protoreflect.ProtoMessage {
	return (*RequestQuery)(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_RequestQuery) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Data) != 0 {
		value := protoreflect.ValueOfBytes(x.Data)
		if !f(fd_RequestQuery_data, value) {
			return
		}
	}
	if x.Path != "" {
		value := protoreflect.ValueOfString(x.Path)
		if !f(fd_RequestQuery_path, value) {
			return
		}
	}
	if x.Height != int64(0) {
		value := protoreflect.ValueOfInt64(x.Height)
		if !f(fd_RequestQuery_height, value) {
			return
		}
	}
	if x.Prove != false {
		value := protoreflect.ValueOfBool(x.Prove)
		if !f(fd_RequestQuery_prove, 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_RequestQuery) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestQuery.data":
		return len(x.Data) != 0
	case "tendermint.abci.RequestQuery.path":
		return x.Path != ""
	case "tendermint.abci.RequestQuery.height":
		return x.Height != int64(0)
	case "tendermint.abci.RequestQuery.prove":
		return x.Prove != false
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestQuery 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_RequestQuery) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestQuery.data":
		x.Data = nil
	case "tendermint.abci.RequestQuery.path":
		x.Path = ""
	case "tendermint.abci.RequestQuery.height":
		x.Height = int64(0)
	case "tendermint.abci.RequestQuery.prove":
		x.Prove = false
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestQuery 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_RequestQuery) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestQuery.data":
		value := x.Data
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestQuery.path":
		value := x.Path
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.RequestQuery.height":
		value := x.Height
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.RequestQuery.prove":
		value := x.Prove
		return protoreflect.ValueOfBool(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestQuery 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_RequestQuery) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestQuery.data":
		x.Data = value.Bytes()
	case "tendermint.abci.RequestQuery.path":
		x.Path = value.Interface().(string)
	case "tendermint.abci.RequestQuery.height":
		x.Height = value.Int()
	case "tendermint.abci.RequestQuery.prove":
		x.Prove = value.Bool()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestQuery 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_RequestQuery) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestQuery.data":
		panic(fmt.Errorf("field data of message tendermint.abci.RequestQuery is not mutable"))
	case "tendermint.abci.RequestQuery.path":
		panic(fmt.Errorf("field path of message tendermint.abci.RequestQuery is not mutable"))
	case "tendermint.abci.RequestQuery.height":
		panic(fmt.Errorf("field height of message tendermint.abci.RequestQuery is not mutable"))
	case "tendermint.abci.RequestQuery.prove":
		panic(fmt.Errorf("field prove of message tendermint.abci.RequestQuery is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestQuery 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_RequestQuery) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestQuery.data":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestQuery.path":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.RequestQuery.height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.RequestQuery.prove":
		return protoreflect.ValueOfBool(false)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestQuery 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_RequestQuery) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestQuery", 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_RequestQuery) 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_RequestQuery) 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_RequestQuery) 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_RequestQuery) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestQuery)
		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.Data)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Path)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		if x.Prove {
			n += 2
		}
		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().(*RequestQuery)
		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.Prove {
			i--
			if x.Prove {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
			i--
			dAtA[i] = 0x20
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			i--
			dAtA[i] = 0x18
		}
		if len(x.Path) > 0 {
			i -= len(x.Path)
			copy(dAtA[i:], x.Path)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Path)))
			i--
			dAtA[i] = 0x12
		}
		if len(x.Data) > 0 {
			i -= len(x.Data)
			copy(dAtA[i:], x.Data)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Data)))
			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().(*RequestQuery)
		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: RequestQuery: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestQuery: 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 Data", 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.Data = append(x.Data[:0], dAtA[iNdEx:postIndex]...)
				if x.Data == nil {
					x.Data = []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 Path", 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.Path = string(dAtA[iNdEx:postIndex])
				iNdEx = postIndex
			case 3:
				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 |= int64(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 Prove", 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.Prove = bool(v != 0)
			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_RequestCheckTx      protoreflect.MessageDescriptor
	fd_RequestCheckTx_tx   protoreflect.FieldDescriptor
	fd_RequestCheckTx_type protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestCheckTx = File_tendermint_abci_types_proto.Messages().ByName("RequestCheckTx")
	fd_RequestCheckTx_tx = md_RequestCheckTx.Fields().ByName("tx")
	fd_RequestCheckTx_type = md_RequestCheckTx.Fields().ByName("type")
}

var _ protoreflect.Message = (*fastReflection_RequestCheckTx)(nil)

type fastReflection_RequestCheckTx RequestCheckTx

func (x *RequestCheckTx) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestCheckTx)(x)
}

func (x *RequestCheckTx) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestCheckTx_messageType fastReflection_RequestCheckTx_messageType
var _ protoreflect.MessageType = fastReflection_RequestCheckTx_messageType{}

type fastReflection_RequestCheckTx_messageType struct{}

func (x fastReflection_RequestCheckTx_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestCheckTx)(nil)
}
func (x fastReflection_RequestCheckTx_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestCheckTx)
}
func (x fastReflection_RequestCheckTx_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestCheckTx
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestCheckTx) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestCheckTx
}

// 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_RequestCheckTx) Type() protoreflect.MessageType {
	return _fastReflection_RequestCheckTx_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestCheckTx) New() protoreflect.Message {
	return new(fastReflection_RequestCheckTx)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestCheckTx) Interface() protoreflect.ProtoMessage {
	return (*RequestCheckTx)(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_RequestCheckTx) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Tx) != 0 {
		value := protoreflect.ValueOfBytes(x.Tx)
		if !f(fd_RequestCheckTx_tx, value) {
			return
		}
	}
	if x.Type_ != 0 {
		value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Type_))
		if !f(fd_RequestCheckTx_type, 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_RequestCheckTx) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestCheckTx.tx":
		return len(x.Tx) != 0
	case "tendermint.abci.RequestCheckTx.type":
		return x.Type_ != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCheckTx 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_RequestCheckTx) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestCheckTx.tx":
		x.Tx = nil
	case "tendermint.abci.RequestCheckTx.type":
		x.Type_ = 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCheckTx 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_RequestCheckTx) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestCheckTx.tx":
		value := x.Tx
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestCheckTx.type":
		value := x.Type_
		return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value))
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCheckTx 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_RequestCheckTx) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestCheckTx.tx":
		x.Tx = value.Bytes()
	case "tendermint.abci.RequestCheckTx.type":
		x.Type_ = (CheckTxType)(value.Enum())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCheckTx 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_RequestCheckTx) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestCheckTx.tx":
		panic(fmt.Errorf("field tx of message tendermint.abci.RequestCheckTx is not mutable"))
	case "tendermint.abci.RequestCheckTx.type":
		panic(fmt.Errorf("field type of message tendermint.abci.RequestCheckTx is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCheckTx 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_RequestCheckTx) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestCheckTx.tx":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestCheckTx.type":
		return protoreflect.ValueOfEnum(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCheckTx 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_RequestCheckTx) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestCheckTx", 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_RequestCheckTx) 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_RequestCheckTx) 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_RequestCheckTx) 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_RequestCheckTx) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestCheckTx)
		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.Tx)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Type_ != 0 {
			n += 1 + runtime.Sov(uint64(x.Type_))
		}
		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().(*RequestCheckTx)
		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.Type_ != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Type_))
			i--
			dAtA[i] = 0x10
		}
		if len(x.Tx) > 0 {
			i -= len(x.Tx)
			copy(dAtA[i:], x.Tx)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Tx)))
			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().(*RequestCheckTx)
		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: RequestCheckTx: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestCheckTx: 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 Tx", 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.Tx = append(x.Tx[:0], dAtA[iNdEx:postIndex]...)
				if x.Tx == nil {
					x.Tx = []byte{}
				}
				iNdEx = postIndex
			case 2:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Type_", wireType)
				}
				x.Type_ = 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.Type_ |= CheckTxType(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_RequestCommit protoreflect.MessageDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestCommit = File_tendermint_abci_types_proto.Messages().ByName("RequestCommit")
}

var _ protoreflect.Message = (*fastReflection_RequestCommit)(nil)

type fastReflection_RequestCommit RequestCommit

func (x *RequestCommit) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestCommit)(x)
}

func (x *RequestCommit) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestCommit_messageType fastReflection_RequestCommit_messageType
var _ protoreflect.MessageType = fastReflection_RequestCommit_messageType{}

type fastReflection_RequestCommit_messageType struct{}

func (x fastReflection_RequestCommit_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestCommit)(nil)
}
func (x fastReflection_RequestCommit_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestCommit)
}
func (x fastReflection_RequestCommit_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestCommit
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestCommit) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestCommit
}

// 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_RequestCommit) Type() protoreflect.MessageType {
	return _fastReflection_RequestCommit_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestCommit) New() protoreflect.Message {
	return new(fastReflection_RequestCommit)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestCommit) Interface() protoreflect.ProtoMessage {
	return (*RequestCommit)(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_RequestCommit) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
}

// 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_RequestCommit) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCommit 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_RequestCommit) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCommit 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_RequestCommit) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCommit 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_RequestCommit) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCommit 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_RequestCommit) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCommit 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_RequestCommit) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestCommit 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_RequestCommit) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestCommit", 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_RequestCommit) 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_RequestCommit) 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_RequestCommit) 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_RequestCommit) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestCommit)
		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.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().(*RequestCommit)
		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 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().(*RequestCommit)
		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: RequestCommit: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestCommit: illegal tag %d (wire type %d)", fieldNum, wire)
			}
			switch fieldNum {
			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_RequestListSnapshots protoreflect.MessageDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestListSnapshots = File_tendermint_abci_types_proto.Messages().ByName("RequestListSnapshots")
}

var _ protoreflect.Message = (*fastReflection_RequestListSnapshots)(nil)

type fastReflection_RequestListSnapshots RequestListSnapshots

func (x *RequestListSnapshots) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestListSnapshots)(x)
}

func (x *RequestListSnapshots) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestListSnapshots_messageType fastReflection_RequestListSnapshots_messageType
var _ protoreflect.MessageType = fastReflection_RequestListSnapshots_messageType{}

type fastReflection_RequestListSnapshots_messageType struct{}

func (x fastReflection_RequestListSnapshots_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestListSnapshots)(nil)
}
func (x fastReflection_RequestListSnapshots_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestListSnapshots)
}
func (x fastReflection_RequestListSnapshots_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestListSnapshots
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestListSnapshots) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestListSnapshots
}

// 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_RequestListSnapshots) Type() protoreflect.MessageType {
	return _fastReflection_RequestListSnapshots_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestListSnapshots) New() protoreflect.Message {
	return new(fastReflection_RequestListSnapshots)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestListSnapshots) Interface() protoreflect.ProtoMessage {
	return (*RequestListSnapshots)(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_RequestListSnapshots) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
}

// 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_RequestListSnapshots) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestListSnapshots 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_RequestListSnapshots) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestListSnapshots 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_RequestListSnapshots) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestListSnapshots 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_RequestListSnapshots) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestListSnapshots 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_RequestListSnapshots) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestListSnapshots 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_RequestListSnapshots) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestListSnapshots 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_RequestListSnapshots) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestListSnapshots", 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_RequestListSnapshots) 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_RequestListSnapshots) 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_RequestListSnapshots) 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_RequestListSnapshots) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestListSnapshots)
		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.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().(*RequestListSnapshots)
		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 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().(*RequestListSnapshots)
		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: RequestListSnapshots: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestListSnapshots: illegal tag %d (wire type %d)", fieldNum, wire)
			}
			switch fieldNum {
			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_RequestOfferSnapshot          protoreflect.MessageDescriptor
	fd_RequestOfferSnapshot_snapshot protoreflect.FieldDescriptor
	fd_RequestOfferSnapshot_app_hash protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestOfferSnapshot = File_tendermint_abci_types_proto.Messages().ByName("RequestOfferSnapshot")
	fd_RequestOfferSnapshot_snapshot = md_RequestOfferSnapshot.Fields().ByName("snapshot")
	fd_RequestOfferSnapshot_app_hash = md_RequestOfferSnapshot.Fields().ByName("app_hash")
}

var _ protoreflect.Message = (*fastReflection_RequestOfferSnapshot)(nil)

type fastReflection_RequestOfferSnapshot RequestOfferSnapshot

func (x *RequestOfferSnapshot) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestOfferSnapshot)(x)
}

func (x *RequestOfferSnapshot) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestOfferSnapshot_messageType fastReflection_RequestOfferSnapshot_messageType
var _ protoreflect.MessageType = fastReflection_RequestOfferSnapshot_messageType{}

type fastReflection_RequestOfferSnapshot_messageType struct{}

func (x fastReflection_RequestOfferSnapshot_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestOfferSnapshot)(nil)
}
func (x fastReflection_RequestOfferSnapshot_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestOfferSnapshot)
}
func (x fastReflection_RequestOfferSnapshot_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestOfferSnapshot
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestOfferSnapshot) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestOfferSnapshot
}

// 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_RequestOfferSnapshot) Type() protoreflect.MessageType {
	return _fastReflection_RequestOfferSnapshot_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestOfferSnapshot) New() protoreflect.Message {
	return new(fastReflection_RequestOfferSnapshot)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestOfferSnapshot) Interface() protoreflect.ProtoMessage {
	return (*RequestOfferSnapshot)(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_RequestOfferSnapshot) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Snapshot != nil {
		value := protoreflect.ValueOfMessage(x.Snapshot.ProtoReflect())
		if !f(fd_RequestOfferSnapshot_snapshot, value) {
			return
		}
	}
	if len(x.AppHash) != 0 {
		value := protoreflect.ValueOfBytes(x.AppHash)
		if !f(fd_RequestOfferSnapshot_app_hash, value) {
			return
		}
	}
}

// Has reports whether a field is populated.
//
// Some fields have the property of nullability where it is possible to
// distinguish between the default value of a field and whether the field
// was explicitly populated with the default value. Singular message fields,
// member fields of a oneof, and proto2 scalar fields are nullable. Such
// fields are populated only if explicitly set.
//
// In other cases (aside from the nullable cases above),
// a proto3 scalar field is populated if it contains a non-zero value, and
// a repeated field is populated if it is non-empty.
func (x *fastReflection_RequestOfferSnapshot) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestOfferSnapshot.snapshot":
		return x.Snapshot != nil
	case "tendermint.abci.RequestOfferSnapshot.app_hash":
		return len(x.AppHash) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestOfferSnapshot 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_RequestOfferSnapshot) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestOfferSnapshot.snapshot":
		x.Snapshot = nil
	case "tendermint.abci.RequestOfferSnapshot.app_hash":
		x.AppHash = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestOfferSnapshot 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_RequestOfferSnapshot) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestOfferSnapshot.snapshot":
		value := x.Snapshot
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestOfferSnapshot.app_hash":
		value := x.AppHash
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestOfferSnapshot 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_RequestOfferSnapshot) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestOfferSnapshot.snapshot":
		x.Snapshot = value.Message().Interface().(*Snapshot)
	case "tendermint.abci.RequestOfferSnapshot.app_hash":
		x.AppHash = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestOfferSnapshot 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_RequestOfferSnapshot) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestOfferSnapshot.snapshot":
		if x.Snapshot == nil {
			x.Snapshot = new(Snapshot)
		}
		return protoreflect.ValueOfMessage(x.Snapshot.ProtoReflect())
	case "tendermint.abci.RequestOfferSnapshot.app_hash":
		panic(fmt.Errorf("field app_hash of message tendermint.abci.RequestOfferSnapshot is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestOfferSnapshot 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_RequestOfferSnapshot) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestOfferSnapshot.snapshot":
		m := new(Snapshot)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestOfferSnapshot.app_hash":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestOfferSnapshot 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_RequestOfferSnapshot) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestOfferSnapshot", 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_RequestOfferSnapshot) 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_RequestOfferSnapshot) 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_RequestOfferSnapshot) 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_RequestOfferSnapshot) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestOfferSnapshot)
		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.Snapshot != nil {
			l = options.Size(x.Snapshot)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.AppHash)
		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().(*RequestOfferSnapshot)
		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.AppHash) > 0 {
			i -= len(x.AppHash)
			copy(dAtA[i:], x.AppHash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AppHash)))
			i--
			dAtA[i] = 0x12
		}
		if x.Snapshot != nil {
			encoded, err := options.Marshal(x.Snapshot)
			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().(*RequestOfferSnapshot)
		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: RequestOfferSnapshot: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestOfferSnapshot: 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 Snapshot", 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.Snapshot == nil {
					x.Snapshot = &Snapshot{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Snapshot); 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 AppHash", wireType)
				}
				var byteLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
					}
					if iNdEx >= l {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					byteLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if byteLen < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				postIndex := iNdEx + byteLen
				if postIndex < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if postIndex > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				x.AppHash = append(x.AppHash[:0], dAtA[iNdEx:postIndex]...)
				if x.AppHash == nil {
					x.AppHash = []byte{}
				}
				iNdEx = postIndex
			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_RequestLoadSnapshotChunk        protoreflect.MessageDescriptor
	fd_RequestLoadSnapshotChunk_height protoreflect.FieldDescriptor
	fd_RequestLoadSnapshotChunk_format protoreflect.FieldDescriptor
	fd_RequestLoadSnapshotChunk_chunk  protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestLoadSnapshotChunk = File_tendermint_abci_types_proto.Messages().ByName("RequestLoadSnapshotChunk")
	fd_RequestLoadSnapshotChunk_height = md_RequestLoadSnapshotChunk.Fields().ByName("height")
	fd_RequestLoadSnapshotChunk_format = md_RequestLoadSnapshotChunk.Fields().ByName("format")
	fd_RequestLoadSnapshotChunk_chunk = md_RequestLoadSnapshotChunk.Fields().ByName("chunk")
}

var _ protoreflect.Message = (*fastReflection_RequestLoadSnapshotChunk)(nil)

type fastReflection_RequestLoadSnapshotChunk RequestLoadSnapshotChunk

func (x *RequestLoadSnapshotChunk) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestLoadSnapshotChunk)(x)
}

func (x *RequestLoadSnapshotChunk) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestLoadSnapshotChunk_messageType fastReflection_RequestLoadSnapshotChunk_messageType
var _ protoreflect.MessageType = fastReflection_RequestLoadSnapshotChunk_messageType{}

type fastReflection_RequestLoadSnapshotChunk_messageType struct{}

func (x fastReflection_RequestLoadSnapshotChunk_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestLoadSnapshotChunk)(nil)
}
func (x fastReflection_RequestLoadSnapshotChunk_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestLoadSnapshotChunk)
}
func (x fastReflection_RequestLoadSnapshotChunk_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestLoadSnapshotChunk
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestLoadSnapshotChunk) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestLoadSnapshotChunk
}

// 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_RequestLoadSnapshotChunk) Type() protoreflect.MessageType {
	return _fastReflection_RequestLoadSnapshotChunk_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestLoadSnapshotChunk) New() protoreflect.Message {
	return new(fastReflection_RequestLoadSnapshotChunk)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestLoadSnapshotChunk) Interface() protoreflect.ProtoMessage {
	return (*RequestLoadSnapshotChunk)(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_RequestLoadSnapshotChunk) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Height != uint64(0) {
		value := protoreflect.ValueOfUint64(x.Height)
		if !f(fd_RequestLoadSnapshotChunk_height, value) {
			return
		}
	}
	if x.Format != uint32(0) {
		value := protoreflect.ValueOfUint32(x.Format)
		if !f(fd_RequestLoadSnapshotChunk_format, value) {
			return
		}
	}
	if x.Chunk != uint32(0) {
		value := protoreflect.ValueOfUint32(x.Chunk)
		if !f(fd_RequestLoadSnapshotChunk_chunk, 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_RequestLoadSnapshotChunk) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestLoadSnapshotChunk.height":
		return x.Height != uint64(0)
	case "tendermint.abci.RequestLoadSnapshotChunk.format":
		return x.Format != uint32(0)
	case "tendermint.abci.RequestLoadSnapshotChunk.chunk":
		return x.Chunk != uint32(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestLoadSnapshotChunk 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_RequestLoadSnapshotChunk) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestLoadSnapshotChunk.height":
		x.Height = uint64(0)
	case "tendermint.abci.RequestLoadSnapshotChunk.format":
		x.Format = uint32(0)
	case "tendermint.abci.RequestLoadSnapshotChunk.chunk":
		x.Chunk = uint32(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestLoadSnapshotChunk 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_RequestLoadSnapshotChunk) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestLoadSnapshotChunk.height":
		value := x.Height
		return protoreflect.ValueOfUint64(value)
	case "tendermint.abci.RequestLoadSnapshotChunk.format":
		value := x.Format
		return protoreflect.ValueOfUint32(value)
	case "tendermint.abci.RequestLoadSnapshotChunk.chunk":
		value := x.Chunk
		return protoreflect.ValueOfUint32(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestLoadSnapshotChunk 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_RequestLoadSnapshotChunk) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestLoadSnapshotChunk.height":
		x.Height = value.Uint()
	case "tendermint.abci.RequestLoadSnapshotChunk.format":
		x.Format = uint32(value.Uint())
	case "tendermint.abci.RequestLoadSnapshotChunk.chunk":
		x.Chunk = uint32(value.Uint())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestLoadSnapshotChunk 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_RequestLoadSnapshotChunk) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestLoadSnapshotChunk.height":
		panic(fmt.Errorf("field height of message tendermint.abci.RequestLoadSnapshotChunk is not mutable"))
	case "tendermint.abci.RequestLoadSnapshotChunk.format":
		panic(fmt.Errorf("field format of message tendermint.abci.RequestLoadSnapshotChunk is not mutable"))
	case "tendermint.abci.RequestLoadSnapshotChunk.chunk":
		panic(fmt.Errorf("field chunk of message tendermint.abci.RequestLoadSnapshotChunk is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestLoadSnapshotChunk 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_RequestLoadSnapshotChunk) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestLoadSnapshotChunk.height":
		return protoreflect.ValueOfUint64(uint64(0))
	case "tendermint.abci.RequestLoadSnapshotChunk.format":
		return protoreflect.ValueOfUint32(uint32(0))
	case "tendermint.abci.RequestLoadSnapshotChunk.chunk":
		return protoreflect.ValueOfUint32(uint32(0))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestLoadSnapshotChunk 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_RequestLoadSnapshotChunk) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestLoadSnapshotChunk", 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_RequestLoadSnapshotChunk) 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_RequestLoadSnapshotChunk) 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_RequestLoadSnapshotChunk) 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_RequestLoadSnapshotChunk) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestLoadSnapshotChunk)
		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.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		if x.Format != 0 {
			n += 1 + runtime.Sov(uint64(x.Format))
		}
		if x.Chunk != 0 {
			n += 1 + runtime.Sov(uint64(x.Chunk))
		}
		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().(*RequestLoadSnapshotChunk)
		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.Chunk != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Chunk))
			i--
			dAtA[i] = 0x18
		}
		if x.Format != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Format))
			i--
			dAtA[i] = 0x10
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			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().(*RequestLoadSnapshotChunk)
		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: RequestLoadSnapshotChunk: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestLoadSnapshotChunk: 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 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 2:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Format", wireType)
				}
				x.Format = 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.Format |= 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 Chunk", wireType)
				}
				x.Chunk = 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.Chunk |= uint32(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_RequestApplySnapshotChunk        protoreflect.MessageDescriptor
	fd_RequestApplySnapshotChunk_index  protoreflect.FieldDescriptor
	fd_RequestApplySnapshotChunk_chunk  protoreflect.FieldDescriptor
	fd_RequestApplySnapshotChunk_sender protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestApplySnapshotChunk = File_tendermint_abci_types_proto.Messages().ByName("RequestApplySnapshotChunk")
	fd_RequestApplySnapshotChunk_index = md_RequestApplySnapshotChunk.Fields().ByName("index")
	fd_RequestApplySnapshotChunk_chunk = md_RequestApplySnapshotChunk.Fields().ByName("chunk")
	fd_RequestApplySnapshotChunk_sender = md_RequestApplySnapshotChunk.Fields().ByName("sender")
}

var _ protoreflect.Message = (*fastReflection_RequestApplySnapshotChunk)(nil)

type fastReflection_RequestApplySnapshotChunk RequestApplySnapshotChunk

func (x *RequestApplySnapshotChunk) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestApplySnapshotChunk)(x)
}

func (x *RequestApplySnapshotChunk) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestApplySnapshotChunk_messageType fastReflection_RequestApplySnapshotChunk_messageType
var _ protoreflect.MessageType = fastReflection_RequestApplySnapshotChunk_messageType{}

type fastReflection_RequestApplySnapshotChunk_messageType struct{}

func (x fastReflection_RequestApplySnapshotChunk_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestApplySnapshotChunk)(nil)
}
func (x fastReflection_RequestApplySnapshotChunk_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestApplySnapshotChunk)
}
func (x fastReflection_RequestApplySnapshotChunk_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestApplySnapshotChunk
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestApplySnapshotChunk) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestApplySnapshotChunk
}

// 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_RequestApplySnapshotChunk) Type() protoreflect.MessageType {
	return _fastReflection_RequestApplySnapshotChunk_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestApplySnapshotChunk) New() protoreflect.Message {
	return new(fastReflection_RequestApplySnapshotChunk)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestApplySnapshotChunk) Interface() protoreflect.ProtoMessage {
	return (*RequestApplySnapshotChunk)(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_RequestApplySnapshotChunk) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Index != uint32(0) {
		value := protoreflect.ValueOfUint32(x.Index)
		if !f(fd_RequestApplySnapshotChunk_index, value) {
			return
		}
	}
	if len(x.Chunk) != 0 {
		value := protoreflect.ValueOfBytes(x.Chunk)
		if !f(fd_RequestApplySnapshotChunk_chunk, value) {
			return
		}
	}
	if x.Sender != "" {
		value := protoreflect.ValueOfString(x.Sender)
		if !f(fd_RequestApplySnapshotChunk_sender, 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_RequestApplySnapshotChunk) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestApplySnapshotChunk.index":
		return x.Index != uint32(0)
	case "tendermint.abci.RequestApplySnapshotChunk.chunk":
		return len(x.Chunk) != 0
	case "tendermint.abci.RequestApplySnapshotChunk.sender":
		return x.Sender != ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestApplySnapshotChunk 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_RequestApplySnapshotChunk) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestApplySnapshotChunk.index":
		x.Index = uint32(0)
	case "tendermint.abci.RequestApplySnapshotChunk.chunk":
		x.Chunk = nil
	case "tendermint.abci.RequestApplySnapshotChunk.sender":
		x.Sender = ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestApplySnapshotChunk 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_RequestApplySnapshotChunk) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestApplySnapshotChunk.index":
		value := x.Index
		return protoreflect.ValueOfUint32(value)
	case "tendermint.abci.RequestApplySnapshotChunk.chunk":
		value := x.Chunk
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestApplySnapshotChunk.sender":
		value := x.Sender
		return protoreflect.ValueOfString(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestApplySnapshotChunk 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_RequestApplySnapshotChunk) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestApplySnapshotChunk.index":
		x.Index = uint32(value.Uint())
	case "tendermint.abci.RequestApplySnapshotChunk.chunk":
		x.Chunk = value.Bytes()
	case "tendermint.abci.RequestApplySnapshotChunk.sender":
		x.Sender = value.Interface().(string)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestApplySnapshotChunk 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_RequestApplySnapshotChunk) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestApplySnapshotChunk.index":
		panic(fmt.Errorf("field index of message tendermint.abci.RequestApplySnapshotChunk is not mutable"))
	case "tendermint.abci.RequestApplySnapshotChunk.chunk":
		panic(fmt.Errorf("field chunk of message tendermint.abci.RequestApplySnapshotChunk is not mutable"))
	case "tendermint.abci.RequestApplySnapshotChunk.sender":
		panic(fmt.Errorf("field sender of message tendermint.abci.RequestApplySnapshotChunk is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestApplySnapshotChunk 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_RequestApplySnapshotChunk) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestApplySnapshotChunk.index":
		return protoreflect.ValueOfUint32(uint32(0))
	case "tendermint.abci.RequestApplySnapshotChunk.chunk":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestApplySnapshotChunk.sender":
		return protoreflect.ValueOfString("")
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestApplySnapshotChunk 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_RequestApplySnapshotChunk) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestApplySnapshotChunk", 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_RequestApplySnapshotChunk) 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_RequestApplySnapshotChunk) 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_RequestApplySnapshotChunk) 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_RequestApplySnapshotChunk) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestApplySnapshotChunk)
		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.Index != 0 {
			n += 1 + runtime.Sov(uint64(x.Index))
		}
		l = len(x.Chunk)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Sender)
		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().(*RequestApplySnapshotChunk)
		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.Sender) > 0 {
			i -= len(x.Sender)
			copy(dAtA[i:], x.Sender)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Sender)))
			i--
			dAtA[i] = 0x1a
		}
		if len(x.Chunk) > 0 {
			i -= len(x.Chunk)
			copy(dAtA[i:], x.Chunk)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Chunk)))
			i--
			dAtA[i] = 0x12
		}
		if x.Index != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Index))
			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().(*RequestApplySnapshotChunk)
		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: RequestApplySnapshotChunk: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestApplySnapshotChunk: 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 Index", wireType)
				}
				x.Index = 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.Index |= uint32(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 Chunk", 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.Chunk = append(x.Chunk[:0], dAtA[iNdEx:postIndex]...)
				if x.Chunk == nil {
					x.Chunk = []byte{}
				}
				iNdEx = postIndex
			case 3:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sender", 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.Sender = 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 = (*_RequestPrepareProposal_2_list)(nil)

type _RequestPrepareProposal_2_list struct {
	list *[][]byte
}

func (x *_RequestPrepareProposal_2_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_RequestPrepareProposal_2_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfBytes((*x.list)[i])
}

func (x *_RequestPrepareProposal_2_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	(*x.list)[i] = concreteValue
}

func (x *_RequestPrepareProposal_2_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	*x.list = append(*x.list, concreteValue)
}

func (x *_RequestPrepareProposal_2_list) AppendMutable() protoreflect.Value {
	panic(fmt.Errorf("AppendMutable can not be called on message RequestPrepareProposal at list field Txs as it is not of Message kind"))
}

func (x *_RequestPrepareProposal_2_list) Truncate(n int) {
	*x.list = (*x.list)[:n]
}

func (x *_RequestPrepareProposal_2_list) NewElement() protoreflect.Value {
	var v []byte
	return protoreflect.ValueOfBytes(v)
}

func (x *_RequestPrepareProposal_2_list) IsValid() bool {
	return x.list != nil
}

var _ protoreflect.List = (*_RequestPrepareProposal_4_list)(nil)

type _RequestPrepareProposal_4_list struct {
	list *[]*Misbehavior
}

func (x *_RequestPrepareProposal_4_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_RequestPrepareProposal_4_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_RequestPrepareProposal_4_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Misbehavior)
	(*x.list)[i] = concreteValue
}

func (x *_RequestPrepareProposal_4_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Misbehavior)
	*x.list = append(*x.list, concreteValue)
}

func (x *_RequestPrepareProposal_4_list) AppendMutable() protoreflect.Value {
	v := new(Misbehavior)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestPrepareProposal_4_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_RequestPrepareProposal_4_list) NewElement() protoreflect.Value {
	v := new(Misbehavior)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestPrepareProposal_4_list) IsValid() bool {
	return x.list != nil
}

var (
	md_RequestPrepareProposal                      protoreflect.MessageDescriptor
	fd_RequestPrepareProposal_max_tx_bytes         protoreflect.FieldDescriptor
	fd_RequestPrepareProposal_txs                  protoreflect.FieldDescriptor
	fd_RequestPrepareProposal_local_last_commit    protoreflect.FieldDescriptor
	fd_RequestPrepareProposal_misbehavior          protoreflect.FieldDescriptor
	fd_RequestPrepareProposal_height               protoreflect.FieldDescriptor
	fd_RequestPrepareProposal_time                 protoreflect.FieldDescriptor
	fd_RequestPrepareProposal_next_validators_hash protoreflect.FieldDescriptor
	fd_RequestPrepareProposal_proposer_address     protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestPrepareProposal = File_tendermint_abci_types_proto.Messages().ByName("RequestPrepareProposal")
	fd_RequestPrepareProposal_max_tx_bytes = md_RequestPrepareProposal.Fields().ByName("max_tx_bytes")
	fd_RequestPrepareProposal_txs = md_RequestPrepareProposal.Fields().ByName("txs")
	fd_RequestPrepareProposal_local_last_commit = md_RequestPrepareProposal.Fields().ByName("local_last_commit")
	fd_RequestPrepareProposal_misbehavior = md_RequestPrepareProposal.Fields().ByName("misbehavior")
	fd_RequestPrepareProposal_height = md_RequestPrepareProposal.Fields().ByName("height")
	fd_RequestPrepareProposal_time = md_RequestPrepareProposal.Fields().ByName("time")
	fd_RequestPrepareProposal_next_validators_hash = md_RequestPrepareProposal.Fields().ByName("next_validators_hash")
	fd_RequestPrepareProposal_proposer_address = md_RequestPrepareProposal.Fields().ByName("proposer_address")
}

var _ protoreflect.Message = (*fastReflection_RequestPrepareProposal)(nil)

type fastReflection_RequestPrepareProposal RequestPrepareProposal

func (x *RequestPrepareProposal) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestPrepareProposal)(x)
}

func (x *RequestPrepareProposal) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestPrepareProposal_messageType fastReflection_RequestPrepareProposal_messageType
var _ protoreflect.MessageType = fastReflection_RequestPrepareProposal_messageType{}

type fastReflection_RequestPrepareProposal_messageType struct{}

func (x fastReflection_RequestPrepareProposal_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestPrepareProposal)(nil)
}
func (x fastReflection_RequestPrepareProposal_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestPrepareProposal)
}
func (x fastReflection_RequestPrepareProposal_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestPrepareProposal
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestPrepareProposal) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestPrepareProposal
}

// 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_RequestPrepareProposal) Type() protoreflect.MessageType {
	return _fastReflection_RequestPrepareProposal_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestPrepareProposal) New() protoreflect.Message {
	return new(fastReflection_RequestPrepareProposal)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestPrepareProposal) Interface() protoreflect.ProtoMessage {
	return (*RequestPrepareProposal)(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_RequestPrepareProposal) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.MaxTxBytes != int64(0) {
		value := protoreflect.ValueOfInt64(x.MaxTxBytes)
		if !f(fd_RequestPrepareProposal_max_tx_bytes, value) {
			return
		}
	}
	if len(x.Txs) != 0 {
		value := protoreflect.ValueOfList(&_RequestPrepareProposal_2_list{list: &x.Txs})
		if !f(fd_RequestPrepareProposal_txs, value) {
			return
		}
	}
	if x.LocalLastCommit != nil {
		value := protoreflect.ValueOfMessage(x.LocalLastCommit.ProtoReflect())
		if !f(fd_RequestPrepareProposal_local_last_commit, value) {
			return
		}
	}
	if len(x.Misbehavior) != 0 {
		value := protoreflect.ValueOfList(&_RequestPrepareProposal_4_list{list: &x.Misbehavior})
		if !f(fd_RequestPrepareProposal_misbehavior, value) {
			return
		}
	}
	if x.Height != int64(0) {
		value := protoreflect.ValueOfInt64(x.Height)
		if !f(fd_RequestPrepareProposal_height, value) {
			return
		}
	}
	if x.Time != nil {
		value := protoreflect.ValueOfMessage(x.Time.ProtoReflect())
		if !f(fd_RequestPrepareProposal_time, value) {
			return
		}
	}
	if len(x.NextValidatorsHash) != 0 {
		value := protoreflect.ValueOfBytes(x.NextValidatorsHash)
		if !f(fd_RequestPrepareProposal_next_validators_hash, value) {
			return
		}
	}
	if len(x.ProposerAddress) != 0 {
		value := protoreflect.ValueOfBytes(x.ProposerAddress)
		if !f(fd_RequestPrepareProposal_proposer_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_RequestPrepareProposal) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestPrepareProposal.max_tx_bytes":
		return x.MaxTxBytes != int64(0)
	case "tendermint.abci.RequestPrepareProposal.txs":
		return len(x.Txs) != 0
	case "tendermint.abci.RequestPrepareProposal.local_last_commit":
		return x.LocalLastCommit != nil
	case "tendermint.abci.RequestPrepareProposal.misbehavior":
		return len(x.Misbehavior) != 0
	case "tendermint.abci.RequestPrepareProposal.height":
		return x.Height != int64(0)
	case "tendermint.abci.RequestPrepareProposal.time":
		return x.Time != nil
	case "tendermint.abci.RequestPrepareProposal.next_validators_hash":
		return len(x.NextValidatorsHash) != 0
	case "tendermint.abci.RequestPrepareProposal.proposer_address":
		return len(x.ProposerAddress) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestPrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestPrepareProposal 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_RequestPrepareProposal) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestPrepareProposal.max_tx_bytes":
		x.MaxTxBytes = int64(0)
	case "tendermint.abci.RequestPrepareProposal.txs":
		x.Txs = nil
	case "tendermint.abci.RequestPrepareProposal.local_last_commit":
		x.LocalLastCommit = nil
	case "tendermint.abci.RequestPrepareProposal.misbehavior":
		x.Misbehavior = nil
	case "tendermint.abci.RequestPrepareProposal.height":
		x.Height = int64(0)
	case "tendermint.abci.RequestPrepareProposal.time":
		x.Time = nil
	case "tendermint.abci.RequestPrepareProposal.next_validators_hash":
		x.NextValidatorsHash = nil
	case "tendermint.abci.RequestPrepareProposal.proposer_address":
		x.ProposerAddress = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestPrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestPrepareProposal 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_RequestPrepareProposal) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestPrepareProposal.max_tx_bytes":
		value := x.MaxTxBytes
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.RequestPrepareProposal.txs":
		if len(x.Txs) == 0 {
			return protoreflect.ValueOfList(&_RequestPrepareProposal_2_list{})
		}
		listValue := &_RequestPrepareProposal_2_list{list: &x.Txs}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.RequestPrepareProposal.local_last_commit":
		value := x.LocalLastCommit
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestPrepareProposal.misbehavior":
		if len(x.Misbehavior) == 0 {
			return protoreflect.ValueOfList(&_RequestPrepareProposal_4_list{})
		}
		listValue := &_RequestPrepareProposal_4_list{list: &x.Misbehavior}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.RequestPrepareProposal.height":
		value := x.Height
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.RequestPrepareProposal.time":
		value := x.Time
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestPrepareProposal.next_validators_hash":
		value := x.NextValidatorsHash
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestPrepareProposal.proposer_address":
		value := x.ProposerAddress
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestPrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestPrepareProposal 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_RequestPrepareProposal) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestPrepareProposal.max_tx_bytes":
		x.MaxTxBytes = value.Int()
	case "tendermint.abci.RequestPrepareProposal.txs":
		lv := value.List()
		clv := lv.(*_RequestPrepareProposal_2_list)
		x.Txs = *clv.list
	case "tendermint.abci.RequestPrepareProposal.local_last_commit":
		x.LocalLastCommit = value.Message().Interface().(*ExtendedCommitInfo)
	case "tendermint.abci.RequestPrepareProposal.misbehavior":
		lv := value.List()
		clv := lv.(*_RequestPrepareProposal_4_list)
		x.Misbehavior = *clv.list
	case "tendermint.abci.RequestPrepareProposal.height":
		x.Height = value.Int()
	case "tendermint.abci.RequestPrepareProposal.time":
		x.Time = value.Message().Interface().(*timestamppb.Timestamp)
	case "tendermint.abci.RequestPrepareProposal.next_validators_hash":
		x.NextValidatorsHash = value.Bytes()
	case "tendermint.abci.RequestPrepareProposal.proposer_address":
		x.ProposerAddress = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestPrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestPrepareProposal 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_RequestPrepareProposal) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestPrepareProposal.txs":
		if x.Txs == nil {
			x.Txs = [][]byte{}
		}
		value := &_RequestPrepareProposal_2_list{list: &x.Txs}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.RequestPrepareProposal.local_last_commit":
		if x.LocalLastCommit == nil {
			x.LocalLastCommit = new(ExtendedCommitInfo)
		}
		return protoreflect.ValueOfMessage(x.LocalLastCommit.ProtoReflect())
	case "tendermint.abci.RequestPrepareProposal.misbehavior":
		if x.Misbehavior == nil {
			x.Misbehavior = []*Misbehavior{}
		}
		value := &_RequestPrepareProposal_4_list{list: &x.Misbehavior}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.RequestPrepareProposal.time":
		if x.Time == nil {
			x.Time = new(timestamppb.Timestamp)
		}
		return protoreflect.ValueOfMessage(x.Time.ProtoReflect())
	case "tendermint.abci.RequestPrepareProposal.max_tx_bytes":
		panic(fmt.Errorf("field max_tx_bytes of message tendermint.abci.RequestPrepareProposal is not mutable"))
	case "tendermint.abci.RequestPrepareProposal.height":
		panic(fmt.Errorf("field height of message tendermint.abci.RequestPrepareProposal is not mutable"))
	case "tendermint.abci.RequestPrepareProposal.next_validators_hash":
		panic(fmt.Errorf("field next_validators_hash of message tendermint.abci.RequestPrepareProposal is not mutable"))
	case "tendermint.abci.RequestPrepareProposal.proposer_address":
		panic(fmt.Errorf("field proposer_address of message tendermint.abci.RequestPrepareProposal is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestPrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestPrepareProposal 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_RequestPrepareProposal) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestPrepareProposal.max_tx_bytes":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.RequestPrepareProposal.txs":
		list := [][]byte{}
		return protoreflect.ValueOfList(&_RequestPrepareProposal_2_list{list: &list})
	case "tendermint.abci.RequestPrepareProposal.local_last_commit":
		m := new(ExtendedCommitInfo)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestPrepareProposal.misbehavior":
		list := []*Misbehavior{}
		return protoreflect.ValueOfList(&_RequestPrepareProposal_4_list{list: &list})
	case "tendermint.abci.RequestPrepareProposal.height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.RequestPrepareProposal.time":
		m := new(timestamppb.Timestamp)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestPrepareProposal.next_validators_hash":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestPrepareProposal.proposer_address":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestPrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestPrepareProposal 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_RequestPrepareProposal) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestPrepareProposal", 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_RequestPrepareProposal) 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_RequestPrepareProposal) 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_RequestPrepareProposal) 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_RequestPrepareProposal) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestPrepareProposal)
		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.MaxTxBytes != 0 {
			n += 1 + runtime.Sov(uint64(x.MaxTxBytes))
		}
		if len(x.Txs) > 0 {
			for _, b := range x.Txs {
				l = len(b)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		if x.LocalLastCommit != nil {
			l = options.Size(x.LocalLastCommit)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if len(x.Misbehavior) > 0 {
			for _, e := range x.Misbehavior {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		if x.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		if x.Time != nil {
			l = options.Size(x.Time)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.NextValidatorsHash)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.ProposerAddress)
		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().(*RequestPrepareProposal)
		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.ProposerAddress) > 0 {
			i -= len(x.ProposerAddress)
			copy(dAtA[i:], x.ProposerAddress)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ProposerAddress)))
			i--
			dAtA[i] = 0x42
		}
		if len(x.NextValidatorsHash) > 0 {
			i -= len(x.NextValidatorsHash)
			copy(dAtA[i:], x.NextValidatorsHash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NextValidatorsHash)))
			i--
			dAtA[i] = 0x3a
		}
		if x.Time != nil {
			encoded, err := options.Marshal(x.Time)
			if err != nil {
				return protoiface.MarshalOutput{
					NoUnkeyedLiterals: input.NoUnkeyedLiterals,
					Buf:               input.Buf,
				}, err
			}
			i -= len(encoded)
			copy(dAtA[i:], encoded)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
			i--
			dAtA[i] = 0x32
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			i--
			dAtA[i] = 0x28
		}
		if len(x.Misbehavior) > 0 {
			for iNdEx := len(x.Misbehavior) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Misbehavior[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 x.LocalLastCommit != nil {
			encoded, err := options.Marshal(x.LocalLastCommit)
			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.Txs) > 0 {
			for iNdEx := len(x.Txs) - 1; iNdEx >= 0; iNdEx-- {
				i -= len(x.Txs[iNdEx])
				copy(dAtA[i:], x.Txs[iNdEx])
				i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Txs[iNdEx])))
				i--
				dAtA[i] = 0x12
			}
		}
		if x.MaxTxBytes != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.MaxTxBytes))
			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().(*RequestPrepareProposal)
		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: RequestPrepareProposal: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestPrepareProposal: 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 MaxTxBytes", wireType)
				}
				x.MaxTxBytes = 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.MaxTxBytes |= 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 Txs", 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.Txs = append(x.Txs, make([]byte, postIndex-iNdEx))
				copy(x.Txs[len(x.Txs)-1], 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 LocalLastCommit", 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.LocalLastCommit == nil {
					x.LocalLastCommit = &ExtendedCommitInfo{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.LocalLastCommit); 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 Misbehavior", 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.Misbehavior = append(x.Misbehavior, &Misbehavior{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Misbehavior[len(x.Misbehavior)-1]); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 5:
				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 |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 6:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
				}
				var msglen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
					}
					if iNdEx >= l {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					msglen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if msglen < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				postIndex := iNdEx + msglen
				if postIndex < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if postIndex > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if x.Time == nil {
					x.Time = &timestamppb.Timestamp{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Time); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 7:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", 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.NextValidatorsHash = append(x.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
				if x.NextValidatorsHash == nil {
					x.NextValidatorsHash = []byte{}
				}
				iNdEx = postIndex
			case 8:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", 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.ProposerAddress = append(x.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
				if x.ProposerAddress == nil {
					x.ProposerAddress = []byte{}
				}
				iNdEx = postIndex
			default:
				iNdEx = preIndex
				skippy, err := runtime.Skip(dAtA[iNdEx:])
				if err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				if (skippy < 0) || (iNdEx+skippy) < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if (iNdEx + skippy) > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if !options.DiscardUnknown {
					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
				}
				iNdEx += skippy
			}
		}

		if iNdEx > l {
			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
		}
		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
	}
	return &protoiface.Methods{
		NoUnkeyedLiterals: struct{}{},
		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
		Size:              size,
		Marshal:           marshal,
		Unmarshal:         unmarshal,
		Merge:             nil,
		CheckInitialized:  nil,
	}
}

var _ protoreflect.List = (*_RequestProcessProposal_1_list)(nil)

type _RequestProcessProposal_1_list struct {
	list *[][]byte
}

func (x *_RequestProcessProposal_1_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_RequestProcessProposal_1_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfBytes((*x.list)[i])
}

func (x *_RequestProcessProposal_1_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	(*x.list)[i] = concreteValue
}

func (x *_RequestProcessProposal_1_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	*x.list = append(*x.list, concreteValue)
}

func (x *_RequestProcessProposal_1_list) AppendMutable() protoreflect.Value {
	panic(fmt.Errorf("AppendMutable can not be called on message RequestProcessProposal at list field Txs as it is not of Message kind"))
}

func (x *_RequestProcessProposal_1_list) Truncate(n int) {
	*x.list = (*x.list)[:n]
}

func (x *_RequestProcessProposal_1_list) NewElement() protoreflect.Value {
	var v []byte
	return protoreflect.ValueOfBytes(v)
}

func (x *_RequestProcessProposal_1_list) IsValid() bool {
	return x.list != nil
}

var _ protoreflect.List = (*_RequestProcessProposal_3_list)(nil)

type _RequestProcessProposal_3_list struct {
	list *[]*Misbehavior
}

func (x *_RequestProcessProposal_3_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_RequestProcessProposal_3_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_RequestProcessProposal_3_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Misbehavior)
	(*x.list)[i] = concreteValue
}

func (x *_RequestProcessProposal_3_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Misbehavior)
	*x.list = append(*x.list, concreteValue)
}

func (x *_RequestProcessProposal_3_list) AppendMutable() protoreflect.Value {
	v := new(Misbehavior)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestProcessProposal_3_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_RequestProcessProposal_3_list) NewElement() protoreflect.Value {
	v := new(Misbehavior)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestProcessProposal_3_list) IsValid() bool {
	return x.list != nil
}

var (
	md_RequestProcessProposal                      protoreflect.MessageDescriptor
	fd_RequestProcessProposal_txs                  protoreflect.FieldDescriptor
	fd_RequestProcessProposal_proposed_last_commit protoreflect.FieldDescriptor
	fd_RequestProcessProposal_misbehavior          protoreflect.FieldDescriptor
	fd_RequestProcessProposal_hash                 protoreflect.FieldDescriptor
	fd_RequestProcessProposal_height               protoreflect.FieldDescriptor
	fd_RequestProcessProposal_time                 protoreflect.FieldDescriptor
	fd_RequestProcessProposal_next_validators_hash protoreflect.FieldDescriptor
	fd_RequestProcessProposal_proposer_address     protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestProcessProposal = File_tendermint_abci_types_proto.Messages().ByName("RequestProcessProposal")
	fd_RequestProcessProposal_txs = md_RequestProcessProposal.Fields().ByName("txs")
	fd_RequestProcessProposal_proposed_last_commit = md_RequestProcessProposal.Fields().ByName("proposed_last_commit")
	fd_RequestProcessProposal_misbehavior = md_RequestProcessProposal.Fields().ByName("misbehavior")
	fd_RequestProcessProposal_hash = md_RequestProcessProposal.Fields().ByName("hash")
	fd_RequestProcessProposal_height = md_RequestProcessProposal.Fields().ByName("height")
	fd_RequestProcessProposal_time = md_RequestProcessProposal.Fields().ByName("time")
	fd_RequestProcessProposal_next_validators_hash = md_RequestProcessProposal.Fields().ByName("next_validators_hash")
	fd_RequestProcessProposal_proposer_address = md_RequestProcessProposal.Fields().ByName("proposer_address")
}

var _ protoreflect.Message = (*fastReflection_RequestProcessProposal)(nil)

type fastReflection_RequestProcessProposal RequestProcessProposal

func (x *RequestProcessProposal) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestProcessProposal)(x)
}

func (x *RequestProcessProposal) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestProcessProposal_messageType fastReflection_RequestProcessProposal_messageType
var _ protoreflect.MessageType = fastReflection_RequestProcessProposal_messageType{}

type fastReflection_RequestProcessProposal_messageType struct{}

func (x fastReflection_RequestProcessProposal_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestProcessProposal)(nil)
}
func (x fastReflection_RequestProcessProposal_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestProcessProposal)
}
func (x fastReflection_RequestProcessProposal_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestProcessProposal
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestProcessProposal) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestProcessProposal
}

// 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_RequestProcessProposal) Type() protoreflect.MessageType {
	return _fastReflection_RequestProcessProposal_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestProcessProposal) New() protoreflect.Message {
	return new(fastReflection_RequestProcessProposal)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestProcessProposal) Interface() protoreflect.ProtoMessage {
	return (*RequestProcessProposal)(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_RequestProcessProposal) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Txs) != 0 {
		value := protoreflect.ValueOfList(&_RequestProcessProposal_1_list{list: &x.Txs})
		if !f(fd_RequestProcessProposal_txs, value) {
			return
		}
	}
	if x.ProposedLastCommit != nil {
		value := protoreflect.ValueOfMessage(x.ProposedLastCommit.ProtoReflect())
		if !f(fd_RequestProcessProposal_proposed_last_commit, value) {
			return
		}
	}
	if len(x.Misbehavior) != 0 {
		value := protoreflect.ValueOfList(&_RequestProcessProposal_3_list{list: &x.Misbehavior})
		if !f(fd_RequestProcessProposal_misbehavior, value) {
			return
		}
	}
	if len(x.Hash) != 0 {
		value := protoreflect.ValueOfBytes(x.Hash)
		if !f(fd_RequestProcessProposal_hash, value) {
			return
		}
	}
	if x.Height != int64(0) {
		value := protoreflect.ValueOfInt64(x.Height)
		if !f(fd_RequestProcessProposal_height, value) {
			return
		}
	}
	if x.Time != nil {
		value := protoreflect.ValueOfMessage(x.Time.ProtoReflect())
		if !f(fd_RequestProcessProposal_time, value) {
			return
		}
	}
	if len(x.NextValidatorsHash) != 0 {
		value := protoreflect.ValueOfBytes(x.NextValidatorsHash)
		if !f(fd_RequestProcessProposal_next_validators_hash, value) {
			return
		}
	}
	if len(x.ProposerAddress) != 0 {
		value := protoreflect.ValueOfBytes(x.ProposerAddress)
		if !f(fd_RequestProcessProposal_proposer_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_RequestProcessProposal) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestProcessProposal.txs":
		return len(x.Txs) != 0
	case "tendermint.abci.RequestProcessProposal.proposed_last_commit":
		return x.ProposedLastCommit != nil
	case "tendermint.abci.RequestProcessProposal.misbehavior":
		return len(x.Misbehavior) != 0
	case "tendermint.abci.RequestProcessProposal.hash":
		return len(x.Hash) != 0
	case "tendermint.abci.RequestProcessProposal.height":
		return x.Height != int64(0)
	case "tendermint.abci.RequestProcessProposal.time":
		return x.Time != nil
	case "tendermint.abci.RequestProcessProposal.next_validators_hash":
		return len(x.NextValidatorsHash) != 0
	case "tendermint.abci.RequestProcessProposal.proposer_address":
		return len(x.ProposerAddress) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestProcessProposal 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_RequestProcessProposal) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestProcessProposal.txs":
		x.Txs = nil
	case "tendermint.abci.RequestProcessProposal.proposed_last_commit":
		x.ProposedLastCommit = nil
	case "tendermint.abci.RequestProcessProposal.misbehavior":
		x.Misbehavior = nil
	case "tendermint.abci.RequestProcessProposal.hash":
		x.Hash = nil
	case "tendermint.abci.RequestProcessProposal.height":
		x.Height = int64(0)
	case "tendermint.abci.RequestProcessProposal.time":
		x.Time = nil
	case "tendermint.abci.RequestProcessProposal.next_validators_hash":
		x.NextValidatorsHash = nil
	case "tendermint.abci.RequestProcessProposal.proposer_address":
		x.ProposerAddress = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestProcessProposal 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_RequestProcessProposal) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestProcessProposal.txs":
		if len(x.Txs) == 0 {
			return protoreflect.ValueOfList(&_RequestProcessProposal_1_list{})
		}
		listValue := &_RequestProcessProposal_1_list{list: &x.Txs}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.RequestProcessProposal.proposed_last_commit":
		value := x.ProposedLastCommit
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestProcessProposal.misbehavior":
		if len(x.Misbehavior) == 0 {
			return protoreflect.ValueOfList(&_RequestProcessProposal_3_list{})
		}
		listValue := &_RequestProcessProposal_3_list{list: &x.Misbehavior}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.RequestProcessProposal.hash":
		value := x.Hash
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestProcessProposal.height":
		value := x.Height
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.RequestProcessProposal.time":
		value := x.Time
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestProcessProposal.next_validators_hash":
		value := x.NextValidatorsHash
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestProcessProposal.proposer_address":
		value := x.ProposerAddress
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestProcessProposal 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_RequestProcessProposal) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestProcessProposal.txs":
		lv := value.List()
		clv := lv.(*_RequestProcessProposal_1_list)
		x.Txs = *clv.list
	case "tendermint.abci.RequestProcessProposal.proposed_last_commit":
		x.ProposedLastCommit = value.Message().Interface().(*CommitInfo)
	case "tendermint.abci.RequestProcessProposal.misbehavior":
		lv := value.List()
		clv := lv.(*_RequestProcessProposal_3_list)
		x.Misbehavior = *clv.list
	case "tendermint.abci.RequestProcessProposal.hash":
		x.Hash = value.Bytes()
	case "tendermint.abci.RequestProcessProposal.height":
		x.Height = value.Int()
	case "tendermint.abci.RequestProcessProposal.time":
		x.Time = value.Message().Interface().(*timestamppb.Timestamp)
	case "tendermint.abci.RequestProcessProposal.next_validators_hash":
		x.NextValidatorsHash = value.Bytes()
	case "tendermint.abci.RequestProcessProposal.proposer_address":
		x.ProposerAddress = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestProcessProposal 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_RequestProcessProposal) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestProcessProposal.txs":
		if x.Txs == nil {
			x.Txs = [][]byte{}
		}
		value := &_RequestProcessProposal_1_list{list: &x.Txs}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.RequestProcessProposal.proposed_last_commit":
		if x.ProposedLastCommit == nil {
			x.ProposedLastCommit = new(CommitInfo)
		}
		return protoreflect.ValueOfMessage(x.ProposedLastCommit.ProtoReflect())
	case "tendermint.abci.RequestProcessProposal.misbehavior":
		if x.Misbehavior == nil {
			x.Misbehavior = []*Misbehavior{}
		}
		value := &_RequestProcessProposal_3_list{list: &x.Misbehavior}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.RequestProcessProposal.time":
		if x.Time == nil {
			x.Time = new(timestamppb.Timestamp)
		}
		return protoreflect.ValueOfMessage(x.Time.ProtoReflect())
	case "tendermint.abci.RequestProcessProposal.hash":
		panic(fmt.Errorf("field hash of message tendermint.abci.RequestProcessProposal is not mutable"))
	case "tendermint.abci.RequestProcessProposal.height":
		panic(fmt.Errorf("field height of message tendermint.abci.RequestProcessProposal is not mutable"))
	case "tendermint.abci.RequestProcessProposal.next_validators_hash":
		panic(fmt.Errorf("field next_validators_hash of message tendermint.abci.RequestProcessProposal is not mutable"))
	case "tendermint.abci.RequestProcessProposal.proposer_address":
		panic(fmt.Errorf("field proposer_address of message tendermint.abci.RequestProcessProposal is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestProcessProposal 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_RequestProcessProposal) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestProcessProposal.txs":
		list := [][]byte{}
		return protoreflect.ValueOfList(&_RequestProcessProposal_1_list{list: &list})
	case "tendermint.abci.RequestProcessProposal.proposed_last_commit":
		m := new(CommitInfo)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestProcessProposal.misbehavior":
		list := []*Misbehavior{}
		return protoreflect.ValueOfList(&_RequestProcessProposal_3_list{list: &list})
	case "tendermint.abci.RequestProcessProposal.hash":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestProcessProposal.height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.RequestProcessProposal.time":
		m := new(timestamppb.Timestamp)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestProcessProposal.next_validators_hash":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestProcessProposal.proposer_address":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestProcessProposal 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_RequestProcessProposal) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestProcessProposal", 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_RequestProcessProposal) 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_RequestProcessProposal) 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_RequestProcessProposal) 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_RequestProcessProposal) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestProcessProposal)
		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.Txs) > 0 {
			for _, b := range x.Txs {
				l = len(b)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		if x.ProposedLastCommit != nil {
			l = options.Size(x.ProposedLastCommit)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if len(x.Misbehavior) > 0 {
			for _, e := range x.Misbehavior {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		l = len(x.Hash)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		if x.Time != nil {
			l = options.Size(x.Time)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.NextValidatorsHash)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.ProposerAddress)
		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().(*RequestProcessProposal)
		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.ProposerAddress) > 0 {
			i -= len(x.ProposerAddress)
			copy(dAtA[i:], x.ProposerAddress)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ProposerAddress)))
			i--
			dAtA[i] = 0x42
		}
		if len(x.NextValidatorsHash) > 0 {
			i -= len(x.NextValidatorsHash)
			copy(dAtA[i:], x.NextValidatorsHash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NextValidatorsHash)))
			i--
			dAtA[i] = 0x3a
		}
		if x.Time != nil {
			encoded, err := options.Marshal(x.Time)
			if err != nil {
				return protoiface.MarshalOutput{
					NoUnkeyedLiterals: input.NoUnkeyedLiterals,
					Buf:               input.Buf,
				}, err
			}
			i -= len(encoded)
			copy(dAtA[i:], encoded)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
			i--
			dAtA[i] = 0x32
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			i--
			dAtA[i] = 0x28
		}
		if len(x.Hash) > 0 {
			i -= len(x.Hash)
			copy(dAtA[i:], x.Hash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Hash)))
			i--
			dAtA[i] = 0x22
		}
		if len(x.Misbehavior) > 0 {
			for iNdEx := len(x.Misbehavior) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Misbehavior[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 x.ProposedLastCommit != nil {
			encoded, err := options.Marshal(x.ProposedLastCommit)
			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.Txs) > 0 {
			for iNdEx := len(x.Txs) - 1; iNdEx >= 0; iNdEx-- {
				i -= len(x.Txs[iNdEx])
				copy(dAtA[i:], x.Txs[iNdEx])
				i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Txs[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().(*RequestProcessProposal)
		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: RequestProcessProposal: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestProcessProposal: 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 Txs", 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.Txs = append(x.Txs, make([]byte, postIndex-iNdEx))
				copy(x.Txs[len(x.Txs)-1], 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 ProposedLastCommit", 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.ProposedLastCommit == nil {
					x.ProposedLastCommit = &CommitInfo{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ProposedLastCommit); 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 Misbehavior", 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.Misbehavior = append(x.Misbehavior, &Misbehavior{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Misbehavior[len(x.Misbehavior)-1]); 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 Hash", 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.Hash = append(x.Hash[:0], dAtA[iNdEx:postIndex]...)
				if x.Hash == nil {
					x.Hash = []byte{}
				}
				iNdEx = postIndex
			case 5:
				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 |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 6:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
				}
				var msglen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
					}
					if iNdEx >= l {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					msglen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if msglen < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				postIndex := iNdEx + msglen
				if postIndex < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if postIndex > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if x.Time == nil {
					x.Time = &timestamppb.Timestamp{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Time); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 7:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", 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.NextValidatorsHash = append(x.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
				if x.NextValidatorsHash == nil {
					x.NextValidatorsHash = []byte{}
				}
				iNdEx = postIndex
			case 8:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", 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.ProposerAddress = append(x.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
				if x.ProposerAddress == nil {
					x.ProposerAddress = []byte{}
				}
				iNdEx = postIndex
			default:
				iNdEx = preIndex
				skippy, err := runtime.Skip(dAtA[iNdEx:])
				if err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				if (skippy < 0) || (iNdEx+skippy) < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if (iNdEx + skippy) > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if !options.DiscardUnknown {
					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
				}
				iNdEx += skippy
			}
		}

		if iNdEx > l {
			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
		}
		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
	}
	return &protoiface.Methods{
		NoUnkeyedLiterals: struct{}{},
		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
		Size:              size,
		Marshal:           marshal,
		Unmarshal:         unmarshal,
		Merge:             nil,
		CheckInitialized:  nil,
	}
}

var _ protoreflect.List = (*_RequestExtendVote_4_list)(nil)

type _RequestExtendVote_4_list struct {
	list *[][]byte
}

func (x *_RequestExtendVote_4_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_RequestExtendVote_4_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfBytes((*x.list)[i])
}

func (x *_RequestExtendVote_4_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	(*x.list)[i] = concreteValue
}

func (x *_RequestExtendVote_4_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	*x.list = append(*x.list, concreteValue)
}

func (x *_RequestExtendVote_4_list) AppendMutable() protoreflect.Value {
	panic(fmt.Errorf("AppendMutable can not be called on message RequestExtendVote at list field Txs as it is not of Message kind"))
}

func (x *_RequestExtendVote_4_list) Truncate(n int) {
	*x.list = (*x.list)[:n]
}

func (x *_RequestExtendVote_4_list) NewElement() protoreflect.Value {
	var v []byte
	return protoreflect.ValueOfBytes(v)
}

func (x *_RequestExtendVote_4_list) IsValid() bool {
	return x.list != nil
}

var _ protoreflect.List = (*_RequestExtendVote_6_list)(nil)

type _RequestExtendVote_6_list struct {
	list *[]*Misbehavior
}

func (x *_RequestExtendVote_6_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_RequestExtendVote_6_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_RequestExtendVote_6_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Misbehavior)
	(*x.list)[i] = concreteValue
}

func (x *_RequestExtendVote_6_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Misbehavior)
	*x.list = append(*x.list, concreteValue)
}

func (x *_RequestExtendVote_6_list) AppendMutable() protoreflect.Value {
	v := new(Misbehavior)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestExtendVote_6_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_RequestExtendVote_6_list) NewElement() protoreflect.Value {
	v := new(Misbehavior)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestExtendVote_6_list) IsValid() bool {
	return x.list != nil
}

var (
	md_RequestExtendVote                      protoreflect.MessageDescriptor
	fd_RequestExtendVote_hash                 protoreflect.FieldDescriptor
	fd_RequestExtendVote_height               protoreflect.FieldDescriptor
	fd_RequestExtendVote_time                 protoreflect.FieldDescriptor
	fd_RequestExtendVote_txs                  protoreflect.FieldDescriptor
	fd_RequestExtendVote_proposed_last_commit protoreflect.FieldDescriptor
	fd_RequestExtendVote_misbehavior          protoreflect.FieldDescriptor
	fd_RequestExtendVote_next_validators_hash protoreflect.FieldDescriptor
	fd_RequestExtendVote_proposer_address     protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestExtendVote = File_tendermint_abci_types_proto.Messages().ByName("RequestExtendVote")
	fd_RequestExtendVote_hash = md_RequestExtendVote.Fields().ByName("hash")
	fd_RequestExtendVote_height = md_RequestExtendVote.Fields().ByName("height")
	fd_RequestExtendVote_time = md_RequestExtendVote.Fields().ByName("time")
	fd_RequestExtendVote_txs = md_RequestExtendVote.Fields().ByName("txs")
	fd_RequestExtendVote_proposed_last_commit = md_RequestExtendVote.Fields().ByName("proposed_last_commit")
	fd_RequestExtendVote_misbehavior = md_RequestExtendVote.Fields().ByName("misbehavior")
	fd_RequestExtendVote_next_validators_hash = md_RequestExtendVote.Fields().ByName("next_validators_hash")
	fd_RequestExtendVote_proposer_address = md_RequestExtendVote.Fields().ByName("proposer_address")
}

var _ protoreflect.Message = (*fastReflection_RequestExtendVote)(nil)

type fastReflection_RequestExtendVote RequestExtendVote

func (x *RequestExtendVote) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestExtendVote)(x)
}

func (x *RequestExtendVote) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestExtendVote_messageType fastReflection_RequestExtendVote_messageType
var _ protoreflect.MessageType = fastReflection_RequestExtendVote_messageType{}

type fastReflection_RequestExtendVote_messageType struct{}

func (x fastReflection_RequestExtendVote_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestExtendVote)(nil)
}
func (x fastReflection_RequestExtendVote_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestExtendVote)
}
func (x fastReflection_RequestExtendVote_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestExtendVote
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestExtendVote) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestExtendVote
}

// 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_RequestExtendVote) Type() protoreflect.MessageType {
	return _fastReflection_RequestExtendVote_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestExtendVote) New() protoreflect.Message {
	return new(fastReflection_RequestExtendVote)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestExtendVote) Interface() protoreflect.ProtoMessage {
	return (*RequestExtendVote)(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_RequestExtendVote) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Hash) != 0 {
		value := protoreflect.ValueOfBytes(x.Hash)
		if !f(fd_RequestExtendVote_hash, value) {
			return
		}
	}
	if x.Height != int64(0) {
		value := protoreflect.ValueOfInt64(x.Height)
		if !f(fd_RequestExtendVote_height, value) {
			return
		}
	}
	if x.Time != nil {
		value := protoreflect.ValueOfMessage(x.Time.ProtoReflect())
		if !f(fd_RequestExtendVote_time, value) {
			return
		}
	}
	if len(x.Txs) != 0 {
		value := protoreflect.ValueOfList(&_RequestExtendVote_4_list{list: &x.Txs})
		if !f(fd_RequestExtendVote_txs, value) {
			return
		}
	}
	if x.ProposedLastCommit != nil {
		value := protoreflect.ValueOfMessage(x.ProposedLastCommit.ProtoReflect())
		if !f(fd_RequestExtendVote_proposed_last_commit, value) {
			return
		}
	}
	if len(x.Misbehavior) != 0 {
		value := protoreflect.ValueOfList(&_RequestExtendVote_6_list{list: &x.Misbehavior})
		if !f(fd_RequestExtendVote_misbehavior, value) {
			return
		}
	}
	if len(x.NextValidatorsHash) != 0 {
		value := protoreflect.ValueOfBytes(x.NextValidatorsHash)
		if !f(fd_RequestExtendVote_next_validators_hash, value) {
			return
		}
	}
	if len(x.ProposerAddress) != 0 {
		value := protoreflect.ValueOfBytes(x.ProposerAddress)
		if !f(fd_RequestExtendVote_proposer_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_RequestExtendVote) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestExtendVote.hash":
		return len(x.Hash) != 0
	case "tendermint.abci.RequestExtendVote.height":
		return x.Height != int64(0)
	case "tendermint.abci.RequestExtendVote.time":
		return x.Time != nil
	case "tendermint.abci.RequestExtendVote.txs":
		return len(x.Txs) != 0
	case "tendermint.abci.RequestExtendVote.proposed_last_commit":
		return x.ProposedLastCommit != nil
	case "tendermint.abci.RequestExtendVote.misbehavior":
		return len(x.Misbehavior) != 0
	case "tendermint.abci.RequestExtendVote.next_validators_hash":
		return len(x.NextValidatorsHash) != 0
	case "tendermint.abci.RequestExtendVote.proposer_address":
		return len(x.ProposerAddress) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestExtendVote 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_RequestExtendVote) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestExtendVote.hash":
		x.Hash = nil
	case "tendermint.abci.RequestExtendVote.height":
		x.Height = int64(0)
	case "tendermint.abci.RequestExtendVote.time":
		x.Time = nil
	case "tendermint.abci.RequestExtendVote.txs":
		x.Txs = nil
	case "tendermint.abci.RequestExtendVote.proposed_last_commit":
		x.ProposedLastCommit = nil
	case "tendermint.abci.RequestExtendVote.misbehavior":
		x.Misbehavior = nil
	case "tendermint.abci.RequestExtendVote.next_validators_hash":
		x.NextValidatorsHash = nil
	case "tendermint.abci.RequestExtendVote.proposer_address":
		x.ProposerAddress = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestExtendVote 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_RequestExtendVote) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestExtendVote.hash":
		value := x.Hash
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestExtendVote.height":
		value := x.Height
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.RequestExtendVote.time":
		value := x.Time
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestExtendVote.txs":
		if len(x.Txs) == 0 {
			return protoreflect.ValueOfList(&_RequestExtendVote_4_list{})
		}
		listValue := &_RequestExtendVote_4_list{list: &x.Txs}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.RequestExtendVote.proposed_last_commit":
		value := x.ProposedLastCommit
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestExtendVote.misbehavior":
		if len(x.Misbehavior) == 0 {
			return protoreflect.ValueOfList(&_RequestExtendVote_6_list{})
		}
		listValue := &_RequestExtendVote_6_list{list: &x.Misbehavior}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.RequestExtendVote.next_validators_hash":
		value := x.NextValidatorsHash
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestExtendVote.proposer_address":
		value := x.ProposerAddress
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestExtendVote 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_RequestExtendVote) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestExtendVote.hash":
		x.Hash = value.Bytes()
	case "tendermint.abci.RequestExtendVote.height":
		x.Height = value.Int()
	case "tendermint.abci.RequestExtendVote.time":
		x.Time = value.Message().Interface().(*timestamppb.Timestamp)
	case "tendermint.abci.RequestExtendVote.txs":
		lv := value.List()
		clv := lv.(*_RequestExtendVote_4_list)
		x.Txs = *clv.list
	case "tendermint.abci.RequestExtendVote.proposed_last_commit":
		x.ProposedLastCommit = value.Message().Interface().(*CommitInfo)
	case "tendermint.abci.RequestExtendVote.misbehavior":
		lv := value.List()
		clv := lv.(*_RequestExtendVote_6_list)
		x.Misbehavior = *clv.list
	case "tendermint.abci.RequestExtendVote.next_validators_hash":
		x.NextValidatorsHash = value.Bytes()
	case "tendermint.abci.RequestExtendVote.proposer_address":
		x.ProposerAddress = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestExtendVote 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_RequestExtendVote) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestExtendVote.time":
		if x.Time == nil {
			x.Time = new(timestamppb.Timestamp)
		}
		return protoreflect.ValueOfMessage(x.Time.ProtoReflect())
	case "tendermint.abci.RequestExtendVote.txs":
		if x.Txs == nil {
			x.Txs = [][]byte{}
		}
		value := &_RequestExtendVote_4_list{list: &x.Txs}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.RequestExtendVote.proposed_last_commit":
		if x.ProposedLastCommit == nil {
			x.ProposedLastCommit = new(CommitInfo)
		}
		return protoreflect.ValueOfMessage(x.ProposedLastCommit.ProtoReflect())
	case "tendermint.abci.RequestExtendVote.misbehavior":
		if x.Misbehavior == nil {
			x.Misbehavior = []*Misbehavior{}
		}
		value := &_RequestExtendVote_6_list{list: &x.Misbehavior}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.RequestExtendVote.hash":
		panic(fmt.Errorf("field hash of message tendermint.abci.RequestExtendVote is not mutable"))
	case "tendermint.abci.RequestExtendVote.height":
		panic(fmt.Errorf("field height of message tendermint.abci.RequestExtendVote is not mutable"))
	case "tendermint.abci.RequestExtendVote.next_validators_hash":
		panic(fmt.Errorf("field next_validators_hash of message tendermint.abci.RequestExtendVote is not mutable"))
	case "tendermint.abci.RequestExtendVote.proposer_address":
		panic(fmt.Errorf("field proposer_address of message tendermint.abci.RequestExtendVote is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestExtendVote 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_RequestExtendVote) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestExtendVote.hash":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestExtendVote.height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.RequestExtendVote.time":
		m := new(timestamppb.Timestamp)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestExtendVote.txs":
		list := [][]byte{}
		return protoreflect.ValueOfList(&_RequestExtendVote_4_list{list: &list})
	case "tendermint.abci.RequestExtendVote.proposed_last_commit":
		m := new(CommitInfo)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestExtendVote.misbehavior":
		list := []*Misbehavior{}
		return protoreflect.ValueOfList(&_RequestExtendVote_6_list{list: &list})
	case "tendermint.abci.RequestExtendVote.next_validators_hash":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestExtendVote.proposer_address":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestExtendVote 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_RequestExtendVote) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestExtendVote", 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_RequestExtendVote) 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_RequestExtendVote) 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_RequestExtendVote) 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_RequestExtendVote) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestExtendVote)
		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.Hash)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		if x.Time != nil {
			l = options.Size(x.Time)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if len(x.Txs) > 0 {
			for _, b := range x.Txs {
				l = len(b)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		if x.ProposedLastCommit != nil {
			l = options.Size(x.ProposedLastCommit)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if len(x.Misbehavior) > 0 {
			for _, e := range x.Misbehavior {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		l = len(x.NextValidatorsHash)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.ProposerAddress)
		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().(*RequestExtendVote)
		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.ProposerAddress) > 0 {
			i -= len(x.ProposerAddress)
			copy(dAtA[i:], x.ProposerAddress)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ProposerAddress)))
			i--
			dAtA[i] = 0x42
		}
		if len(x.NextValidatorsHash) > 0 {
			i -= len(x.NextValidatorsHash)
			copy(dAtA[i:], x.NextValidatorsHash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NextValidatorsHash)))
			i--
			dAtA[i] = 0x3a
		}
		if len(x.Misbehavior) > 0 {
			for iNdEx := len(x.Misbehavior) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Misbehavior[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] = 0x32
			}
		}
		if x.ProposedLastCommit != nil {
			encoded, err := options.Marshal(x.ProposedLastCommit)
			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 len(x.Txs) > 0 {
			for iNdEx := len(x.Txs) - 1; iNdEx >= 0; iNdEx-- {
				i -= len(x.Txs[iNdEx])
				copy(dAtA[i:], x.Txs[iNdEx])
				i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Txs[iNdEx])))
				i--
				dAtA[i] = 0x22
			}
		}
		if x.Time != nil {
			encoded, err := options.Marshal(x.Time)
			if err != nil {
				return protoiface.MarshalOutput{
					NoUnkeyedLiterals: input.NoUnkeyedLiterals,
					Buf:               input.Buf,
				}, err
			}
			i -= len(encoded)
			copy(dAtA[i:], encoded)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
			i--
			dAtA[i] = 0x1a
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			i--
			dAtA[i] = 0x10
		}
		if len(x.Hash) > 0 {
			i -= len(x.Hash)
			copy(dAtA[i:], x.Hash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Hash)))
			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().(*RequestExtendVote)
		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: RequestExtendVote: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestExtendVote: 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 Hash", 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.Hash = append(x.Hash[:0], dAtA[iNdEx:postIndex]...)
				if x.Hash == nil {
					x.Hash = []byte{}
				}
				iNdEx = postIndex
			case 2:
				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 |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 3:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
				}
				var msglen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
					}
					if iNdEx >= l {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					msglen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if msglen < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				postIndex := iNdEx + msglen
				if postIndex < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if postIndex > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if x.Time == nil {
					x.Time = &timestamppb.Timestamp{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Time); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 4:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Txs", 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.Txs = append(x.Txs, make([]byte, postIndex-iNdEx))
				copy(x.Txs[len(x.Txs)-1], 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 ProposedLastCommit", 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.ProposedLastCommit == nil {
					x.ProposedLastCommit = &CommitInfo{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ProposedLastCommit); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 6:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Misbehavior", 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.Misbehavior = append(x.Misbehavior, &Misbehavior{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Misbehavior[len(x.Misbehavior)-1]); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 7:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", 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.NextValidatorsHash = append(x.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
				if x.NextValidatorsHash == nil {
					x.NextValidatorsHash = []byte{}
				}
				iNdEx = postIndex
			case 8:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", 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.ProposerAddress = append(x.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
				if x.ProposerAddress == nil {
					x.ProposerAddress = []byte{}
				}
				iNdEx = postIndex
			default:
				iNdEx = preIndex
				skippy, err := runtime.Skip(dAtA[iNdEx:])
				if err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				if (skippy < 0) || (iNdEx+skippy) < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if (iNdEx + skippy) > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if !options.DiscardUnknown {
					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
				}
				iNdEx += skippy
			}
		}

		if iNdEx > l {
			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
		}
		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
	}
	return &protoiface.Methods{
		NoUnkeyedLiterals: struct{}{},
		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
		Size:              size,
		Marshal:           marshal,
		Unmarshal:         unmarshal,
		Merge:             nil,
		CheckInitialized:  nil,
	}
}

var (
	md_RequestVerifyVoteExtension                   protoreflect.MessageDescriptor
	fd_RequestVerifyVoteExtension_hash              protoreflect.FieldDescriptor
	fd_RequestVerifyVoteExtension_validator_address protoreflect.FieldDescriptor
	fd_RequestVerifyVoteExtension_height            protoreflect.FieldDescriptor
	fd_RequestVerifyVoteExtension_vote_extension    protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestVerifyVoteExtension = File_tendermint_abci_types_proto.Messages().ByName("RequestVerifyVoteExtension")
	fd_RequestVerifyVoteExtension_hash = md_RequestVerifyVoteExtension.Fields().ByName("hash")
	fd_RequestVerifyVoteExtension_validator_address = md_RequestVerifyVoteExtension.Fields().ByName("validator_address")
	fd_RequestVerifyVoteExtension_height = md_RequestVerifyVoteExtension.Fields().ByName("height")
	fd_RequestVerifyVoteExtension_vote_extension = md_RequestVerifyVoteExtension.Fields().ByName("vote_extension")
}

var _ protoreflect.Message = (*fastReflection_RequestVerifyVoteExtension)(nil)

type fastReflection_RequestVerifyVoteExtension RequestVerifyVoteExtension

func (x *RequestVerifyVoteExtension) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestVerifyVoteExtension)(x)
}

func (x *RequestVerifyVoteExtension) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestVerifyVoteExtension_messageType fastReflection_RequestVerifyVoteExtension_messageType
var _ protoreflect.MessageType = fastReflection_RequestVerifyVoteExtension_messageType{}

type fastReflection_RequestVerifyVoteExtension_messageType struct{}

func (x fastReflection_RequestVerifyVoteExtension_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestVerifyVoteExtension)(nil)
}
func (x fastReflection_RequestVerifyVoteExtension_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestVerifyVoteExtension)
}
func (x fastReflection_RequestVerifyVoteExtension_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestVerifyVoteExtension
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestVerifyVoteExtension) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestVerifyVoteExtension
}

// 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_RequestVerifyVoteExtension) Type() protoreflect.MessageType {
	return _fastReflection_RequestVerifyVoteExtension_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestVerifyVoteExtension) New() protoreflect.Message {
	return new(fastReflection_RequestVerifyVoteExtension)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestVerifyVoteExtension) Interface() protoreflect.ProtoMessage {
	return (*RequestVerifyVoteExtension)(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_RequestVerifyVoteExtension) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Hash) != 0 {
		value := protoreflect.ValueOfBytes(x.Hash)
		if !f(fd_RequestVerifyVoteExtension_hash, value) {
			return
		}
	}
	if len(x.ValidatorAddress) != 0 {
		value := protoreflect.ValueOfBytes(x.ValidatorAddress)
		if !f(fd_RequestVerifyVoteExtension_validator_address, value) {
			return
		}
	}
	if x.Height != int64(0) {
		value := protoreflect.ValueOfInt64(x.Height)
		if !f(fd_RequestVerifyVoteExtension_height, value) {
			return
		}
	}
	if len(x.VoteExtension) != 0 {
		value := protoreflect.ValueOfBytes(x.VoteExtension)
		if !f(fd_RequestVerifyVoteExtension_vote_extension, 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_RequestVerifyVoteExtension) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestVerifyVoteExtension.hash":
		return len(x.Hash) != 0
	case "tendermint.abci.RequestVerifyVoteExtension.validator_address":
		return len(x.ValidatorAddress) != 0
	case "tendermint.abci.RequestVerifyVoteExtension.height":
		return x.Height != int64(0)
	case "tendermint.abci.RequestVerifyVoteExtension.vote_extension":
		return len(x.VoteExtension) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestVerifyVoteExtension 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_RequestVerifyVoteExtension) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestVerifyVoteExtension.hash":
		x.Hash = nil
	case "tendermint.abci.RequestVerifyVoteExtension.validator_address":
		x.ValidatorAddress = nil
	case "tendermint.abci.RequestVerifyVoteExtension.height":
		x.Height = int64(0)
	case "tendermint.abci.RequestVerifyVoteExtension.vote_extension":
		x.VoteExtension = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestVerifyVoteExtension 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_RequestVerifyVoteExtension) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestVerifyVoteExtension.hash":
		value := x.Hash
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestVerifyVoteExtension.validator_address":
		value := x.ValidatorAddress
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestVerifyVoteExtension.height":
		value := x.Height
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.RequestVerifyVoteExtension.vote_extension":
		value := x.VoteExtension
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestVerifyVoteExtension 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_RequestVerifyVoteExtension) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestVerifyVoteExtension.hash":
		x.Hash = value.Bytes()
	case "tendermint.abci.RequestVerifyVoteExtension.validator_address":
		x.ValidatorAddress = value.Bytes()
	case "tendermint.abci.RequestVerifyVoteExtension.height":
		x.Height = value.Int()
	case "tendermint.abci.RequestVerifyVoteExtension.vote_extension":
		x.VoteExtension = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestVerifyVoteExtension 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_RequestVerifyVoteExtension) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestVerifyVoteExtension.hash":
		panic(fmt.Errorf("field hash of message tendermint.abci.RequestVerifyVoteExtension is not mutable"))
	case "tendermint.abci.RequestVerifyVoteExtension.validator_address":
		panic(fmt.Errorf("field validator_address of message tendermint.abci.RequestVerifyVoteExtension is not mutable"))
	case "tendermint.abci.RequestVerifyVoteExtension.height":
		panic(fmt.Errorf("field height of message tendermint.abci.RequestVerifyVoteExtension is not mutable"))
	case "tendermint.abci.RequestVerifyVoteExtension.vote_extension":
		panic(fmt.Errorf("field vote_extension of message tendermint.abci.RequestVerifyVoteExtension is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestVerifyVoteExtension 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_RequestVerifyVoteExtension) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestVerifyVoteExtension.hash":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestVerifyVoteExtension.validator_address":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestVerifyVoteExtension.height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.RequestVerifyVoteExtension.vote_extension":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestVerifyVoteExtension 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_RequestVerifyVoteExtension) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestVerifyVoteExtension", 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_RequestVerifyVoteExtension) 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_RequestVerifyVoteExtension) 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_RequestVerifyVoteExtension) 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_RequestVerifyVoteExtension) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestVerifyVoteExtension)
		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.Hash)
		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.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		l = len(x.VoteExtension)
		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().(*RequestVerifyVoteExtension)
		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.VoteExtension) > 0 {
			i -= len(x.VoteExtension)
			copy(dAtA[i:], x.VoteExtension)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.VoteExtension)))
			i--
			dAtA[i] = 0x22
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			i--
			dAtA[i] = 0x18
		}
		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.Hash) > 0 {
			i -= len(x.Hash)
			copy(dAtA[i:], x.Hash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Hash)))
			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().(*RequestVerifyVoteExtension)
		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: RequestVerifyVoteExtension: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestVerifyVoteExtension: 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 Hash", 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.Hash = append(x.Hash[:0], dAtA[iNdEx:postIndex]...)
				if x.Hash == nil {
					x.Hash = []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 ValidatorAddress", 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.ValidatorAddress = append(x.ValidatorAddress[:0], dAtA[iNdEx:postIndex]...)
				if x.ValidatorAddress == nil {
					x.ValidatorAddress = []byte{}
				}
				iNdEx = postIndex
			case 3:
				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 |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 4:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field VoteExtension", 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.VoteExtension = append(x.VoteExtension[:0], dAtA[iNdEx:postIndex]...)
				if x.VoteExtension == nil {
					x.VoteExtension = []byte{}
				}
				iNdEx = postIndex
			default:
				iNdEx = preIndex
				skippy, err := runtime.Skip(dAtA[iNdEx:])
				if err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				if (skippy < 0) || (iNdEx+skippy) < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if (iNdEx + skippy) > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if !options.DiscardUnknown {
					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
				}
				iNdEx += skippy
			}
		}

		if iNdEx > l {
			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
		}
		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
	}
	return &protoiface.Methods{
		NoUnkeyedLiterals: struct{}{},
		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
		Size:              size,
		Marshal:           marshal,
		Unmarshal:         unmarshal,
		Merge:             nil,
		CheckInitialized:  nil,
	}
}

var _ protoreflect.List = (*_RequestFinalizeBlock_1_list)(nil)

type _RequestFinalizeBlock_1_list struct {
	list *[][]byte
}

func (x *_RequestFinalizeBlock_1_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_RequestFinalizeBlock_1_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfBytes((*x.list)[i])
}

func (x *_RequestFinalizeBlock_1_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	(*x.list)[i] = concreteValue
}

func (x *_RequestFinalizeBlock_1_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	*x.list = append(*x.list, concreteValue)
}

func (x *_RequestFinalizeBlock_1_list) AppendMutable() protoreflect.Value {
	panic(fmt.Errorf("AppendMutable can not be called on message RequestFinalizeBlock at list field Txs as it is not of Message kind"))
}

func (x *_RequestFinalizeBlock_1_list) Truncate(n int) {
	*x.list = (*x.list)[:n]
}

func (x *_RequestFinalizeBlock_1_list) NewElement() protoreflect.Value {
	var v []byte
	return protoreflect.ValueOfBytes(v)
}

func (x *_RequestFinalizeBlock_1_list) IsValid() bool {
	return x.list != nil
}

var _ protoreflect.List = (*_RequestFinalizeBlock_3_list)(nil)

type _RequestFinalizeBlock_3_list struct {
	list *[]*Misbehavior
}

func (x *_RequestFinalizeBlock_3_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_RequestFinalizeBlock_3_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_RequestFinalizeBlock_3_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Misbehavior)
	(*x.list)[i] = concreteValue
}

func (x *_RequestFinalizeBlock_3_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Misbehavior)
	*x.list = append(*x.list, concreteValue)
}

func (x *_RequestFinalizeBlock_3_list) AppendMutable() protoreflect.Value {
	v := new(Misbehavior)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestFinalizeBlock_3_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_RequestFinalizeBlock_3_list) NewElement() protoreflect.Value {
	v := new(Misbehavior)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_RequestFinalizeBlock_3_list) IsValid() bool {
	return x.list != nil
}

var (
	md_RequestFinalizeBlock                      protoreflect.MessageDescriptor
	fd_RequestFinalizeBlock_txs                  protoreflect.FieldDescriptor
	fd_RequestFinalizeBlock_decided_last_commit  protoreflect.FieldDescriptor
	fd_RequestFinalizeBlock_misbehavior          protoreflect.FieldDescriptor
	fd_RequestFinalizeBlock_hash                 protoreflect.FieldDescriptor
	fd_RequestFinalizeBlock_height               protoreflect.FieldDescriptor
	fd_RequestFinalizeBlock_time                 protoreflect.FieldDescriptor
	fd_RequestFinalizeBlock_next_validators_hash protoreflect.FieldDescriptor
	fd_RequestFinalizeBlock_proposer_address     protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_RequestFinalizeBlock = File_tendermint_abci_types_proto.Messages().ByName("RequestFinalizeBlock")
	fd_RequestFinalizeBlock_txs = md_RequestFinalizeBlock.Fields().ByName("txs")
	fd_RequestFinalizeBlock_decided_last_commit = md_RequestFinalizeBlock.Fields().ByName("decided_last_commit")
	fd_RequestFinalizeBlock_misbehavior = md_RequestFinalizeBlock.Fields().ByName("misbehavior")
	fd_RequestFinalizeBlock_hash = md_RequestFinalizeBlock.Fields().ByName("hash")
	fd_RequestFinalizeBlock_height = md_RequestFinalizeBlock.Fields().ByName("height")
	fd_RequestFinalizeBlock_time = md_RequestFinalizeBlock.Fields().ByName("time")
	fd_RequestFinalizeBlock_next_validators_hash = md_RequestFinalizeBlock.Fields().ByName("next_validators_hash")
	fd_RequestFinalizeBlock_proposer_address = md_RequestFinalizeBlock.Fields().ByName("proposer_address")
}

var _ protoreflect.Message = (*fastReflection_RequestFinalizeBlock)(nil)

type fastReflection_RequestFinalizeBlock RequestFinalizeBlock

func (x *RequestFinalizeBlock) ProtoReflect() protoreflect.Message {
	return (*fastReflection_RequestFinalizeBlock)(x)
}

func (x *RequestFinalizeBlock) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_RequestFinalizeBlock_messageType fastReflection_RequestFinalizeBlock_messageType
var _ protoreflect.MessageType = fastReflection_RequestFinalizeBlock_messageType{}

type fastReflection_RequestFinalizeBlock_messageType struct{}

func (x fastReflection_RequestFinalizeBlock_messageType) Zero() protoreflect.Message {
	return (*fastReflection_RequestFinalizeBlock)(nil)
}
func (x fastReflection_RequestFinalizeBlock_messageType) New() protoreflect.Message {
	return new(fastReflection_RequestFinalizeBlock)
}
func (x fastReflection_RequestFinalizeBlock_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestFinalizeBlock
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_RequestFinalizeBlock) Descriptor() protoreflect.MessageDescriptor {
	return md_RequestFinalizeBlock
}

// 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_RequestFinalizeBlock) Type() protoreflect.MessageType {
	return _fastReflection_RequestFinalizeBlock_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_RequestFinalizeBlock) New() protoreflect.Message {
	return new(fastReflection_RequestFinalizeBlock)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_RequestFinalizeBlock) Interface() protoreflect.ProtoMessage {
	return (*RequestFinalizeBlock)(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_RequestFinalizeBlock) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Txs) != 0 {
		value := protoreflect.ValueOfList(&_RequestFinalizeBlock_1_list{list: &x.Txs})
		if !f(fd_RequestFinalizeBlock_txs, value) {
			return
		}
	}
	if x.DecidedLastCommit != nil {
		value := protoreflect.ValueOfMessage(x.DecidedLastCommit.ProtoReflect())
		if !f(fd_RequestFinalizeBlock_decided_last_commit, value) {
			return
		}
	}
	if len(x.Misbehavior) != 0 {
		value := protoreflect.ValueOfList(&_RequestFinalizeBlock_3_list{list: &x.Misbehavior})
		if !f(fd_RequestFinalizeBlock_misbehavior, value) {
			return
		}
	}
	if len(x.Hash) != 0 {
		value := protoreflect.ValueOfBytes(x.Hash)
		if !f(fd_RequestFinalizeBlock_hash, value) {
			return
		}
	}
	if x.Height != int64(0) {
		value := protoreflect.ValueOfInt64(x.Height)
		if !f(fd_RequestFinalizeBlock_height, value) {
			return
		}
	}
	if x.Time != nil {
		value := protoreflect.ValueOfMessage(x.Time.ProtoReflect())
		if !f(fd_RequestFinalizeBlock_time, value) {
			return
		}
	}
	if len(x.NextValidatorsHash) != 0 {
		value := protoreflect.ValueOfBytes(x.NextValidatorsHash)
		if !f(fd_RequestFinalizeBlock_next_validators_hash, value) {
			return
		}
	}
	if len(x.ProposerAddress) != 0 {
		value := protoreflect.ValueOfBytes(x.ProposerAddress)
		if !f(fd_RequestFinalizeBlock_proposer_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_RequestFinalizeBlock) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.RequestFinalizeBlock.txs":
		return len(x.Txs) != 0
	case "tendermint.abci.RequestFinalizeBlock.decided_last_commit":
		return x.DecidedLastCommit != nil
	case "tendermint.abci.RequestFinalizeBlock.misbehavior":
		return len(x.Misbehavior) != 0
	case "tendermint.abci.RequestFinalizeBlock.hash":
		return len(x.Hash) != 0
	case "tendermint.abci.RequestFinalizeBlock.height":
		return x.Height != int64(0)
	case "tendermint.abci.RequestFinalizeBlock.time":
		return x.Time != nil
	case "tendermint.abci.RequestFinalizeBlock.next_validators_hash":
		return len(x.NextValidatorsHash) != 0
	case "tendermint.abci.RequestFinalizeBlock.proposer_address":
		return len(x.ProposerAddress) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFinalizeBlock 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_RequestFinalizeBlock) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.RequestFinalizeBlock.txs":
		x.Txs = nil
	case "tendermint.abci.RequestFinalizeBlock.decided_last_commit":
		x.DecidedLastCommit = nil
	case "tendermint.abci.RequestFinalizeBlock.misbehavior":
		x.Misbehavior = nil
	case "tendermint.abci.RequestFinalizeBlock.hash":
		x.Hash = nil
	case "tendermint.abci.RequestFinalizeBlock.height":
		x.Height = int64(0)
	case "tendermint.abci.RequestFinalizeBlock.time":
		x.Time = nil
	case "tendermint.abci.RequestFinalizeBlock.next_validators_hash":
		x.NextValidatorsHash = nil
	case "tendermint.abci.RequestFinalizeBlock.proposer_address":
		x.ProposerAddress = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFinalizeBlock 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_RequestFinalizeBlock) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.RequestFinalizeBlock.txs":
		if len(x.Txs) == 0 {
			return protoreflect.ValueOfList(&_RequestFinalizeBlock_1_list{})
		}
		listValue := &_RequestFinalizeBlock_1_list{list: &x.Txs}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.RequestFinalizeBlock.decided_last_commit":
		value := x.DecidedLastCommit
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestFinalizeBlock.misbehavior":
		if len(x.Misbehavior) == 0 {
			return protoreflect.ValueOfList(&_RequestFinalizeBlock_3_list{})
		}
		listValue := &_RequestFinalizeBlock_3_list{list: &x.Misbehavior}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.RequestFinalizeBlock.hash":
		value := x.Hash
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestFinalizeBlock.height":
		value := x.Height
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.RequestFinalizeBlock.time":
		value := x.Time
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.RequestFinalizeBlock.next_validators_hash":
		value := x.NextValidatorsHash
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.RequestFinalizeBlock.proposer_address":
		value := x.ProposerAddress
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFinalizeBlock 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_RequestFinalizeBlock) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.RequestFinalizeBlock.txs":
		lv := value.List()
		clv := lv.(*_RequestFinalizeBlock_1_list)
		x.Txs = *clv.list
	case "tendermint.abci.RequestFinalizeBlock.decided_last_commit":
		x.DecidedLastCommit = value.Message().Interface().(*CommitInfo)
	case "tendermint.abci.RequestFinalizeBlock.misbehavior":
		lv := value.List()
		clv := lv.(*_RequestFinalizeBlock_3_list)
		x.Misbehavior = *clv.list
	case "tendermint.abci.RequestFinalizeBlock.hash":
		x.Hash = value.Bytes()
	case "tendermint.abci.RequestFinalizeBlock.height":
		x.Height = value.Int()
	case "tendermint.abci.RequestFinalizeBlock.time":
		x.Time = value.Message().Interface().(*timestamppb.Timestamp)
	case "tendermint.abci.RequestFinalizeBlock.next_validators_hash":
		x.NextValidatorsHash = value.Bytes()
	case "tendermint.abci.RequestFinalizeBlock.proposer_address":
		x.ProposerAddress = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFinalizeBlock 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_RequestFinalizeBlock) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestFinalizeBlock.txs":
		if x.Txs == nil {
			x.Txs = [][]byte{}
		}
		value := &_RequestFinalizeBlock_1_list{list: &x.Txs}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.RequestFinalizeBlock.decided_last_commit":
		if x.DecidedLastCommit == nil {
			x.DecidedLastCommit = new(CommitInfo)
		}
		return protoreflect.ValueOfMessage(x.DecidedLastCommit.ProtoReflect())
	case "tendermint.abci.RequestFinalizeBlock.misbehavior":
		if x.Misbehavior == nil {
			x.Misbehavior = []*Misbehavior{}
		}
		value := &_RequestFinalizeBlock_3_list{list: &x.Misbehavior}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.RequestFinalizeBlock.time":
		if x.Time == nil {
			x.Time = new(timestamppb.Timestamp)
		}
		return protoreflect.ValueOfMessage(x.Time.ProtoReflect())
	case "tendermint.abci.RequestFinalizeBlock.hash":
		panic(fmt.Errorf("field hash of message tendermint.abci.RequestFinalizeBlock is not mutable"))
	case "tendermint.abci.RequestFinalizeBlock.height":
		panic(fmt.Errorf("field height of message tendermint.abci.RequestFinalizeBlock is not mutable"))
	case "tendermint.abci.RequestFinalizeBlock.next_validators_hash":
		panic(fmt.Errorf("field next_validators_hash of message tendermint.abci.RequestFinalizeBlock is not mutable"))
	case "tendermint.abci.RequestFinalizeBlock.proposer_address":
		panic(fmt.Errorf("field proposer_address of message tendermint.abci.RequestFinalizeBlock is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFinalizeBlock 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_RequestFinalizeBlock) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.RequestFinalizeBlock.txs":
		list := [][]byte{}
		return protoreflect.ValueOfList(&_RequestFinalizeBlock_1_list{list: &list})
	case "tendermint.abci.RequestFinalizeBlock.decided_last_commit":
		m := new(CommitInfo)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestFinalizeBlock.misbehavior":
		list := []*Misbehavior{}
		return protoreflect.ValueOfList(&_RequestFinalizeBlock_3_list{list: &list})
	case "tendermint.abci.RequestFinalizeBlock.hash":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestFinalizeBlock.height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.RequestFinalizeBlock.time":
		m := new(timestamppb.Timestamp)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.RequestFinalizeBlock.next_validators_hash":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.RequestFinalizeBlock.proposer_address":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.RequestFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.RequestFinalizeBlock 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_RequestFinalizeBlock) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.RequestFinalizeBlock", 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_RequestFinalizeBlock) 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_RequestFinalizeBlock) 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_RequestFinalizeBlock) 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_RequestFinalizeBlock) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*RequestFinalizeBlock)
		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.Txs) > 0 {
			for _, b := range x.Txs {
				l = len(b)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		if x.DecidedLastCommit != nil {
			l = options.Size(x.DecidedLastCommit)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if len(x.Misbehavior) > 0 {
			for _, e := range x.Misbehavior {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		l = len(x.Hash)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		if x.Time != nil {
			l = options.Size(x.Time)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.NextValidatorsHash)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.ProposerAddress)
		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().(*RequestFinalizeBlock)
		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.ProposerAddress) > 0 {
			i -= len(x.ProposerAddress)
			copy(dAtA[i:], x.ProposerAddress)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ProposerAddress)))
			i--
			dAtA[i] = 0x42
		}
		if len(x.NextValidatorsHash) > 0 {
			i -= len(x.NextValidatorsHash)
			copy(dAtA[i:], x.NextValidatorsHash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NextValidatorsHash)))
			i--
			dAtA[i] = 0x3a
		}
		if x.Time != nil {
			encoded, err := options.Marshal(x.Time)
			if err != nil {
				return protoiface.MarshalOutput{
					NoUnkeyedLiterals: input.NoUnkeyedLiterals,
					Buf:               input.Buf,
				}, err
			}
			i -= len(encoded)
			copy(dAtA[i:], encoded)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
			i--
			dAtA[i] = 0x32
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			i--
			dAtA[i] = 0x28
		}
		if len(x.Hash) > 0 {
			i -= len(x.Hash)
			copy(dAtA[i:], x.Hash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Hash)))
			i--
			dAtA[i] = 0x22
		}
		if len(x.Misbehavior) > 0 {
			for iNdEx := len(x.Misbehavior) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Misbehavior[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 x.DecidedLastCommit != nil {
			encoded, err := options.Marshal(x.DecidedLastCommit)
			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.Txs) > 0 {
			for iNdEx := len(x.Txs) - 1; iNdEx >= 0; iNdEx-- {
				i -= len(x.Txs[iNdEx])
				copy(dAtA[i:], x.Txs[iNdEx])
				i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Txs[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().(*RequestFinalizeBlock)
		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: RequestFinalizeBlock: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RequestFinalizeBlock: 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 Txs", 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.Txs = append(x.Txs, make([]byte, postIndex-iNdEx))
				copy(x.Txs[len(x.Txs)-1], 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 DecidedLastCommit", 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.DecidedLastCommit == nil {
					x.DecidedLastCommit = &CommitInfo{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.DecidedLastCommit); 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 Misbehavior", 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.Misbehavior = append(x.Misbehavior, &Misbehavior{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Misbehavior[len(x.Misbehavior)-1]); 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 Hash", 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.Hash = append(x.Hash[:0], dAtA[iNdEx:postIndex]...)
				if x.Hash == nil {
					x.Hash = []byte{}
				}
				iNdEx = postIndex
			case 5:
				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 |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 6:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
				}
				var msglen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
					}
					if iNdEx >= l {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					msglen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if msglen < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				postIndex := iNdEx + msglen
				if postIndex < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if postIndex > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if x.Time == nil {
					x.Time = &timestamppb.Timestamp{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Time); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 7:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", 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.NextValidatorsHash = append(x.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
				if x.NextValidatorsHash == nil {
					x.NextValidatorsHash = []byte{}
				}
				iNdEx = postIndex
			case 8:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", 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.ProposerAddress = append(x.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
				if x.ProposerAddress == nil {
					x.ProposerAddress = []byte{}
				}
				iNdEx = postIndex
			default:
				iNdEx = preIndex
				skippy, err := runtime.Skip(dAtA[iNdEx:])
				if err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				if (skippy < 0) || (iNdEx+skippy) < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if (iNdEx + skippy) > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if !options.DiscardUnknown {
					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
				}
				iNdEx += skippy
			}
		}

		if iNdEx > l {
			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
		}
		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
	}
	return &protoiface.Methods{
		NoUnkeyedLiterals: struct{}{},
		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
		Size:              size,
		Marshal:           marshal,
		Unmarshal:         unmarshal,
		Merge:             nil,
		CheckInitialized:  nil,
	}
}

var (
	md_Response                       protoreflect.MessageDescriptor
	fd_Response_exception             protoreflect.FieldDescriptor
	fd_Response_echo                  protoreflect.FieldDescriptor
	fd_Response_flush                 protoreflect.FieldDescriptor
	fd_Response_info                  protoreflect.FieldDescriptor
	fd_Response_init_chain            protoreflect.FieldDescriptor
	fd_Response_query                 protoreflect.FieldDescriptor
	fd_Response_check_tx              protoreflect.FieldDescriptor
	fd_Response_commit                protoreflect.FieldDescriptor
	fd_Response_list_snapshots        protoreflect.FieldDescriptor
	fd_Response_offer_snapshot        protoreflect.FieldDescriptor
	fd_Response_load_snapshot_chunk   protoreflect.FieldDescriptor
	fd_Response_apply_snapshot_chunk  protoreflect.FieldDescriptor
	fd_Response_prepare_proposal      protoreflect.FieldDescriptor
	fd_Response_process_proposal      protoreflect.FieldDescriptor
	fd_Response_extend_vote           protoreflect.FieldDescriptor
	fd_Response_verify_vote_extension protoreflect.FieldDescriptor
	fd_Response_finalize_block        protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_Response = File_tendermint_abci_types_proto.Messages().ByName("Response")
	fd_Response_exception = md_Response.Fields().ByName("exception")
	fd_Response_echo = md_Response.Fields().ByName("echo")
	fd_Response_flush = md_Response.Fields().ByName("flush")
	fd_Response_info = md_Response.Fields().ByName("info")
	fd_Response_init_chain = md_Response.Fields().ByName("init_chain")
	fd_Response_query = md_Response.Fields().ByName("query")
	fd_Response_check_tx = md_Response.Fields().ByName("check_tx")
	fd_Response_commit = md_Response.Fields().ByName("commit")
	fd_Response_list_snapshots = md_Response.Fields().ByName("list_snapshots")
	fd_Response_offer_snapshot = md_Response.Fields().ByName("offer_snapshot")
	fd_Response_load_snapshot_chunk = md_Response.Fields().ByName("load_snapshot_chunk")
	fd_Response_apply_snapshot_chunk = md_Response.Fields().ByName("apply_snapshot_chunk")
	fd_Response_prepare_proposal = md_Response.Fields().ByName("prepare_proposal")
	fd_Response_process_proposal = md_Response.Fields().ByName("process_proposal")
	fd_Response_extend_vote = md_Response.Fields().ByName("extend_vote")
	fd_Response_verify_vote_extension = md_Response.Fields().ByName("verify_vote_extension")
	fd_Response_finalize_block = md_Response.Fields().ByName("finalize_block")
}

var _ protoreflect.Message = (*fastReflection_Response)(nil)

type fastReflection_Response Response

func (x *Response) ProtoReflect() protoreflect.Message {
	return (*fastReflection_Response)(x)
}

func (x *Response) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_Response_messageType fastReflection_Response_messageType
var _ protoreflect.MessageType = fastReflection_Response_messageType{}

type fastReflection_Response_messageType struct{}

func (x fastReflection_Response_messageType) Zero() protoreflect.Message {
	return (*fastReflection_Response)(nil)
}
func (x fastReflection_Response_messageType) New() protoreflect.Message {
	return new(fastReflection_Response)
}
func (x fastReflection_Response_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_Response
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_Response) Descriptor() protoreflect.MessageDescriptor {
	return md_Response
}

// 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_Response) Type() protoreflect.MessageType {
	return _fastReflection_Response_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_Response) New() protoreflect.Message {
	return new(fastReflection_Response)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_Response) Interface() protoreflect.ProtoMessage {
	return (*Response)(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_Response) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Value != nil {
		switch o := x.Value.(type) {
		case *Response_Exception:
			v := o.Exception
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_exception, value) {
				return
			}
		case *Response_Echo:
			v := o.Echo
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_echo, value) {
				return
			}
		case *Response_Flush:
			v := o.Flush
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_flush, value) {
				return
			}
		case *Response_Info:
			v := o.Info
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_info, value) {
				return
			}
		case *Response_InitChain:
			v := o.InitChain
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_init_chain, value) {
				return
			}
		case *Response_Query:
			v := o.Query
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_query, value) {
				return
			}
		case *Response_CheckTx:
			v := o.CheckTx
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_check_tx, value) {
				return
			}
		case *Response_Commit:
			v := o.Commit
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_commit, value) {
				return
			}
		case *Response_ListSnapshots:
			v := o.ListSnapshots
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_list_snapshots, value) {
				return
			}
		case *Response_OfferSnapshot:
			v := o.OfferSnapshot
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_offer_snapshot, value) {
				return
			}
		case *Response_LoadSnapshotChunk:
			v := o.LoadSnapshotChunk
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_load_snapshot_chunk, value) {
				return
			}
		case *Response_ApplySnapshotChunk:
			v := o.ApplySnapshotChunk
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_apply_snapshot_chunk, value) {
				return
			}
		case *Response_PrepareProposal:
			v := o.PrepareProposal
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_prepare_proposal, value) {
				return
			}
		case *Response_ProcessProposal:
			v := o.ProcessProposal
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_process_proposal, value) {
				return
			}
		case *Response_ExtendVote:
			v := o.ExtendVote
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_extend_vote, value) {
				return
			}
		case *Response_VerifyVoteExtension:
			v := o.VerifyVoteExtension
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_verify_vote_extension, value) {
				return
			}
		case *Response_FinalizeBlock:
			v := o.FinalizeBlock
			value := protoreflect.ValueOfMessage(v.ProtoReflect())
			if !f(fd_Response_finalize_block, 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_Response) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.Response.exception":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_Exception); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.echo":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_Echo); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.flush":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_Flush); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.info":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_Info); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.init_chain":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_InitChain); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.query":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_Query); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.check_tx":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_CheckTx); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.commit":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_Commit); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.list_snapshots":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_ListSnapshots); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.offer_snapshot":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_OfferSnapshot); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.load_snapshot_chunk":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_LoadSnapshotChunk); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.apply_snapshot_chunk":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_ApplySnapshotChunk); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.prepare_proposal":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_PrepareProposal); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.process_proposal":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_ProcessProposal); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.extend_vote":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_ExtendVote); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.verify_vote_extension":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_VerifyVoteExtension); ok {
			return true
		} else {
			return false
		}
	case "tendermint.abci.Response.finalize_block":
		if x.Value == nil {
			return false
		} else if _, ok := x.Value.(*Response_FinalizeBlock); ok {
			return true
		} else {
			return false
		}
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Response"))
		}
		panic(fmt.Errorf("message tendermint.abci.Response 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_Response) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.Response.exception":
		x.Value = nil
	case "tendermint.abci.Response.echo":
		x.Value = nil
	case "tendermint.abci.Response.flush":
		x.Value = nil
	case "tendermint.abci.Response.info":
		x.Value = nil
	case "tendermint.abci.Response.init_chain":
		x.Value = nil
	case "tendermint.abci.Response.query":
		x.Value = nil
	case "tendermint.abci.Response.check_tx":
		x.Value = nil
	case "tendermint.abci.Response.commit":
		x.Value = nil
	case "tendermint.abci.Response.list_snapshots":
		x.Value = nil
	case "tendermint.abci.Response.offer_snapshot":
		x.Value = nil
	case "tendermint.abci.Response.load_snapshot_chunk":
		x.Value = nil
	case "tendermint.abci.Response.apply_snapshot_chunk":
		x.Value = nil
	case "tendermint.abci.Response.prepare_proposal":
		x.Value = nil
	case "tendermint.abci.Response.process_proposal":
		x.Value = nil
	case "tendermint.abci.Response.extend_vote":
		x.Value = nil
	case "tendermint.abci.Response.verify_vote_extension":
		x.Value = nil
	case "tendermint.abci.Response.finalize_block":
		x.Value = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Response"))
		}
		panic(fmt.Errorf("message tendermint.abci.Response 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_Response) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.Response.exception":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseException)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_Exception); ok {
			return protoreflect.ValueOfMessage(v.Exception.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseException)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.echo":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseEcho)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_Echo); ok {
			return protoreflect.ValueOfMessage(v.Echo.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseEcho)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.flush":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseFlush)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_Flush); ok {
			return protoreflect.ValueOfMessage(v.Flush.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseFlush)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.info":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseInfo)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_Info); ok {
			return protoreflect.ValueOfMessage(v.Info.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseInfo)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.init_chain":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseInitChain)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_InitChain); ok {
			return protoreflect.ValueOfMessage(v.InitChain.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseInitChain)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.query":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseQuery)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_Query); ok {
			return protoreflect.ValueOfMessage(v.Query.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseQuery)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.check_tx":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseCheckTx)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_CheckTx); ok {
			return protoreflect.ValueOfMessage(v.CheckTx.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseCheckTx)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.commit":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseCommit)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_Commit); ok {
			return protoreflect.ValueOfMessage(v.Commit.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseCommit)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.list_snapshots":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseListSnapshots)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_ListSnapshots); ok {
			return protoreflect.ValueOfMessage(v.ListSnapshots.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseListSnapshots)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.offer_snapshot":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseOfferSnapshot)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_OfferSnapshot); ok {
			return protoreflect.ValueOfMessage(v.OfferSnapshot.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseOfferSnapshot)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.load_snapshot_chunk":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseLoadSnapshotChunk)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_LoadSnapshotChunk); ok {
			return protoreflect.ValueOfMessage(v.LoadSnapshotChunk.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseLoadSnapshotChunk)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.apply_snapshot_chunk":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseApplySnapshotChunk)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_ApplySnapshotChunk); ok {
			return protoreflect.ValueOfMessage(v.ApplySnapshotChunk.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseApplySnapshotChunk)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.prepare_proposal":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponsePrepareProposal)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_PrepareProposal); ok {
			return protoreflect.ValueOfMessage(v.PrepareProposal.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponsePrepareProposal)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.process_proposal":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseProcessProposal)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_ProcessProposal); ok {
			return protoreflect.ValueOfMessage(v.ProcessProposal.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseProcessProposal)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.extend_vote":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseExtendVote)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_ExtendVote); ok {
			return protoreflect.ValueOfMessage(v.ExtendVote.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseExtendVote)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.verify_vote_extension":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseVerifyVoteExtension)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_VerifyVoteExtension); ok {
			return protoreflect.ValueOfMessage(v.VerifyVoteExtension.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseVerifyVoteExtension)(nil).ProtoReflect())
		}
	case "tendermint.abci.Response.finalize_block":
		if x.Value == nil {
			return protoreflect.ValueOfMessage((*ResponseFinalizeBlock)(nil).ProtoReflect())
		} else if v, ok := x.Value.(*Response_FinalizeBlock); ok {
			return protoreflect.ValueOfMessage(v.FinalizeBlock.ProtoReflect())
		} else {
			return protoreflect.ValueOfMessage((*ResponseFinalizeBlock)(nil).ProtoReflect())
		}
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Response"))
		}
		panic(fmt.Errorf("message tendermint.abci.Response 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_Response) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.Response.exception":
		cv := value.Message().Interface().(*ResponseException)
		x.Value = &Response_Exception{Exception: cv}
	case "tendermint.abci.Response.echo":
		cv := value.Message().Interface().(*ResponseEcho)
		x.Value = &Response_Echo{Echo: cv}
	case "tendermint.abci.Response.flush":
		cv := value.Message().Interface().(*ResponseFlush)
		x.Value = &Response_Flush{Flush: cv}
	case "tendermint.abci.Response.info":
		cv := value.Message().Interface().(*ResponseInfo)
		x.Value = &Response_Info{Info: cv}
	case "tendermint.abci.Response.init_chain":
		cv := value.Message().Interface().(*ResponseInitChain)
		x.Value = &Response_InitChain{InitChain: cv}
	case "tendermint.abci.Response.query":
		cv := value.Message().Interface().(*ResponseQuery)
		x.Value = &Response_Query{Query: cv}
	case "tendermint.abci.Response.check_tx":
		cv := value.Message().Interface().(*ResponseCheckTx)
		x.Value = &Response_CheckTx{CheckTx: cv}
	case "tendermint.abci.Response.commit":
		cv := value.Message().Interface().(*ResponseCommit)
		x.Value = &Response_Commit{Commit: cv}
	case "tendermint.abci.Response.list_snapshots":
		cv := value.Message().Interface().(*ResponseListSnapshots)
		x.Value = &Response_ListSnapshots{ListSnapshots: cv}
	case "tendermint.abci.Response.offer_snapshot":
		cv := value.Message().Interface().(*ResponseOfferSnapshot)
		x.Value = &Response_OfferSnapshot{OfferSnapshot: cv}
	case "tendermint.abci.Response.load_snapshot_chunk":
		cv := value.Message().Interface().(*ResponseLoadSnapshotChunk)
		x.Value = &Response_LoadSnapshotChunk{LoadSnapshotChunk: cv}
	case "tendermint.abci.Response.apply_snapshot_chunk":
		cv := value.Message().Interface().(*ResponseApplySnapshotChunk)
		x.Value = &Response_ApplySnapshotChunk{ApplySnapshotChunk: cv}
	case "tendermint.abci.Response.prepare_proposal":
		cv := value.Message().Interface().(*ResponsePrepareProposal)
		x.Value = &Response_PrepareProposal{PrepareProposal: cv}
	case "tendermint.abci.Response.process_proposal":
		cv := value.Message().Interface().(*ResponseProcessProposal)
		x.Value = &Response_ProcessProposal{ProcessProposal: cv}
	case "tendermint.abci.Response.extend_vote":
		cv := value.Message().Interface().(*ResponseExtendVote)
		x.Value = &Response_ExtendVote{ExtendVote: cv}
	case "tendermint.abci.Response.verify_vote_extension":
		cv := value.Message().Interface().(*ResponseVerifyVoteExtension)
		x.Value = &Response_VerifyVoteExtension{VerifyVoteExtension: cv}
	case "tendermint.abci.Response.finalize_block":
		cv := value.Message().Interface().(*ResponseFinalizeBlock)
		x.Value = &Response_FinalizeBlock{FinalizeBlock: cv}
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Response"))
		}
		panic(fmt.Errorf("message tendermint.abci.Response 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_Response) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Response.exception":
		if x.Value == nil {
			value := &ResponseException{}
			oneofValue := &Response_Exception{Exception: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_Exception:
			return protoreflect.ValueOfMessage(m.Exception.ProtoReflect())
		default:
			value := &ResponseException{}
			oneofValue := &Response_Exception{Exception: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.echo":
		if x.Value == nil {
			value := &ResponseEcho{}
			oneofValue := &Response_Echo{Echo: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_Echo:
			return protoreflect.ValueOfMessage(m.Echo.ProtoReflect())
		default:
			value := &ResponseEcho{}
			oneofValue := &Response_Echo{Echo: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.flush":
		if x.Value == nil {
			value := &ResponseFlush{}
			oneofValue := &Response_Flush{Flush: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_Flush:
			return protoreflect.ValueOfMessage(m.Flush.ProtoReflect())
		default:
			value := &ResponseFlush{}
			oneofValue := &Response_Flush{Flush: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.info":
		if x.Value == nil {
			value := &ResponseInfo{}
			oneofValue := &Response_Info{Info: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_Info:
			return protoreflect.ValueOfMessage(m.Info.ProtoReflect())
		default:
			value := &ResponseInfo{}
			oneofValue := &Response_Info{Info: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.init_chain":
		if x.Value == nil {
			value := &ResponseInitChain{}
			oneofValue := &Response_InitChain{InitChain: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_InitChain:
			return protoreflect.ValueOfMessage(m.InitChain.ProtoReflect())
		default:
			value := &ResponseInitChain{}
			oneofValue := &Response_InitChain{InitChain: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.query":
		if x.Value == nil {
			value := &ResponseQuery{}
			oneofValue := &Response_Query{Query: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_Query:
			return protoreflect.ValueOfMessage(m.Query.ProtoReflect())
		default:
			value := &ResponseQuery{}
			oneofValue := &Response_Query{Query: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.check_tx":
		if x.Value == nil {
			value := &ResponseCheckTx{}
			oneofValue := &Response_CheckTx{CheckTx: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_CheckTx:
			return protoreflect.ValueOfMessage(m.CheckTx.ProtoReflect())
		default:
			value := &ResponseCheckTx{}
			oneofValue := &Response_CheckTx{CheckTx: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.commit":
		if x.Value == nil {
			value := &ResponseCommit{}
			oneofValue := &Response_Commit{Commit: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_Commit:
			return protoreflect.ValueOfMessage(m.Commit.ProtoReflect())
		default:
			value := &ResponseCommit{}
			oneofValue := &Response_Commit{Commit: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.list_snapshots":
		if x.Value == nil {
			value := &ResponseListSnapshots{}
			oneofValue := &Response_ListSnapshots{ListSnapshots: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_ListSnapshots:
			return protoreflect.ValueOfMessage(m.ListSnapshots.ProtoReflect())
		default:
			value := &ResponseListSnapshots{}
			oneofValue := &Response_ListSnapshots{ListSnapshots: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.offer_snapshot":
		if x.Value == nil {
			value := &ResponseOfferSnapshot{}
			oneofValue := &Response_OfferSnapshot{OfferSnapshot: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_OfferSnapshot:
			return protoreflect.ValueOfMessage(m.OfferSnapshot.ProtoReflect())
		default:
			value := &ResponseOfferSnapshot{}
			oneofValue := &Response_OfferSnapshot{OfferSnapshot: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.load_snapshot_chunk":
		if x.Value == nil {
			value := &ResponseLoadSnapshotChunk{}
			oneofValue := &Response_LoadSnapshotChunk{LoadSnapshotChunk: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_LoadSnapshotChunk:
			return protoreflect.ValueOfMessage(m.LoadSnapshotChunk.ProtoReflect())
		default:
			value := &ResponseLoadSnapshotChunk{}
			oneofValue := &Response_LoadSnapshotChunk{LoadSnapshotChunk: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.apply_snapshot_chunk":
		if x.Value == nil {
			value := &ResponseApplySnapshotChunk{}
			oneofValue := &Response_ApplySnapshotChunk{ApplySnapshotChunk: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_ApplySnapshotChunk:
			return protoreflect.ValueOfMessage(m.ApplySnapshotChunk.ProtoReflect())
		default:
			value := &ResponseApplySnapshotChunk{}
			oneofValue := &Response_ApplySnapshotChunk{ApplySnapshotChunk: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.prepare_proposal":
		if x.Value == nil {
			value := &ResponsePrepareProposal{}
			oneofValue := &Response_PrepareProposal{PrepareProposal: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_PrepareProposal:
			return protoreflect.ValueOfMessage(m.PrepareProposal.ProtoReflect())
		default:
			value := &ResponsePrepareProposal{}
			oneofValue := &Response_PrepareProposal{PrepareProposal: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.process_proposal":
		if x.Value == nil {
			value := &ResponseProcessProposal{}
			oneofValue := &Response_ProcessProposal{ProcessProposal: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_ProcessProposal:
			return protoreflect.ValueOfMessage(m.ProcessProposal.ProtoReflect())
		default:
			value := &ResponseProcessProposal{}
			oneofValue := &Response_ProcessProposal{ProcessProposal: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.extend_vote":
		if x.Value == nil {
			value := &ResponseExtendVote{}
			oneofValue := &Response_ExtendVote{ExtendVote: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_ExtendVote:
			return protoreflect.ValueOfMessage(m.ExtendVote.ProtoReflect())
		default:
			value := &ResponseExtendVote{}
			oneofValue := &Response_ExtendVote{ExtendVote: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.verify_vote_extension":
		if x.Value == nil {
			value := &ResponseVerifyVoteExtension{}
			oneofValue := &Response_VerifyVoteExtension{VerifyVoteExtension: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_VerifyVoteExtension:
			return protoreflect.ValueOfMessage(m.VerifyVoteExtension.ProtoReflect())
		default:
			value := &ResponseVerifyVoteExtension{}
			oneofValue := &Response_VerifyVoteExtension{VerifyVoteExtension: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	case "tendermint.abci.Response.finalize_block":
		if x.Value == nil {
			value := &ResponseFinalizeBlock{}
			oneofValue := &Response_FinalizeBlock{FinalizeBlock: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
		switch m := x.Value.(type) {
		case *Response_FinalizeBlock:
			return protoreflect.ValueOfMessage(m.FinalizeBlock.ProtoReflect())
		default:
			value := &ResponseFinalizeBlock{}
			oneofValue := &Response_FinalizeBlock{FinalizeBlock: value}
			x.Value = oneofValue
			return protoreflect.ValueOfMessage(value.ProtoReflect())
		}
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Response"))
		}
		panic(fmt.Errorf("message tendermint.abci.Response 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_Response) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Response.exception":
		value := &ResponseException{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.echo":
		value := &ResponseEcho{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.flush":
		value := &ResponseFlush{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.info":
		value := &ResponseInfo{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.init_chain":
		value := &ResponseInitChain{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.query":
		value := &ResponseQuery{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.check_tx":
		value := &ResponseCheckTx{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.commit":
		value := &ResponseCommit{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.list_snapshots":
		value := &ResponseListSnapshots{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.offer_snapshot":
		value := &ResponseOfferSnapshot{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.load_snapshot_chunk":
		value := &ResponseLoadSnapshotChunk{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.apply_snapshot_chunk":
		value := &ResponseApplySnapshotChunk{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.prepare_proposal":
		value := &ResponsePrepareProposal{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.process_proposal":
		value := &ResponseProcessProposal{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.extend_vote":
		value := &ResponseExtendVote{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.verify_vote_extension":
		value := &ResponseVerifyVoteExtension{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Response.finalize_block":
		value := &ResponseFinalizeBlock{}
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Response"))
		}
		panic(fmt.Errorf("message tendermint.abci.Response 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_Response) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	case "tendermint.abci.Response.value":
		if x.Value == nil {
			return nil
		}
		switch x.Value.(type) {
		case *Response_Exception:
			return x.Descriptor().Fields().ByName("exception")
		case *Response_Echo:
			return x.Descriptor().Fields().ByName("echo")
		case *Response_Flush:
			return x.Descriptor().Fields().ByName("flush")
		case *Response_Info:
			return x.Descriptor().Fields().ByName("info")
		case *Response_InitChain:
			return x.Descriptor().Fields().ByName("init_chain")
		case *Response_Query:
			return x.Descriptor().Fields().ByName("query")
		case *Response_CheckTx:
			return x.Descriptor().Fields().ByName("check_tx")
		case *Response_Commit:
			return x.Descriptor().Fields().ByName("commit")
		case *Response_ListSnapshots:
			return x.Descriptor().Fields().ByName("list_snapshots")
		case *Response_OfferSnapshot:
			return x.Descriptor().Fields().ByName("offer_snapshot")
		case *Response_LoadSnapshotChunk:
			return x.Descriptor().Fields().ByName("load_snapshot_chunk")
		case *Response_ApplySnapshotChunk:
			return x.Descriptor().Fields().ByName("apply_snapshot_chunk")
		case *Response_PrepareProposal:
			return x.Descriptor().Fields().ByName("prepare_proposal")
		case *Response_ProcessProposal:
			return x.Descriptor().Fields().ByName("process_proposal")
		case *Response_ExtendVote:
			return x.Descriptor().Fields().ByName("extend_vote")
		case *Response_VerifyVoteExtension:
			return x.Descriptor().Fields().ByName("verify_vote_extension")
		case *Response_FinalizeBlock:
			return x.Descriptor().Fields().ByName("finalize_block")
		}
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.Response", 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_Response) 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_Response) 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_Response) 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_Response) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*Response)
		if x == nil {
			return protoiface.SizeOutput{
				NoUnkeyedLiterals: input.NoUnkeyedLiterals,
				Size:              0,
			}
		}
		options := runtime.SizeInputToOptions(input)
		_ = options
		var n int
		var l int
		_ = l
		switch x := x.Value.(type) {
		case *Response_Exception:
			if x == nil {
				break
			}
			l = options.Size(x.Exception)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_Echo:
			if x == nil {
				break
			}
			l = options.Size(x.Echo)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_Flush:
			if x == nil {
				break
			}
			l = options.Size(x.Flush)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_Info:
			if x == nil {
				break
			}
			l = options.Size(x.Info)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_InitChain:
			if x == nil {
				break
			}
			l = options.Size(x.InitChain)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_Query:
			if x == nil {
				break
			}
			l = options.Size(x.Query)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_CheckTx:
			if x == nil {
				break
			}
			l = options.Size(x.CheckTx)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_Commit:
			if x == nil {
				break
			}
			l = options.Size(x.Commit)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_ListSnapshots:
			if x == nil {
				break
			}
			l = options.Size(x.ListSnapshots)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_OfferSnapshot:
			if x == nil {
				break
			}
			l = options.Size(x.OfferSnapshot)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_LoadSnapshotChunk:
			if x == nil {
				break
			}
			l = options.Size(x.LoadSnapshotChunk)
			n += 1 + l + runtime.Sov(uint64(l))
		case *Response_ApplySnapshotChunk:
			if x == nil {
				break
			}
			l = options.Size(x.ApplySnapshotChunk)
			n += 2 + l + runtime.Sov(uint64(l))
		case *Response_PrepareProposal:
			if x == nil {
				break
			}
			l = options.Size(x.PrepareProposal)
			n += 2 + l + runtime.Sov(uint64(l))
		case *Response_ProcessProposal:
			if x == nil {
				break
			}
			l = options.Size(x.ProcessProposal)
			n += 2 + l + runtime.Sov(uint64(l))
		case *Response_ExtendVote:
			if x == nil {
				break
			}
			l = options.Size(x.ExtendVote)
			n += 2 + l + runtime.Sov(uint64(l))
		case *Response_VerifyVoteExtension:
			if x == nil {
				break
			}
			l = options.Size(x.VerifyVoteExtension)
			n += 2 + l + runtime.Sov(uint64(l))
		case *Response_FinalizeBlock:
			if x == nil {
				break
			}
			l = options.Size(x.FinalizeBlock)
			n += 2 + 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().(*Response)
		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)
		}
		switch x := x.Value.(type) {
		case *Response_Exception:
			encoded, err := options.Marshal(x.Exception)
			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
		case *Response_Echo:
			encoded, err := options.Marshal(x.Echo)
			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
		case *Response_Flush:
			encoded, err := options.Marshal(x.Flush)
			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
		case *Response_Info:
			encoded, err := options.Marshal(x.Info)
			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
		case *Response_InitChain:
			encoded, err := options.Marshal(x.InitChain)
			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
		case *Response_Query:
			encoded, err := options.Marshal(x.Query)
			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
		case *Response_CheckTx:
			encoded, err := options.Marshal(x.CheckTx)
			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
		case *Response_Commit:
			encoded, err := options.Marshal(x.Commit)
			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] = 0x62
		case *Response_ListSnapshots:
			encoded, err := options.Marshal(x.ListSnapshots)
			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] = 0x6a
		case *Response_OfferSnapshot:
			encoded, err := options.Marshal(x.OfferSnapshot)
			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] = 0x72
		case *Response_LoadSnapshotChunk:
			encoded, err := options.Marshal(x.LoadSnapshotChunk)
			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] = 0x7a
		case *Response_ApplySnapshotChunk:
			encoded, err := options.Marshal(x.ApplySnapshotChunk)
			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] = 0x1
			i--
			dAtA[i] = 0x82
		case *Response_PrepareProposal:
			encoded, err := options.Marshal(x.PrepareProposal)
			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] = 0x1
			i--
			dAtA[i] = 0x8a
		case *Response_ProcessProposal:
			encoded, err := options.Marshal(x.ProcessProposal)
			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] = 0x1
			i--
			dAtA[i] = 0x92
		case *Response_ExtendVote:
			encoded, err := options.Marshal(x.ExtendVote)
			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] = 0x1
			i--
			dAtA[i] = 0x9a
		case *Response_VerifyVoteExtension:
			encoded, err := options.Marshal(x.VerifyVoteExtension)
			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] = 0x1
			i--
			dAtA[i] = 0xa2
		case *Response_FinalizeBlock:
			encoded, err := options.Marshal(x.FinalizeBlock)
			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] = 0x1
			i--
			dAtA[i] = 0xaa
		}
		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().(*Response)
		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: Response: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Response: 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 Exception", 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
				}
				v := &ResponseException{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_Exception{v}
				iNdEx = postIndex
			case 2:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Echo", 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
				}
				v := &ResponseEcho{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_Echo{v}
				iNdEx = postIndex
			case 3:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Flush", 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
				}
				v := &ResponseFlush{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_Flush{v}
				iNdEx = postIndex
			case 4:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Info", 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
				}
				v := &ResponseInfo{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_Info{v}
				iNdEx = postIndex
			case 6:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field InitChain", 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
				}
				v := &ResponseInitChain{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_InitChain{v}
				iNdEx = postIndex
			case 7:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Query", 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
				}
				v := &ResponseQuery{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_Query{v}
				iNdEx = postIndex
			case 9:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CheckTx", 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
				}
				v := &ResponseCheckTx{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_CheckTx{v}
				iNdEx = postIndex
			case 12:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Commit", 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
				}
				v := &ResponseCommit{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_Commit{v}
				iNdEx = postIndex
			case 13:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ListSnapshots", 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
				}
				v := &ResponseListSnapshots{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_ListSnapshots{v}
				iNdEx = postIndex
			case 14:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OfferSnapshot", 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
				}
				v := &ResponseOfferSnapshot{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_OfferSnapshot{v}
				iNdEx = postIndex
			case 15:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LoadSnapshotChunk", 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
				}
				v := &ResponseLoadSnapshotChunk{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_LoadSnapshotChunk{v}
				iNdEx = postIndex
			case 16:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ApplySnapshotChunk", 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
				}
				v := &ResponseApplySnapshotChunk{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_ApplySnapshotChunk{v}
				iNdEx = postIndex
			case 17:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field PrepareProposal", 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
				}
				v := &ResponsePrepareProposal{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_PrepareProposal{v}
				iNdEx = postIndex
			case 18:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProcessProposal", 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
				}
				v := &ResponseProcessProposal{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_ProcessProposal{v}
				iNdEx = postIndex
			case 19:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ExtendVote", 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
				}
				v := &ResponseExtendVote{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_ExtendVote{v}
				iNdEx = postIndex
			case 20:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field VerifyVoteExtension", 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
				}
				v := &ResponseVerifyVoteExtension{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_VerifyVoteExtension{v}
				iNdEx = postIndex
			case 21:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field FinalizeBlock", 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
				}
				v := &ResponseFinalizeBlock{}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				x.Value = &Response_FinalizeBlock{v}
				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_ResponseException       protoreflect.MessageDescriptor
	fd_ResponseException_error protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseException = File_tendermint_abci_types_proto.Messages().ByName("ResponseException")
	fd_ResponseException_error = md_ResponseException.Fields().ByName("error")
}

var _ protoreflect.Message = (*fastReflection_ResponseException)(nil)

type fastReflection_ResponseException ResponseException

func (x *ResponseException) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseException)(x)
}

func (x *ResponseException) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_ResponseException_messageType fastReflection_ResponseException_messageType
var _ protoreflect.MessageType = fastReflection_ResponseException_messageType{}

type fastReflection_ResponseException_messageType struct{}

func (x fastReflection_ResponseException_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseException)(nil)
}
func (x fastReflection_ResponseException_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseException)
}
func (x fastReflection_ResponseException_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseException
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseException) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseException
}

// 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_ResponseException) Type() protoreflect.MessageType {
	return _fastReflection_ResponseException_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseException) New() protoreflect.Message {
	return new(fastReflection_ResponseException)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseException) Interface() protoreflect.ProtoMessage {
	return (*ResponseException)(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_ResponseException) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Error != "" {
		value := protoreflect.ValueOfString(x.Error)
		if !f(fd_ResponseException_error, 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_ResponseException) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseException.error":
		return x.Error != ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseException"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseException 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_ResponseException) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseException.error":
		x.Error = ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseException"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseException 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_ResponseException) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseException.error":
		value := x.Error
		return protoreflect.ValueOfString(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseException"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseException 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_ResponseException) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseException.error":
		x.Error = value.Interface().(string)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseException"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseException 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_ResponseException) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseException.error":
		panic(fmt.Errorf("field error of message tendermint.abci.ResponseException is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseException"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseException 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_ResponseException) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseException.error":
		return protoreflect.ValueOfString("")
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseException"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseException 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_ResponseException) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseException", 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_ResponseException) 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_ResponseException) 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_ResponseException) 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_ResponseException) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseException)
		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.Error)
		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().(*ResponseException)
		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.Error) > 0 {
			i -= len(x.Error)
			copy(dAtA[i:], x.Error)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Error)))
			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().(*ResponseException)
		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: ResponseException: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseException: 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 Error", 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.Error = 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_ResponseEcho         protoreflect.MessageDescriptor
	fd_ResponseEcho_message protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseEcho = File_tendermint_abci_types_proto.Messages().ByName("ResponseEcho")
	fd_ResponseEcho_message = md_ResponseEcho.Fields().ByName("message")
}

var _ protoreflect.Message = (*fastReflection_ResponseEcho)(nil)

type fastReflection_ResponseEcho ResponseEcho

func (x *ResponseEcho) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseEcho)(x)
}

func (x *ResponseEcho) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_ResponseEcho_messageType fastReflection_ResponseEcho_messageType
var _ protoreflect.MessageType = fastReflection_ResponseEcho_messageType{}

type fastReflection_ResponseEcho_messageType struct{}

func (x fastReflection_ResponseEcho_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseEcho)(nil)
}
func (x fastReflection_ResponseEcho_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseEcho)
}
func (x fastReflection_ResponseEcho_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseEcho
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseEcho) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseEcho
}

// 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_ResponseEcho) Type() protoreflect.MessageType {
	return _fastReflection_ResponseEcho_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseEcho) New() protoreflect.Message {
	return new(fastReflection_ResponseEcho)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseEcho) Interface() protoreflect.ProtoMessage {
	return (*ResponseEcho)(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_ResponseEcho) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Message != "" {
		value := protoreflect.ValueOfString(x.Message)
		if !f(fd_ResponseEcho_message, 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_ResponseEcho) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseEcho.message":
		return x.Message != ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseEcho 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_ResponseEcho) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseEcho.message":
		x.Message = ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseEcho 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_ResponseEcho) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseEcho.message":
		value := x.Message
		return protoreflect.ValueOfString(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseEcho 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_ResponseEcho) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseEcho.message":
		x.Message = value.Interface().(string)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseEcho 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_ResponseEcho) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseEcho.message":
		panic(fmt.Errorf("field message of message tendermint.abci.ResponseEcho is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseEcho 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_ResponseEcho) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseEcho.message":
		return protoreflect.ValueOfString("")
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseEcho"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseEcho 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_ResponseEcho) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseEcho", 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_ResponseEcho) 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_ResponseEcho) 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_ResponseEcho) 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_ResponseEcho) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseEcho)
		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.Message)
		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().(*ResponseEcho)
		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.Message) > 0 {
			i -= len(x.Message)
			copy(dAtA[i:], x.Message)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Message)))
			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().(*ResponseEcho)
		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: ResponseEcho: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseEcho: 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 Message", 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.Message = 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_ResponseFlush protoreflect.MessageDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseFlush = File_tendermint_abci_types_proto.Messages().ByName("ResponseFlush")
}

var _ protoreflect.Message = (*fastReflection_ResponseFlush)(nil)

type fastReflection_ResponseFlush ResponseFlush

func (x *ResponseFlush) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseFlush)(x)
}

func (x *ResponseFlush) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_ResponseFlush_messageType fastReflection_ResponseFlush_messageType
var _ protoreflect.MessageType = fastReflection_ResponseFlush_messageType{}

type fastReflection_ResponseFlush_messageType struct{}

func (x fastReflection_ResponseFlush_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseFlush)(nil)
}
func (x fastReflection_ResponseFlush_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseFlush)
}
func (x fastReflection_ResponseFlush_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseFlush
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseFlush) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseFlush
}

// 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_ResponseFlush) Type() protoreflect.MessageType {
	return _fastReflection_ResponseFlush_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseFlush) New() protoreflect.Message {
	return new(fastReflection_ResponseFlush)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseFlush) Interface() protoreflect.ProtoMessage {
	return (*ResponseFlush)(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_ResponseFlush) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
}

// 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_ResponseFlush) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFlush 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_ResponseFlush) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFlush 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_ResponseFlush) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFlush 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_ResponseFlush) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFlush 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_ResponseFlush) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFlush 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_ResponseFlush) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFlush"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFlush 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_ResponseFlush) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseFlush", 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_ResponseFlush) 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_ResponseFlush) 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_ResponseFlush) 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_ResponseFlush) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseFlush)
		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.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().(*ResponseFlush)
		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 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().(*ResponseFlush)
		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: ResponseFlush: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseFlush: illegal tag %d (wire type %d)", fieldNum, wire)
			}
			switch fieldNum {
			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_ResponseInfo                     protoreflect.MessageDescriptor
	fd_ResponseInfo_data                protoreflect.FieldDescriptor
	fd_ResponseInfo_version             protoreflect.FieldDescriptor
	fd_ResponseInfo_app_version         protoreflect.FieldDescriptor
	fd_ResponseInfo_last_block_height   protoreflect.FieldDescriptor
	fd_ResponseInfo_last_block_app_hash protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseInfo = File_tendermint_abci_types_proto.Messages().ByName("ResponseInfo")
	fd_ResponseInfo_data = md_ResponseInfo.Fields().ByName("data")
	fd_ResponseInfo_version = md_ResponseInfo.Fields().ByName("version")
	fd_ResponseInfo_app_version = md_ResponseInfo.Fields().ByName("app_version")
	fd_ResponseInfo_last_block_height = md_ResponseInfo.Fields().ByName("last_block_height")
	fd_ResponseInfo_last_block_app_hash = md_ResponseInfo.Fields().ByName("last_block_app_hash")
}

var _ protoreflect.Message = (*fastReflection_ResponseInfo)(nil)

type fastReflection_ResponseInfo ResponseInfo

func (x *ResponseInfo) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseInfo)(x)
}

func (x *ResponseInfo) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_ResponseInfo_messageType fastReflection_ResponseInfo_messageType
var _ protoreflect.MessageType = fastReflection_ResponseInfo_messageType{}

type fastReflection_ResponseInfo_messageType struct{}

func (x fastReflection_ResponseInfo_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseInfo)(nil)
}
func (x fastReflection_ResponseInfo_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseInfo)
}
func (x fastReflection_ResponseInfo_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseInfo
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseInfo) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseInfo
}

// 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_ResponseInfo) Type() protoreflect.MessageType {
	return _fastReflection_ResponseInfo_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseInfo) New() protoreflect.Message {
	return new(fastReflection_ResponseInfo)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseInfo) Interface() protoreflect.ProtoMessage {
	return (*ResponseInfo)(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_ResponseInfo) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Data != "" {
		value := protoreflect.ValueOfString(x.Data)
		if !f(fd_ResponseInfo_data, value) {
			return
		}
	}
	if x.Version != "" {
		value := protoreflect.ValueOfString(x.Version)
		if !f(fd_ResponseInfo_version, value) {
			return
		}
	}
	if x.AppVersion != uint64(0) {
		value := protoreflect.ValueOfUint64(x.AppVersion)
		if !f(fd_ResponseInfo_app_version, value) {
			return
		}
	}
	if x.LastBlockHeight != int64(0) {
		value := protoreflect.ValueOfInt64(x.LastBlockHeight)
		if !f(fd_ResponseInfo_last_block_height, value) {
			return
		}
	}
	if len(x.LastBlockAppHash) != 0 {
		value := protoreflect.ValueOfBytes(x.LastBlockAppHash)
		if !f(fd_ResponseInfo_last_block_app_hash, value) {
			return
		}
	}
}

// Has reports whether a field is populated.
//
// Some fields have the property of nullability where it is possible to
// distinguish between the default value of a field and whether the field
// was explicitly populated with the default value. Singular message fields,
// member fields of a oneof, and proto2 scalar fields are nullable. Such
// fields are populated only if explicitly set.
//
// In other cases (aside from the nullable cases above),
// a proto3 scalar field is populated if it contains a non-zero value, and
// a repeated field is populated if it is non-empty.
func (x *fastReflection_ResponseInfo) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInfo.data":
		return x.Data != ""
	case "tendermint.abci.ResponseInfo.version":
		return x.Version != ""
	case "tendermint.abci.ResponseInfo.app_version":
		return x.AppVersion != uint64(0)
	case "tendermint.abci.ResponseInfo.last_block_height":
		return x.LastBlockHeight != int64(0)
	case "tendermint.abci.ResponseInfo.last_block_app_hash":
		return len(x.LastBlockAppHash) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInfo 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_ResponseInfo) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInfo.data":
		x.Data = ""
	case "tendermint.abci.ResponseInfo.version":
		x.Version = ""
	case "tendermint.abci.ResponseInfo.app_version":
		x.AppVersion = uint64(0)
	case "tendermint.abci.ResponseInfo.last_block_height":
		x.LastBlockHeight = int64(0)
	case "tendermint.abci.ResponseInfo.last_block_app_hash":
		x.LastBlockAppHash = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInfo 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_ResponseInfo) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseInfo.data":
		value := x.Data
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.ResponseInfo.version":
		value := x.Version
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.ResponseInfo.app_version":
		value := x.AppVersion
		return protoreflect.ValueOfUint64(value)
	case "tendermint.abci.ResponseInfo.last_block_height":
		value := x.LastBlockHeight
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.ResponseInfo.last_block_app_hash":
		value := x.LastBlockAppHash
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInfo 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_ResponseInfo) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInfo.data":
		x.Data = value.Interface().(string)
	case "tendermint.abci.ResponseInfo.version":
		x.Version = value.Interface().(string)
	case "tendermint.abci.ResponseInfo.app_version":
		x.AppVersion = value.Uint()
	case "tendermint.abci.ResponseInfo.last_block_height":
		x.LastBlockHeight = value.Int()
	case "tendermint.abci.ResponseInfo.last_block_app_hash":
		x.LastBlockAppHash = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInfo 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_ResponseInfo) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInfo.data":
		panic(fmt.Errorf("field data of message tendermint.abci.ResponseInfo is not mutable"))
	case "tendermint.abci.ResponseInfo.version":
		panic(fmt.Errorf("field version of message tendermint.abci.ResponseInfo is not mutable"))
	case "tendermint.abci.ResponseInfo.app_version":
		panic(fmt.Errorf("field app_version of message tendermint.abci.ResponseInfo is not mutable"))
	case "tendermint.abci.ResponseInfo.last_block_height":
		panic(fmt.Errorf("field last_block_height of message tendermint.abci.ResponseInfo is not mutable"))
	case "tendermint.abci.ResponseInfo.last_block_app_hash":
		panic(fmt.Errorf("field last_block_app_hash of message tendermint.abci.ResponseInfo is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInfo 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_ResponseInfo) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInfo.data":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.ResponseInfo.version":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.ResponseInfo.app_version":
		return protoreflect.ValueOfUint64(uint64(0))
	case "tendermint.abci.ResponseInfo.last_block_height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.ResponseInfo.last_block_app_hash":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInfo 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_ResponseInfo) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseInfo", 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_ResponseInfo) 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_ResponseInfo) 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_ResponseInfo) 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_ResponseInfo) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseInfo)
		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.Data)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Version)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.AppVersion != 0 {
			n += 1 + runtime.Sov(uint64(x.AppVersion))
		}
		if x.LastBlockHeight != 0 {
			n += 1 + runtime.Sov(uint64(x.LastBlockHeight))
		}
		l = len(x.LastBlockAppHash)
		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().(*ResponseInfo)
		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.LastBlockAppHash) > 0 {
			i -= len(x.LastBlockAppHash)
			copy(dAtA[i:], x.LastBlockAppHash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.LastBlockAppHash)))
			i--
			dAtA[i] = 0x2a
		}
		if x.LastBlockHeight != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.LastBlockHeight))
			i--
			dAtA[i] = 0x20
		}
		if x.AppVersion != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.AppVersion))
			i--
			dAtA[i] = 0x18
		}
		if len(x.Version) > 0 {
			i -= len(x.Version)
			copy(dAtA[i:], x.Version)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Version)))
			i--
			dAtA[i] = 0x12
		}
		if len(x.Data) > 0 {
			i -= len(x.Data)
			copy(dAtA[i:], x.Data)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Data)))
			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().(*ResponseInfo)
		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: ResponseInfo: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseInfo: 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 Data", 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.Data = 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 Version", 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.Version = string(dAtA[iNdEx:postIndex])
				iNdEx = postIndex
			case 3:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AppVersion", wireType)
				}
				x.AppVersion = 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.AppVersion |= uint64(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 LastBlockHeight", wireType)
				}
				x.LastBlockHeight = 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.LastBlockHeight |= int64(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 LastBlockAppHash", 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.LastBlockAppHash = append(x.LastBlockAppHash[:0], dAtA[iNdEx:postIndex]...)
				if x.LastBlockAppHash == nil {
					x.LastBlockAppHash = []byte{}
				}
				iNdEx = postIndex
			default:
				iNdEx = preIndex
				skippy, err := runtime.Skip(dAtA[iNdEx:])
				if err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				if (skippy < 0) || (iNdEx+skippy) < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if (iNdEx + skippy) > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if !options.DiscardUnknown {
					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
				}
				iNdEx += skippy
			}
		}

		if iNdEx > l {
			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
		}
		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
	}
	return &protoiface.Methods{
		NoUnkeyedLiterals: struct{}{},
		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
		Size:              size,
		Marshal:           marshal,
		Unmarshal:         unmarshal,
		Merge:             nil,
		CheckInitialized:  nil,
	}
}

var _ protoreflect.List = (*_ResponseInitChain_2_list)(nil)

type _ResponseInitChain_2_list struct {
	list *[]*ValidatorUpdate
}

func (x *_ResponseInitChain_2_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ResponseInitChain_2_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_ResponseInitChain_2_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ValidatorUpdate)
	(*x.list)[i] = concreteValue
}

func (x *_ResponseInitChain_2_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ValidatorUpdate)
	*x.list = append(*x.list, concreteValue)
}

func (x *_ResponseInitChain_2_list) AppendMutable() protoreflect.Value {
	v := new(ValidatorUpdate)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseInitChain_2_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_ResponseInitChain_2_list) NewElement() protoreflect.Value {
	v := new(ValidatorUpdate)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseInitChain_2_list) IsValid() bool {
	return x.list != nil
}

var (
	md_ResponseInitChain                  protoreflect.MessageDescriptor
	fd_ResponseInitChain_consensus_params protoreflect.FieldDescriptor
	fd_ResponseInitChain_validators       protoreflect.FieldDescriptor
	fd_ResponseInitChain_app_hash         protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseInitChain = File_tendermint_abci_types_proto.Messages().ByName("ResponseInitChain")
	fd_ResponseInitChain_consensus_params = md_ResponseInitChain.Fields().ByName("consensus_params")
	fd_ResponseInitChain_validators = md_ResponseInitChain.Fields().ByName("validators")
	fd_ResponseInitChain_app_hash = md_ResponseInitChain.Fields().ByName("app_hash")
}

var _ protoreflect.Message = (*fastReflection_ResponseInitChain)(nil)

type fastReflection_ResponseInitChain ResponseInitChain

func (x *ResponseInitChain) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseInitChain)(x)
}

func (x *ResponseInitChain) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_ResponseInitChain_messageType fastReflection_ResponseInitChain_messageType
var _ protoreflect.MessageType = fastReflection_ResponseInitChain_messageType{}

type fastReflection_ResponseInitChain_messageType struct{}

func (x fastReflection_ResponseInitChain_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseInitChain)(nil)
}
func (x fastReflection_ResponseInitChain_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseInitChain)
}
func (x fastReflection_ResponseInitChain_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseInitChain
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseInitChain) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseInitChain
}

// 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_ResponseInitChain) Type() protoreflect.MessageType {
	return _fastReflection_ResponseInitChain_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseInitChain) New() protoreflect.Message {
	return new(fastReflection_ResponseInitChain)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseInitChain) Interface() protoreflect.ProtoMessage {
	return (*ResponseInitChain)(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_ResponseInitChain) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.ConsensusParams != nil {
		value := protoreflect.ValueOfMessage(x.ConsensusParams.ProtoReflect())
		if !f(fd_ResponseInitChain_consensus_params, value) {
			return
		}
	}
	if len(x.Validators) != 0 {
		value := protoreflect.ValueOfList(&_ResponseInitChain_2_list{list: &x.Validators})
		if !f(fd_ResponseInitChain_validators, value) {
			return
		}
	}
	if len(x.AppHash) != 0 {
		value := protoreflect.ValueOfBytes(x.AppHash)
		if !f(fd_ResponseInitChain_app_hash, value) {
			return
		}
	}
}

// Has reports whether a field is populated.
//
// Some fields have the property of nullability where it is possible to
// distinguish between the default value of a field and whether the field
// was explicitly populated with the default value. Singular message fields,
// member fields of a oneof, and proto2 scalar fields are nullable. Such
// fields are populated only if explicitly set.
//
// In other cases (aside from the nullable cases above),
// a proto3 scalar field is populated if it contains a non-zero value, and
// a repeated field is populated if it is non-empty.
func (x *fastReflection_ResponseInitChain) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInitChain.consensus_params":
		return x.ConsensusParams != nil
	case "tendermint.abci.ResponseInitChain.validators":
		return len(x.Validators) != 0
	case "tendermint.abci.ResponseInitChain.app_hash":
		return len(x.AppHash) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInitChain 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_ResponseInitChain) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInitChain.consensus_params":
		x.ConsensusParams = nil
	case "tendermint.abci.ResponseInitChain.validators":
		x.Validators = nil
	case "tendermint.abci.ResponseInitChain.app_hash":
		x.AppHash = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInitChain 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_ResponseInitChain) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseInitChain.consensus_params":
		value := x.ConsensusParams
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.ResponseInitChain.validators":
		if len(x.Validators) == 0 {
			return protoreflect.ValueOfList(&_ResponseInitChain_2_list{})
		}
		listValue := &_ResponseInitChain_2_list{list: &x.Validators}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.ResponseInitChain.app_hash":
		value := x.AppHash
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInitChain 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_ResponseInitChain) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInitChain.consensus_params":
		x.ConsensusParams = value.Message().Interface().(*types.ConsensusParams)
	case "tendermint.abci.ResponseInitChain.validators":
		lv := value.List()
		clv := lv.(*_ResponseInitChain_2_list)
		x.Validators = *clv.list
	case "tendermint.abci.ResponseInitChain.app_hash":
		x.AppHash = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInitChain 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_ResponseInitChain) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInitChain.consensus_params":
		if x.ConsensusParams == nil {
			x.ConsensusParams = new(types.ConsensusParams)
		}
		return protoreflect.ValueOfMessage(x.ConsensusParams.ProtoReflect())
	case "tendermint.abci.ResponseInitChain.validators":
		if x.Validators == nil {
			x.Validators = []*ValidatorUpdate{}
		}
		value := &_ResponseInitChain_2_list{list: &x.Validators}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.ResponseInitChain.app_hash":
		panic(fmt.Errorf("field app_hash of message tendermint.abci.ResponseInitChain is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInitChain 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_ResponseInitChain) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseInitChain.consensus_params":
		m := new(types.ConsensusParams)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.ResponseInitChain.validators":
		list := []*ValidatorUpdate{}
		return protoreflect.ValueOfList(&_ResponseInitChain_2_list{list: &list})
	case "tendermint.abci.ResponseInitChain.app_hash":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseInitChain"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseInitChain 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_ResponseInitChain) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseInitChain", 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_ResponseInitChain) 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_ResponseInitChain) 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_ResponseInitChain) 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_ResponseInitChain) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseInitChain)
		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.ConsensusParams != nil {
			l = options.Size(x.ConsensusParams)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if len(x.Validators) > 0 {
			for _, e := range x.Validators {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		l = len(x.AppHash)
		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().(*ResponseInitChain)
		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.AppHash) > 0 {
			i -= len(x.AppHash)
			copy(dAtA[i:], x.AppHash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AppHash)))
			i--
			dAtA[i] = 0x1a
		}
		if len(x.Validators) > 0 {
			for iNdEx := len(x.Validators) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Validators[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.ConsensusParams != nil {
			encoded, err := options.Marshal(x.ConsensusParams)
			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().(*ResponseInitChain)
		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: ResponseInitChain: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseInitChain: 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 ConsensusParams", 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.ConsensusParams == nil {
					x.ConsensusParams = &types.ConsensusParams{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ConsensusParams); 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 Validators", 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.Validators = append(x.Validators, &ValidatorUpdate{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Validators[len(x.Validators)-1]); 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 AppHash", wireType)
				}
				var byteLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
					}
					if iNdEx >= l {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					byteLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if byteLen < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				postIndex := iNdEx + byteLen
				if postIndex < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if postIndex > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				x.AppHash = append(x.AppHash[:0], dAtA[iNdEx:postIndex]...)
				if x.AppHash == nil {
					x.AppHash = []byte{}
				}
				iNdEx = postIndex
			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_ResponseQuery           protoreflect.MessageDescriptor
	fd_ResponseQuery_code      protoreflect.FieldDescriptor
	fd_ResponseQuery_log       protoreflect.FieldDescriptor
	fd_ResponseQuery_info      protoreflect.FieldDescriptor
	fd_ResponseQuery_index     protoreflect.FieldDescriptor
	fd_ResponseQuery_key       protoreflect.FieldDescriptor
	fd_ResponseQuery_value     protoreflect.FieldDescriptor
	fd_ResponseQuery_proof_ops protoreflect.FieldDescriptor
	fd_ResponseQuery_height    protoreflect.FieldDescriptor
	fd_ResponseQuery_codespace protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseQuery = File_tendermint_abci_types_proto.Messages().ByName("ResponseQuery")
	fd_ResponseQuery_code = md_ResponseQuery.Fields().ByName("code")
	fd_ResponseQuery_log = md_ResponseQuery.Fields().ByName("log")
	fd_ResponseQuery_info = md_ResponseQuery.Fields().ByName("info")
	fd_ResponseQuery_index = md_ResponseQuery.Fields().ByName("index")
	fd_ResponseQuery_key = md_ResponseQuery.Fields().ByName("key")
	fd_ResponseQuery_value = md_ResponseQuery.Fields().ByName("value")
	fd_ResponseQuery_proof_ops = md_ResponseQuery.Fields().ByName("proof_ops")
	fd_ResponseQuery_height = md_ResponseQuery.Fields().ByName("height")
	fd_ResponseQuery_codespace = md_ResponseQuery.Fields().ByName("codespace")
}

var _ protoreflect.Message = (*fastReflection_ResponseQuery)(nil)

type fastReflection_ResponseQuery ResponseQuery

func (x *ResponseQuery) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseQuery)(x)
}

func (x *ResponseQuery) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_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_ResponseQuery_messageType fastReflection_ResponseQuery_messageType
var _ protoreflect.MessageType = fastReflection_ResponseQuery_messageType{}

type fastReflection_ResponseQuery_messageType struct{}

func (x fastReflection_ResponseQuery_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseQuery)(nil)
}
func (x fastReflection_ResponseQuery_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseQuery)
}
func (x fastReflection_ResponseQuery_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseQuery
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseQuery) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseQuery
}

// 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_ResponseQuery) Type() protoreflect.MessageType {
	return _fastReflection_ResponseQuery_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseQuery) New() protoreflect.Message {
	return new(fastReflection_ResponseQuery)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseQuery) Interface() protoreflect.ProtoMessage {
	return (*ResponseQuery)(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_ResponseQuery) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Code != uint32(0) {
		value := protoreflect.ValueOfUint32(x.Code)
		if !f(fd_ResponseQuery_code, value) {
			return
		}
	}
	if x.Log != "" {
		value := protoreflect.ValueOfString(x.Log)
		if !f(fd_ResponseQuery_log, value) {
			return
		}
	}
	if x.Info != "" {
		value := protoreflect.ValueOfString(x.Info)
		if !f(fd_ResponseQuery_info, value) {
			return
		}
	}
	if x.Index != int64(0) {
		value := protoreflect.ValueOfInt64(x.Index)
		if !f(fd_ResponseQuery_index, value) {
			return
		}
	}
	if len(x.Key) != 0 {
		value := protoreflect.ValueOfBytes(x.Key)
		if !f(fd_ResponseQuery_key, value) {
			return
		}
	}
	if len(x.Value) != 0 {
		value := protoreflect.ValueOfBytes(x.Value)
		if !f(fd_ResponseQuery_value, value) {
			return
		}
	}
	if x.ProofOps != nil {
		value := protoreflect.ValueOfMessage(x.ProofOps.ProtoReflect())
		if !f(fd_ResponseQuery_proof_ops, value) {
			return
		}
	}
	if x.Height != int64(0) {
		value := protoreflect.ValueOfInt64(x.Height)
		if !f(fd_ResponseQuery_height, value) {
			return
		}
	}
	if x.Codespace != "" {
		value := protoreflect.ValueOfString(x.Codespace)
		if !f(fd_ResponseQuery_codespace, 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_ResponseQuery) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseQuery.code":
		return x.Code != uint32(0)
	case "tendermint.abci.ResponseQuery.log":
		return x.Log != ""
	case "tendermint.abci.ResponseQuery.info":
		return x.Info != ""
	case "tendermint.abci.ResponseQuery.index":
		return x.Index != int64(0)
	case "tendermint.abci.ResponseQuery.key":
		return len(x.Key) != 0
	case "tendermint.abci.ResponseQuery.value":
		return len(x.Value) != 0
	case "tendermint.abci.ResponseQuery.proof_ops":
		return x.ProofOps != nil
	case "tendermint.abci.ResponseQuery.height":
		return x.Height != int64(0)
	case "tendermint.abci.ResponseQuery.codespace":
		return x.Codespace != ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseQuery 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_ResponseQuery) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseQuery.code":
		x.Code = uint32(0)
	case "tendermint.abci.ResponseQuery.log":
		x.Log = ""
	case "tendermint.abci.ResponseQuery.info":
		x.Info = ""
	case "tendermint.abci.ResponseQuery.index":
		x.Index = int64(0)
	case "tendermint.abci.ResponseQuery.key":
		x.Key = nil
	case "tendermint.abci.ResponseQuery.value":
		x.Value = nil
	case "tendermint.abci.ResponseQuery.proof_ops":
		x.ProofOps = nil
	case "tendermint.abci.ResponseQuery.height":
		x.Height = int64(0)
	case "tendermint.abci.ResponseQuery.codespace":
		x.Codespace = ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseQuery 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_ResponseQuery) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseQuery.code":
		value := x.Code
		return protoreflect.ValueOfUint32(value)
	case "tendermint.abci.ResponseQuery.log":
		value := x.Log
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.ResponseQuery.info":
		value := x.Info
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.ResponseQuery.index":
		value := x.Index
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.ResponseQuery.key":
		value := x.Key
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.ResponseQuery.value":
		value := x.Value
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.ResponseQuery.proof_ops":
		value := x.ProofOps
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.ResponseQuery.height":
		value := x.Height
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.ResponseQuery.codespace":
		value := x.Codespace
		return protoreflect.ValueOfString(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseQuery 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_ResponseQuery) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseQuery.code":
		x.Code = uint32(value.Uint())
	case "tendermint.abci.ResponseQuery.log":
		x.Log = value.Interface().(string)
	case "tendermint.abci.ResponseQuery.info":
		x.Info = value.Interface().(string)
	case "tendermint.abci.ResponseQuery.index":
		x.Index = value.Int()
	case "tendermint.abci.ResponseQuery.key":
		x.Key = value.Bytes()
	case "tendermint.abci.ResponseQuery.value":
		x.Value = value.Bytes()
	case "tendermint.abci.ResponseQuery.proof_ops":
		x.ProofOps = value.Message().Interface().(*crypto.ProofOps)
	case "tendermint.abci.ResponseQuery.height":
		x.Height = value.Int()
	case "tendermint.abci.ResponseQuery.codespace":
		x.Codespace = value.Interface().(string)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseQuery 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_ResponseQuery) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseQuery.proof_ops":
		if x.ProofOps == nil {
			x.ProofOps = new(crypto.ProofOps)
		}
		return protoreflect.ValueOfMessage(x.ProofOps.ProtoReflect())
	case "tendermint.abci.ResponseQuery.code":
		panic(fmt.Errorf("field code of message tendermint.abci.ResponseQuery is not mutable"))
	case "tendermint.abci.ResponseQuery.log":
		panic(fmt.Errorf("field log of message tendermint.abci.ResponseQuery is not mutable"))
	case "tendermint.abci.ResponseQuery.info":
		panic(fmt.Errorf("field info of message tendermint.abci.ResponseQuery is not mutable"))
	case "tendermint.abci.ResponseQuery.index":
		panic(fmt.Errorf("field index of message tendermint.abci.ResponseQuery is not mutable"))
	case "tendermint.abci.ResponseQuery.key":
		panic(fmt.Errorf("field key of message tendermint.abci.ResponseQuery is not mutable"))
	case "tendermint.abci.ResponseQuery.value":
		panic(fmt.Errorf("field value of message tendermint.abci.ResponseQuery is not mutable"))
	case "tendermint.abci.ResponseQuery.height":
		panic(fmt.Errorf("field height of message tendermint.abci.ResponseQuery is not mutable"))
	case "tendermint.abci.ResponseQuery.codespace":
		panic(fmt.Errorf("field codespace of message tendermint.abci.ResponseQuery is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseQuery 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_ResponseQuery) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseQuery.code":
		return protoreflect.ValueOfUint32(uint32(0))
	case "tendermint.abci.ResponseQuery.log":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.ResponseQuery.info":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.ResponseQuery.index":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.ResponseQuery.key":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.ResponseQuery.value":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.ResponseQuery.proof_ops":
		m := new(crypto.ProofOps)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.ResponseQuery.height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.ResponseQuery.codespace":
		return protoreflect.ValueOfString("")
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseQuery"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseQuery 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_ResponseQuery) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseQuery", 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_ResponseQuery) 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_ResponseQuery) 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_ResponseQuery) 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_ResponseQuery) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseQuery)
		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.Code != 0 {
			n += 1 + runtime.Sov(uint64(x.Code))
		}
		l = len(x.Log)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Info)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Index != 0 {
			n += 1 + runtime.Sov(uint64(x.Index))
		}
		l = len(x.Key)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Value)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.ProofOps != nil {
			l = options.Size(x.ProofOps)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		l = len(x.Codespace)
		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().(*ResponseQuery)
		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.Codespace) > 0 {
			i -= len(x.Codespace)
			copy(dAtA[i:], x.Codespace)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Codespace)))
			i--
			dAtA[i] = 0x52
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			i--
			dAtA[i] = 0x48
		}
		if x.ProofOps != nil {
			encoded, err := options.Marshal(x.ProofOps)
			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] = 0x42
		}
		if len(x.Value) > 0 {
			i -= len(x.Value)
			copy(dAtA[i:], x.Value)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Value)))
			i--
			dAtA[i] = 0x3a
		}
		if len(x.Key) > 0 {
			i -= len(x.Key)
			copy(dAtA[i:], x.Key)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Key)))
			i--
			dAtA[i] = 0x32
		}
		if x.Index != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Index))
			i--
			dAtA[i] = 0x28
		}
		if len(x.Info) > 0 {
			i -= len(x.Info)
			copy(dAtA[i:], x.Info)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Info)))
			i--
			dAtA[i] = 0x22
		}
		if len(x.Log) > 0 {
			i -= len(x.Log)
			copy(dAtA[i:], x.Log)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Log)))
			i--
			dAtA[i] = 0x1a
		}
		if x.Code != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Code))
			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().(*ResponseQuery)
		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: ResponseQuery: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseQuery: 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 Code", wireType)
				}
				x.Code = 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.Code |= uint32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 3:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Log", 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.Log = 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 Info", 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.Info = 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 Index", wireType)
				}
				x.Index = 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.Index |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 6:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Key", 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.Key = append(x.Key[:0], dAtA[iNdEx:postIndex]...)
				if x.Key == nil {
					x.Key = []byte{}
				}
				iNdEx = postIndex
			case 7:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Value", 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.Value = append(x.Value[:0], dAtA[iNdEx:postIndex]...)
				if x.Value == nil {
					x.Value = []byte{}
				}
				iNdEx = postIndex
			case 8:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProofOps", 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.ProofOps == nil {
					x.ProofOps = &crypto.ProofOps{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ProofOps); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 9:
				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 |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 10:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Codespace", 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.Codespace = 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 = (*_ResponseCheckTx_7_list)(nil)

type _ResponseCheckTx_7_list struct {
	list *[]*Event
}

func (x *_ResponseCheckTx_7_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ResponseCheckTx_7_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_ResponseCheckTx_7_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Event)
	(*x.list)[i] = concreteValue
}

func (x *_ResponseCheckTx_7_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Event)
	*x.list = append(*x.list, concreteValue)
}

func (x *_ResponseCheckTx_7_list) AppendMutable() protoreflect.Value {
	v := new(Event)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseCheckTx_7_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_ResponseCheckTx_7_list) NewElement() protoreflect.Value {
	v := new(Event)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseCheckTx_7_list) IsValid() bool {
	return x.list != nil
}

var (
	md_ResponseCheckTx            protoreflect.MessageDescriptor
	fd_ResponseCheckTx_code       protoreflect.FieldDescriptor
	fd_ResponseCheckTx_data       protoreflect.FieldDescriptor
	fd_ResponseCheckTx_log        protoreflect.FieldDescriptor
	fd_ResponseCheckTx_info       protoreflect.FieldDescriptor
	fd_ResponseCheckTx_gas_wanted protoreflect.FieldDescriptor
	fd_ResponseCheckTx_gas_used   protoreflect.FieldDescriptor
	fd_ResponseCheckTx_events     protoreflect.FieldDescriptor
	fd_ResponseCheckTx_codespace  protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseCheckTx = File_tendermint_abci_types_proto.Messages().ByName("ResponseCheckTx")
	fd_ResponseCheckTx_code = md_ResponseCheckTx.Fields().ByName("code")
	fd_ResponseCheckTx_data = md_ResponseCheckTx.Fields().ByName("data")
	fd_ResponseCheckTx_log = md_ResponseCheckTx.Fields().ByName("log")
	fd_ResponseCheckTx_info = md_ResponseCheckTx.Fields().ByName("info")
	fd_ResponseCheckTx_gas_wanted = md_ResponseCheckTx.Fields().ByName("gas_wanted")
	fd_ResponseCheckTx_gas_used = md_ResponseCheckTx.Fields().ByName("gas_used")
	fd_ResponseCheckTx_events = md_ResponseCheckTx.Fields().ByName("events")
	fd_ResponseCheckTx_codespace = md_ResponseCheckTx.Fields().ByName("codespace")
}

var _ protoreflect.Message = (*fastReflection_ResponseCheckTx)(nil)

type fastReflection_ResponseCheckTx ResponseCheckTx

func (x *ResponseCheckTx) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseCheckTx)(x)
}

func (x *ResponseCheckTx) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[24]
	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_ResponseCheckTx_messageType fastReflection_ResponseCheckTx_messageType
var _ protoreflect.MessageType = fastReflection_ResponseCheckTx_messageType{}

type fastReflection_ResponseCheckTx_messageType struct{}

func (x fastReflection_ResponseCheckTx_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseCheckTx)(nil)
}
func (x fastReflection_ResponseCheckTx_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseCheckTx)
}
func (x fastReflection_ResponseCheckTx_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseCheckTx
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseCheckTx) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseCheckTx
}

// 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_ResponseCheckTx) Type() protoreflect.MessageType {
	return _fastReflection_ResponseCheckTx_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseCheckTx) New() protoreflect.Message {
	return new(fastReflection_ResponseCheckTx)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseCheckTx) Interface() protoreflect.ProtoMessage {
	return (*ResponseCheckTx)(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_ResponseCheckTx) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Code != uint32(0) {
		value := protoreflect.ValueOfUint32(x.Code)
		if !f(fd_ResponseCheckTx_code, value) {
			return
		}
	}
	if len(x.Data) != 0 {
		value := protoreflect.ValueOfBytes(x.Data)
		if !f(fd_ResponseCheckTx_data, value) {
			return
		}
	}
	if x.Log != "" {
		value := protoreflect.ValueOfString(x.Log)
		if !f(fd_ResponseCheckTx_log, value) {
			return
		}
	}
	if x.Info != "" {
		value := protoreflect.ValueOfString(x.Info)
		if !f(fd_ResponseCheckTx_info, value) {
			return
		}
	}
	if x.GasWanted != int64(0) {
		value := protoreflect.ValueOfInt64(x.GasWanted)
		if !f(fd_ResponseCheckTx_gas_wanted, value) {
			return
		}
	}
	if x.GasUsed != int64(0) {
		value := protoreflect.ValueOfInt64(x.GasUsed)
		if !f(fd_ResponseCheckTx_gas_used, value) {
			return
		}
	}
	if len(x.Events) != 0 {
		value := protoreflect.ValueOfList(&_ResponseCheckTx_7_list{list: &x.Events})
		if !f(fd_ResponseCheckTx_events, value) {
			return
		}
	}
	if x.Codespace != "" {
		value := protoreflect.ValueOfString(x.Codespace)
		if !f(fd_ResponseCheckTx_codespace, 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_ResponseCheckTx) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCheckTx.code":
		return x.Code != uint32(0)
	case "tendermint.abci.ResponseCheckTx.data":
		return len(x.Data) != 0
	case "tendermint.abci.ResponseCheckTx.log":
		return x.Log != ""
	case "tendermint.abci.ResponseCheckTx.info":
		return x.Info != ""
	case "tendermint.abci.ResponseCheckTx.gas_wanted":
		return x.GasWanted != int64(0)
	case "tendermint.abci.ResponseCheckTx.gas_used":
		return x.GasUsed != int64(0)
	case "tendermint.abci.ResponseCheckTx.events":
		return len(x.Events) != 0
	case "tendermint.abci.ResponseCheckTx.codespace":
		return x.Codespace != ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCheckTx 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_ResponseCheckTx) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCheckTx.code":
		x.Code = uint32(0)
	case "tendermint.abci.ResponseCheckTx.data":
		x.Data = nil
	case "tendermint.abci.ResponseCheckTx.log":
		x.Log = ""
	case "tendermint.abci.ResponseCheckTx.info":
		x.Info = ""
	case "tendermint.abci.ResponseCheckTx.gas_wanted":
		x.GasWanted = int64(0)
	case "tendermint.abci.ResponseCheckTx.gas_used":
		x.GasUsed = int64(0)
	case "tendermint.abci.ResponseCheckTx.events":
		x.Events = nil
	case "tendermint.abci.ResponseCheckTx.codespace":
		x.Codespace = ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCheckTx 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_ResponseCheckTx) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseCheckTx.code":
		value := x.Code
		return protoreflect.ValueOfUint32(value)
	case "tendermint.abci.ResponseCheckTx.data":
		value := x.Data
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.ResponseCheckTx.log":
		value := x.Log
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.ResponseCheckTx.info":
		value := x.Info
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.ResponseCheckTx.gas_wanted":
		value := x.GasWanted
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.ResponseCheckTx.gas_used":
		value := x.GasUsed
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.ResponseCheckTx.events":
		if len(x.Events) == 0 {
			return protoreflect.ValueOfList(&_ResponseCheckTx_7_list{})
		}
		listValue := &_ResponseCheckTx_7_list{list: &x.Events}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.ResponseCheckTx.codespace":
		value := x.Codespace
		return protoreflect.ValueOfString(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCheckTx 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_ResponseCheckTx) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCheckTx.code":
		x.Code = uint32(value.Uint())
	case "tendermint.abci.ResponseCheckTx.data":
		x.Data = value.Bytes()
	case "tendermint.abci.ResponseCheckTx.log":
		x.Log = value.Interface().(string)
	case "tendermint.abci.ResponseCheckTx.info":
		x.Info = value.Interface().(string)
	case "tendermint.abci.ResponseCheckTx.gas_wanted":
		x.GasWanted = value.Int()
	case "tendermint.abci.ResponseCheckTx.gas_used":
		x.GasUsed = value.Int()
	case "tendermint.abci.ResponseCheckTx.events":
		lv := value.List()
		clv := lv.(*_ResponseCheckTx_7_list)
		x.Events = *clv.list
	case "tendermint.abci.ResponseCheckTx.codespace":
		x.Codespace = value.Interface().(string)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCheckTx 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_ResponseCheckTx) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCheckTx.events":
		if x.Events == nil {
			x.Events = []*Event{}
		}
		value := &_ResponseCheckTx_7_list{list: &x.Events}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.ResponseCheckTx.code":
		panic(fmt.Errorf("field code of message tendermint.abci.ResponseCheckTx is not mutable"))
	case "tendermint.abci.ResponseCheckTx.data":
		panic(fmt.Errorf("field data of message tendermint.abci.ResponseCheckTx is not mutable"))
	case "tendermint.abci.ResponseCheckTx.log":
		panic(fmt.Errorf("field log of message tendermint.abci.ResponseCheckTx is not mutable"))
	case "tendermint.abci.ResponseCheckTx.info":
		panic(fmt.Errorf("field info of message tendermint.abci.ResponseCheckTx is not mutable"))
	case "tendermint.abci.ResponseCheckTx.gas_wanted":
		panic(fmt.Errorf("field gas_wanted of message tendermint.abci.ResponseCheckTx is not mutable"))
	case "tendermint.abci.ResponseCheckTx.gas_used":
		panic(fmt.Errorf("field gas_used of message tendermint.abci.ResponseCheckTx is not mutable"))
	case "tendermint.abci.ResponseCheckTx.codespace":
		panic(fmt.Errorf("field codespace of message tendermint.abci.ResponseCheckTx is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCheckTx 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_ResponseCheckTx) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCheckTx.code":
		return protoreflect.ValueOfUint32(uint32(0))
	case "tendermint.abci.ResponseCheckTx.data":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.ResponseCheckTx.log":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.ResponseCheckTx.info":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.ResponseCheckTx.gas_wanted":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.ResponseCheckTx.gas_used":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.ResponseCheckTx.events":
		list := []*Event{}
		return protoreflect.ValueOfList(&_ResponseCheckTx_7_list{list: &list})
	case "tendermint.abci.ResponseCheckTx.codespace":
		return protoreflect.ValueOfString("")
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCheckTx"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCheckTx 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_ResponseCheckTx) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseCheckTx", 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_ResponseCheckTx) 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_ResponseCheckTx) 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_ResponseCheckTx) 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_ResponseCheckTx) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseCheckTx)
		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.Code != 0 {
			n += 1 + runtime.Sov(uint64(x.Code))
		}
		l = len(x.Data)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Log)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Info)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.GasWanted != 0 {
			n += 1 + runtime.Sov(uint64(x.GasWanted))
		}
		if x.GasUsed != 0 {
			n += 1 + runtime.Sov(uint64(x.GasUsed))
		}
		if len(x.Events) > 0 {
			for _, e := range x.Events {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		l = len(x.Codespace)
		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().(*ResponseCheckTx)
		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.Codespace) > 0 {
			i -= len(x.Codespace)
			copy(dAtA[i:], x.Codespace)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Codespace)))
			i--
			dAtA[i] = 0x42
		}
		if len(x.Events) > 0 {
			for iNdEx := len(x.Events) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Events[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] = 0x3a
			}
		}
		if x.GasUsed != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.GasUsed))
			i--
			dAtA[i] = 0x30
		}
		if x.GasWanted != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.GasWanted))
			i--
			dAtA[i] = 0x28
		}
		if len(x.Info) > 0 {
			i -= len(x.Info)
			copy(dAtA[i:], x.Info)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Info)))
			i--
			dAtA[i] = 0x22
		}
		if len(x.Log) > 0 {
			i -= len(x.Log)
			copy(dAtA[i:], x.Log)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Log)))
			i--
			dAtA[i] = 0x1a
		}
		if len(x.Data) > 0 {
			i -= len(x.Data)
			copy(dAtA[i:], x.Data)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Data)))
			i--
			dAtA[i] = 0x12
		}
		if x.Code != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Code))
			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().(*ResponseCheckTx)
		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: ResponseCheckTx: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseCheckTx: 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 Code", wireType)
				}
				x.Code = 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.Code |= uint32(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 Data", 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.Data = append(x.Data[:0], dAtA[iNdEx:postIndex]...)
				if x.Data == nil {
					x.Data = []byte{}
				}
				iNdEx = postIndex
			case 3:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Log", 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.Log = 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 Info", 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.Info = 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 GasWanted", wireType)
				}
				x.GasWanted = 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.GasWanted |= int64(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 GasUsed", wireType)
				}
				x.GasUsed = 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.GasUsed |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 7:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Events", 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.Events = append(x.Events, &Event{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Events[len(x.Events)-1]); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 8:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Codespace", 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.Codespace = 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_ResponseCommit               protoreflect.MessageDescriptor
	fd_ResponseCommit_retain_height protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseCommit = File_tendermint_abci_types_proto.Messages().ByName("ResponseCommit")
	fd_ResponseCommit_retain_height = md_ResponseCommit.Fields().ByName("retain_height")
}

var _ protoreflect.Message = (*fastReflection_ResponseCommit)(nil)

type fastReflection_ResponseCommit ResponseCommit

func (x *ResponseCommit) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseCommit)(x)
}

func (x *ResponseCommit) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[25]
	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_ResponseCommit_messageType fastReflection_ResponseCommit_messageType
var _ protoreflect.MessageType = fastReflection_ResponseCommit_messageType{}

type fastReflection_ResponseCommit_messageType struct{}

func (x fastReflection_ResponseCommit_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseCommit)(nil)
}
func (x fastReflection_ResponseCommit_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseCommit)
}
func (x fastReflection_ResponseCommit_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseCommit
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseCommit) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseCommit
}

// 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_ResponseCommit) Type() protoreflect.MessageType {
	return _fastReflection_ResponseCommit_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseCommit) New() protoreflect.Message {
	return new(fastReflection_ResponseCommit)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseCommit) Interface() protoreflect.ProtoMessage {
	return (*ResponseCommit)(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_ResponseCommit) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.RetainHeight != int64(0) {
		value := protoreflect.ValueOfInt64(x.RetainHeight)
		if !f(fd_ResponseCommit_retain_height, 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_ResponseCommit) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCommit.retain_height":
		return x.RetainHeight != int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCommit 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_ResponseCommit) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCommit.retain_height":
		x.RetainHeight = int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCommit 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_ResponseCommit) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseCommit.retain_height":
		value := x.RetainHeight
		return protoreflect.ValueOfInt64(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCommit 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_ResponseCommit) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCommit.retain_height":
		x.RetainHeight = value.Int()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCommit 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_ResponseCommit) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCommit.retain_height":
		panic(fmt.Errorf("field retain_height of message tendermint.abci.ResponseCommit is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCommit 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_ResponseCommit) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseCommit.retain_height":
		return protoreflect.ValueOfInt64(int64(0))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseCommit"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseCommit 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_ResponseCommit) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseCommit", 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_ResponseCommit) 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_ResponseCommit) 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_ResponseCommit) 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_ResponseCommit) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseCommit)
		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.RetainHeight != 0 {
			n += 1 + runtime.Sov(uint64(x.RetainHeight))
		}
		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().(*ResponseCommit)
		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.RetainHeight != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.RetainHeight))
			i--
			dAtA[i] = 0x18
		}
		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().(*ResponseCommit)
		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: ResponseCommit: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseCommit: illegal tag %d (wire type %d)", fieldNum, wire)
			}
			switch fieldNum {
			case 3:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field RetainHeight", wireType)
				}
				x.RetainHeight = 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.RetainHeight |= 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 = (*_ResponseListSnapshots_1_list)(nil)

type _ResponseListSnapshots_1_list struct {
	list *[]*Snapshot
}

func (x *_ResponseListSnapshots_1_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ResponseListSnapshots_1_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_ResponseListSnapshots_1_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Snapshot)
	(*x.list)[i] = concreteValue
}

func (x *_ResponseListSnapshots_1_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Snapshot)
	*x.list = append(*x.list, concreteValue)
}

func (x *_ResponseListSnapshots_1_list) AppendMutable() protoreflect.Value {
	v := new(Snapshot)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseListSnapshots_1_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_ResponseListSnapshots_1_list) NewElement() protoreflect.Value {
	v := new(Snapshot)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseListSnapshots_1_list) IsValid() bool {
	return x.list != nil
}

var (
	md_ResponseListSnapshots           protoreflect.MessageDescriptor
	fd_ResponseListSnapshots_snapshots protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseListSnapshots = File_tendermint_abci_types_proto.Messages().ByName("ResponseListSnapshots")
	fd_ResponseListSnapshots_snapshots = md_ResponseListSnapshots.Fields().ByName("snapshots")
}

var _ protoreflect.Message = (*fastReflection_ResponseListSnapshots)(nil)

type fastReflection_ResponseListSnapshots ResponseListSnapshots

func (x *ResponseListSnapshots) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseListSnapshots)(x)
}

func (x *ResponseListSnapshots) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[26]
	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_ResponseListSnapshots_messageType fastReflection_ResponseListSnapshots_messageType
var _ protoreflect.MessageType = fastReflection_ResponseListSnapshots_messageType{}

type fastReflection_ResponseListSnapshots_messageType struct{}

func (x fastReflection_ResponseListSnapshots_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseListSnapshots)(nil)
}
func (x fastReflection_ResponseListSnapshots_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseListSnapshots)
}
func (x fastReflection_ResponseListSnapshots_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseListSnapshots
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseListSnapshots) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseListSnapshots
}

// 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_ResponseListSnapshots) Type() protoreflect.MessageType {
	return _fastReflection_ResponseListSnapshots_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseListSnapshots) New() protoreflect.Message {
	return new(fastReflection_ResponseListSnapshots)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseListSnapshots) Interface() protoreflect.ProtoMessage {
	return (*ResponseListSnapshots)(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_ResponseListSnapshots) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Snapshots) != 0 {
		value := protoreflect.ValueOfList(&_ResponseListSnapshots_1_list{list: &x.Snapshots})
		if !f(fd_ResponseListSnapshots_snapshots, 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_ResponseListSnapshots) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseListSnapshots.snapshots":
		return len(x.Snapshots) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseListSnapshots 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_ResponseListSnapshots) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseListSnapshots.snapshots":
		x.Snapshots = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseListSnapshots 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_ResponseListSnapshots) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseListSnapshots.snapshots":
		if len(x.Snapshots) == 0 {
			return protoreflect.ValueOfList(&_ResponseListSnapshots_1_list{})
		}
		listValue := &_ResponseListSnapshots_1_list{list: &x.Snapshots}
		return protoreflect.ValueOfList(listValue)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseListSnapshots 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_ResponseListSnapshots) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseListSnapshots.snapshots":
		lv := value.List()
		clv := lv.(*_ResponseListSnapshots_1_list)
		x.Snapshots = *clv.list
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseListSnapshots 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_ResponseListSnapshots) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseListSnapshots.snapshots":
		if x.Snapshots == nil {
			x.Snapshots = []*Snapshot{}
		}
		value := &_ResponseListSnapshots_1_list{list: &x.Snapshots}
		return protoreflect.ValueOfList(value)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseListSnapshots 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_ResponseListSnapshots) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseListSnapshots.snapshots":
		list := []*Snapshot{}
		return protoreflect.ValueOfList(&_ResponseListSnapshots_1_list{list: &list})
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseListSnapshots"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseListSnapshots 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_ResponseListSnapshots) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseListSnapshots", 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_ResponseListSnapshots) 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_ResponseListSnapshots) 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_ResponseListSnapshots) 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_ResponseListSnapshots) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseListSnapshots)
		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.Snapshots) > 0 {
			for _, e := range x.Snapshots {
				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().(*ResponseListSnapshots)
		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.Snapshots) > 0 {
			for iNdEx := len(x.Snapshots) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Snapshots[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().(*ResponseListSnapshots)
		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: ResponseListSnapshots: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseListSnapshots: 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 Snapshots", 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.Snapshots = append(x.Snapshots, &Snapshot{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Snapshots[len(x.Snapshots)-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_ResponseOfferSnapshot        protoreflect.MessageDescriptor
	fd_ResponseOfferSnapshot_result protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseOfferSnapshot = File_tendermint_abci_types_proto.Messages().ByName("ResponseOfferSnapshot")
	fd_ResponseOfferSnapshot_result = md_ResponseOfferSnapshot.Fields().ByName("result")
}

var _ protoreflect.Message = (*fastReflection_ResponseOfferSnapshot)(nil)

type fastReflection_ResponseOfferSnapshot ResponseOfferSnapshot

func (x *ResponseOfferSnapshot) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseOfferSnapshot)(x)
}

func (x *ResponseOfferSnapshot) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[27]
	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_ResponseOfferSnapshot_messageType fastReflection_ResponseOfferSnapshot_messageType
var _ protoreflect.MessageType = fastReflection_ResponseOfferSnapshot_messageType{}

type fastReflection_ResponseOfferSnapshot_messageType struct{}

func (x fastReflection_ResponseOfferSnapshot_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseOfferSnapshot)(nil)
}
func (x fastReflection_ResponseOfferSnapshot_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseOfferSnapshot)
}
func (x fastReflection_ResponseOfferSnapshot_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseOfferSnapshot
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseOfferSnapshot) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseOfferSnapshot
}

// 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_ResponseOfferSnapshot) Type() protoreflect.MessageType {
	return _fastReflection_ResponseOfferSnapshot_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseOfferSnapshot) New() protoreflect.Message {
	return new(fastReflection_ResponseOfferSnapshot)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseOfferSnapshot) Interface() protoreflect.ProtoMessage {
	return (*ResponseOfferSnapshot)(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_ResponseOfferSnapshot) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Result != 0 {
		value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Result))
		if !f(fd_ResponseOfferSnapshot_result, 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_ResponseOfferSnapshot) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseOfferSnapshot.result":
		return x.Result != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseOfferSnapshot 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_ResponseOfferSnapshot) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseOfferSnapshot.result":
		x.Result = 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseOfferSnapshot 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_ResponseOfferSnapshot) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseOfferSnapshot.result":
		value := x.Result
		return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value))
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseOfferSnapshot 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_ResponseOfferSnapshot) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseOfferSnapshot.result":
		x.Result = (ResponseOfferSnapshot_Result)(value.Enum())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseOfferSnapshot 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_ResponseOfferSnapshot) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseOfferSnapshot.result":
		panic(fmt.Errorf("field result of message tendermint.abci.ResponseOfferSnapshot is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseOfferSnapshot 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_ResponseOfferSnapshot) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseOfferSnapshot.result":
		return protoreflect.ValueOfEnum(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseOfferSnapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseOfferSnapshot 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_ResponseOfferSnapshot) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseOfferSnapshot", 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_ResponseOfferSnapshot) 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_ResponseOfferSnapshot) 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_ResponseOfferSnapshot) 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_ResponseOfferSnapshot) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseOfferSnapshot)
		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.Result != 0 {
			n += 1 + runtime.Sov(uint64(x.Result))
		}
		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().(*ResponseOfferSnapshot)
		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.Result != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Result))
			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().(*ResponseOfferSnapshot)
		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: ResponseOfferSnapshot: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseOfferSnapshot: 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 Result", wireType)
				}
				x.Result = 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.Result |= ResponseOfferSnapshot_Result(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_ResponseLoadSnapshotChunk       protoreflect.MessageDescriptor
	fd_ResponseLoadSnapshotChunk_chunk protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseLoadSnapshotChunk = File_tendermint_abci_types_proto.Messages().ByName("ResponseLoadSnapshotChunk")
	fd_ResponseLoadSnapshotChunk_chunk = md_ResponseLoadSnapshotChunk.Fields().ByName("chunk")
}

var _ protoreflect.Message = (*fastReflection_ResponseLoadSnapshotChunk)(nil)

type fastReflection_ResponseLoadSnapshotChunk ResponseLoadSnapshotChunk

func (x *ResponseLoadSnapshotChunk) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseLoadSnapshotChunk)(x)
}

func (x *ResponseLoadSnapshotChunk) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[28]
	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_ResponseLoadSnapshotChunk_messageType fastReflection_ResponseLoadSnapshotChunk_messageType
var _ protoreflect.MessageType = fastReflection_ResponseLoadSnapshotChunk_messageType{}

type fastReflection_ResponseLoadSnapshotChunk_messageType struct{}

func (x fastReflection_ResponseLoadSnapshotChunk_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseLoadSnapshotChunk)(nil)
}
func (x fastReflection_ResponseLoadSnapshotChunk_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseLoadSnapshotChunk)
}
func (x fastReflection_ResponseLoadSnapshotChunk_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseLoadSnapshotChunk
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseLoadSnapshotChunk) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseLoadSnapshotChunk
}

// 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_ResponseLoadSnapshotChunk) Type() protoreflect.MessageType {
	return _fastReflection_ResponseLoadSnapshotChunk_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseLoadSnapshotChunk) New() protoreflect.Message {
	return new(fastReflection_ResponseLoadSnapshotChunk)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseLoadSnapshotChunk) Interface() protoreflect.ProtoMessage {
	return (*ResponseLoadSnapshotChunk)(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_ResponseLoadSnapshotChunk) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Chunk) != 0 {
		value := protoreflect.ValueOfBytes(x.Chunk)
		if !f(fd_ResponseLoadSnapshotChunk_chunk, 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_ResponseLoadSnapshotChunk) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseLoadSnapshotChunk.chunk":
		return len(x.Chunk) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseLoadSnapshotChunk 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_ResponseLoadSnapshotChunk) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseLoadSnapshotChunk.chunk":
		x.Chunk = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseLoadSnapshotChunk 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_ResponseLoadSnapshotChunk) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseLoadSnapshotChunk.chunk":
		value := x.Chunk
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseLoadSnapshotChunk 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_ResponseLoadSnapshotChunk) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseLoadSnapshotChunk.chunk":
		x.Chunk = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseLoadSnapshotChunk 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_ResponseLoadSnapshotChunk) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseLoadSnapshotChunk.chunk":
		panic(fmt.Errorf("field chunk of message tendermint.abci.ResponseLoadSnapshotChunk is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseLoadSnapshotChunk 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_ResponseLoadSnapshotChunk) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseLoadSnapshotChunk.chunk":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseLoadSnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseLoadSnapshotChunk 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_ResponseLoadSnapshotChunk) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseLoadSnapshotChunk", 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_ResponseLoadSnapshotChunk) 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_ResponseLoadSnapshotChunk) 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_ResponseLoadSnapshotChunk) 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_ResponseLoadSnapshotChunk) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseLoadSnapshotChunk)
		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.Chunk)
		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().(*ResponseLoadSnapshotChunk)
		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.Chunk) > 0 {
			i -= len(x.Chunk)
			copy(dAtA[i:], x.Chunk)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Chunk)))
			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().(*ResponseLoadSnapshotChunk)
		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: ResponseLoadSnapshotChunk: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseLoadSnapshotChunk: 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 Chunk", 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.Chunk = append(x.Chunk[:0], dAtA[iNdEx:postIndex]...)
				if x.Chunk == nil {
					x.Chunk = []byte{}
				}
				iNdEx = postIndex
			default:
				iNdEx = preIndex
				skippy, err := runtime.Skip(dAtA[iNdEx:])
				if err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				if (skippy < 0) || (iNdEx+skippy) < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if (iNdEx + skippy) > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if !options.DiscardUnknown {
					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
				}
				iNdEx += skippy
			}
		}

		if iNdEx > l {
			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
		}
		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
	}
	return &protoiface.Methods{
		NoUnkeyedLiterals: struct{}{},
		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
		Size:              size,
		Marshal:           marshal,
		Unmarshal:         unmarshal,
		Merge:             nil,
		CheckInitialized:  nil,
	}
}

var _ protoreflect.List = (*_ResponseApplySnapshotChunk_2_list)(nil)

type _ResponseApplySnapshotChunk_2_list struct {
	list *[]uint32
}

func (x *_ResponseApplySnapshotChunk_2_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ResponseApplySnapshotChunk_2_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfUint32((*x.list)[i])
}

func (x *_ResponseApplySnapshotChunk_2_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Uint()
	concreteValue := (uint32)(valueUnwrapped)
	(*x.list)[i] = concreteValue
}

func (x *_ResponseApplySnapshotChunk_2_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Uint()
	concreteValue := (uint32)(valueUnwrapped)
	*x.list = append(*x.list, concreteValue)
}

func (x *_ResponseApplySnapshotChunk_2_list) AppendMutable() protoreflect.Value {
	panic(fmt.Errorf("AppendMutable can not be called on message ResponseApplySnapshotChunk at list field RefetchChunks as it is not of Message kind"))
}

func (x *_ResponseApplySnapshotChunk_2_list) Truncate(n int) {
	*x.list = (*x.list)[:n]
}

func (x *_ResponseApplySnapshotChunk_2_list) NewElement() protoreflect.Value {
	v := uint32(0)
	return protoreflect.ValueOfUint32(v)
}

func (x *_ResponseApplySnapshotChunk_2_list) IsValid() bool {
	return x.list != nil
}

var _ protoreflect.List = (*_ResponseApplySnapshotChunk_3_list)(nil)

type _ResponseApplySnapshotChunk_3_list struct {
	list *[]string
}

func (x *_ResponseApplySnapshotChunk_3_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ResponseApplySnapshotChunk_3_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfString((*x.list)[i])
}

func (x *_ResponseApplySnapshotChunk_3_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.String()
	concreteValue := valueUnwrapped
	(*x.list)[i] = concreteValue
}

func (x *_ResponseApplySnapshotChunk_3_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.String()
	concreteValue := valueUnwrapped
	*x.list = append(*x.list, concreteValue)
}

func (x *_ResponseApplySnapshotChunk_3_list) AppendMutable() protoreflect.Value {
	panic(fmt.Errorf("AppendMutable can not be called on message ResponseApplySnapshotChunk at list field RejectSenders as it is not of Message kind"))
}

func (x *_ResponseApplySnapshotChunk_3_list) Truncate(n int) {
	*x.list = (*x.list)[:n]
}

func (x *_ResponseApplySnapshotChunk_3_list) NewElement() protoreflect.Value {
	v := ""
	return protoreflect.ValueOfString(v)
}

func (x *_ResponseApplySnapshotChunk_3_list) IsValid() bool {
	return x.list != nil
}

var (
	md_ResponseApplySnapshotChunk                protoreflect.MessageDescriptor
	fd_ResponseApplySnapshotChunk_result         protoreflect.FieldDescriptor
	fd_ResponseApplySnapshotChunk_refetch_chunks protoreflect.FieldDescriptor
	fd_ResponseApplySnapshotChunk_reject_senders protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseApplySnapshotChunk = File_tendermint_abci_types_proto.Messages().ByName("ResponseApplySnapshotChunk")
	fd_ResponseApplySnapshotChunk_result = md_ResponseApplySnapshotChunk.Fields().ByName("result")
	fd_ResponseApplySnapshotChunk_refetch_chunks = md_ResponseApplySnapshotChunk.Fields().ByName("refetch_chunks")
	fd_ResponseApplySnapshotChunk_reject_senders = md_ResponseApplySnapshotChunk.Fields().ByName("reject_senders")
}

var _ protoreflect.Message = (*fastReflection_ResponseApplySnapshotChunk)(nil)

type fastReflection_ResponseApplySnapshotChunk ResponseApplySnapshotChunk

func (x *ResponseApplySnapshotChunk) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseApplySnapshotChunk)(x)
}

func (x *ResponseApplySnapshotChunk) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[29]
	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_ResponseApplySnapshotChunk_messageType fastReflection_ResponseApplySnapshotChunk_messageType
var _ protoreflect.MessageType = fastReflection_ResponseApplySnapshotChunk_messageType{}

type fastReflection_ResponseApplySnapshotChunk_messageType struct{}

func (x fastReflection_ResponseApplySnapshotChunk_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseApplySnapshotChunk)(nil)
}
func (x fastReflection_ResponseApplySnapshotChunk_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseApplySnapshotChunk)
}
func (x fastReflection_ResponseApplySnapshotChunk_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseApplySnapshotChunk
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseApplySnapshotChunk) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseApplySnapshotChunk
}

// 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_ResponseApplySnapshotChunk) Type() protoreflect.MessageType {
	return _fastReflection_ResponseApplySnapshotChunk_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseApplySnapshotChunk) New() protoreflect.Message {
	return new(fastReflection_ResponseApplySnapshotChunk)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseApplySnapshotChunk) Interface() protoreflect.ProtoMessage {
	return (*ResponseApplySnapshotChunk)(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_ResponseApplySnapshotChunk) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Result != 0 {
		value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Result))
		if !f(fd_ResponseApplySnapshotChunk_result, value) {
			return
		}
	}
	if len(x.RefetchChunks) != 0 {
		value := protoreflect.ValueOfList(&_ResponseApplySnapshotChunk_2_list{list: &x.RefetchChunks})
		if !f(fd_ResponseApplySnapshotChunk_refetch_chunks, value) {
			return
		}
	}
	if len(x.RejectSenders) != 0 {
		value := protoreflect.ValueOfList(&_ResponseApplySnapshotChunk_3_list{list: &x.RejectSenders})
		if !f(fd_ResponseApplySnapshotChunk_reject_senders, 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_ResponseApplySnapshotChunk) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseApplySnapshotChunk.result":
		return x.Result != 0
	case "tendermint.abci.ResponseApplySnapshotChunk.refetch_chunks":
		return len(x.RefetchChunks) != 0
	case "tendermint.abci.ResponseApplySnapshotChunk.reject_senders":
		return len(x.RejectSenders) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseApplySnapshotChunk 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_ResponseApplySnapshotChunk) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseApplySnapshotChunk.result":
		x.Result = 0
	case "tendermint.abci.ResponseApplySnapshotChunk.refetch_chunks":
		x.RefetchChunks = nil
	case "tendermint.abci.ResponseApplySnapshotChunk.reject_senders":
		x.RejectSenders = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseApplySnapshotChunk 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_ResponseApplySnapshotChunk) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseApplySnapshotChunk.result":
		value := x.Result
		return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value))
	case "tendermint.abci.ResponseApplySnapshotChunk.refetch_chunks":
		if len(x.RefetchChunks) == 0 {
			return protoreflect.ValueOfList(&_ResponseApplySnapshotChunk_2_list{})
		}
		listValue := &_ResponseApplySnapshotChunk_2_list{list: &x.RefetchChunks}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.ResponseApplySnapshotChunk.reject_senders":
		if len(x.RejectSenders) == 0 {
			return protoreflect.ValueOfList(&_ResponseApplySnapshotChunk_3_list{})
		}
		listValue := &_ResponseApplySnapshotChunk_3_list{list: &x.RejectSenders}
		return protoreflect.ValueOfList(listValue)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseApplySnapshotChunk 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_ResponseApplySnapshotChunk) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseApplySnapshotChunk.result":
		x.Result = (ResponseApplySnapshotChunk_Result)(value.Enum())
	case "tendermint.abci.ResponseApplySnapshotChunk.refetch_chunks":
		lv := value.List()
		clv := lv.(*_ResponseApplySnapshotChunk_2_list)
		x.RefetchChunks = *clv.list
	case "tendermint.abci.ResponseApplySnapshotChunk.reject_senders":
		lv := value.List()
		clv := lv.(*_ResponseApplySnapshotChunk_3_list)
		x.RejectSenders = *clv.list
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseApplySnapshotChunk 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_ResponseApplySnapshotChunk) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseApplySnapshotChunk.refetch_chunks":
		if x.RefetchChunks == nil {
			x.RefetchChunks = []uint32{}
		}
		value := &_ResponseApplySnapshotChunk_2_list{list: &x.RefetchChunks}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.ResponseApplySnapshotChunk.reject_senders":
		if x.RejectSenders == nil {
			x.RejectSenders = []string{}
		}
		value := &_ResponseApplySnapshotChunk_3_list{list: &x.RejectSenders}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.ResponseApplySnapshotChunk.result":
		panic(fmt.Errorf("field result of message tendermint.abci.ResponseApplySnapshotChunk is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseApplySnapshotChunk 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_ResponseApplySnapshotChunk) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseApplySnapshotChunk.result":
		return protoreflect.ValueOfEnum(0)
	case "tendermint.abci.ResponseApplySnapshotChunk.refetch_chunks":
		list := []uint32{}
		return protoreflect.ValueOfList(&_ResponseApplySnapshotChunk_2_list{list: &list})
	case "tendermint.abci.ResponseApplySnapshotChunk.reject_senders":
		list := []string{}
		return protoreflect.ValueOfList(&_ResponseApplySnapshotChunk_3_list{list: &list})
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseApplySnapshotChunk"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseApplySnapshotChunk 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_ResponseApplySnapshotChunk) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseApplySnapshotChunk", 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_ResponseApplySnapshotChunk) 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_ResponseApplySnapshotChunk) 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_ResponseApplySnapshotChunk) 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_ResponseApplySnapshotChunk) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseApplySnapshotChunk)
		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.Result != 0 {
			n += 1 + runtime.Sov(uint64(x.Result))
		}
		if len(x.RefetchChunks) > 0 {
			l = 0
			for _, e := range x.RefetchChunks {
				l += runtime.Sov(uint64(e))
			}
			n += 1 + runtime.Sov(uint64(l)) + l
		}
		if len(x.RejectSenders) > 0 {
			for _, s := range x.RejectSenders {
				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().(*ResponseApplySnapshotChunk)
		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.RejectSenders) > 0 {
			for iNdEx := len(x.RejectSenders) - 1; iNdEx >= 0; iNdEx-- {
				i -= len(x.RejectSenders[iNdEx])
				copy(dAtA[i:], x.RejectSenders[iNdEx])
				i = runtime.EncodeVarint(dAtA, i, uint64(len(x.RejectSenders[iNdEx])))
				i--
				dAtA[i] = 0x1a
			}
		}
		if len(x.RefetchChunks) > 0 {
			var pksize2 int
			for _, num := range x.RefetchChunks {
				pksize2 += runtime.Sov(uint64(num))
			}
			i -= pksize2
			j1 := i
			for _, num := range x.RefetchChunks {
				for num >= 1<<7 {
					dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
					num >>= 7
					j1++
				}
				dAtA[j1] = uint8(num)
				j1++
			}
			i = runtime.EncodeVarint(dAtA, i, uint64(pksize2))
			i--
			dAtA[i] = 0x12
		}
		if x.Result != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Result))
			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().(*ResponseApplySnapshotChunk)
		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: ResponseApplySnapshotChunk: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseApplySnapshotChunk: 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 Result", wireType)
				}
				x.Result = 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.Result |= ResponseApplySnapshotChunk_Result(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 2:
				if wireType == 0 {
					var v uint32
					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 |= uint32(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					x.RefetchChunks = append(x.RefetchChunks, 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.RefetchChunks) == 0 {
						x.RefetchChunks = make([]uint32, 0, elementCount)
					}
					for iNdEx < postIndex {
						var v uint32
						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 |= uint32(b&0x7F) << shift
							if b < 0x80 {
								break
							}
						}
						x.RefetchChunks = append(x.RefetchChunks, v)
					}
				} else {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field RefetchChunks", wireType)
				}
			case 3:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field RejectSenders", 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.RejectSenders = append(x.RejectSenders, 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 = (*_ResponsePrepareProposal_1_list)(nil)

type _ResponsePrepareProposal_1_list struct {
	list *[][]byte
}

func (x *_ResponsePrepareProposal_1_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ResponsePrepareProposal_1_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfBytes((*x.list)[i])
}

func (x *_ResponsePrepareProposal_1_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	(*x.list)[i] = concreteValue
}

func (x *_ResponsePrepareProposal_1_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Bytes()
	concreteValue := valueUnwrapped
	*x.list = append(*x.list, concreteValue)
}

func (x *_ResponsePrepareProposal_1_list) AppendMutable() protoreflect.Value {
	panic(fmt.Errorf("AppendMutable can not be called on message ResponsePrepareProposal at list field Txs as it is not of Message kind"))
}

func (x *_ResponsePrepareProposal_1_list) Truncate(n int) {
	*x.list = (*x.list)[:n]
}

func (x *_ResponsePrepareProposal_1_list) NewElement() protoreflect.Value {
	var v []byte
	return protoreflect.ValueOfBytes(v)
}

func (x *_ResponsePrepareProposal_1_list) IsValid() bool {
	return x.list != nil
}

var (
	md_ResponsePrepareProposal     protoreflect.MessageDescriptor
	fd_ResponsePrepareProposal_txs protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponsePrepareProposal = File_tendermint_abci_types_proto.Messages().ByName("ResponsePrepareProposal")
	fd_ResponsePrepareProposal_txs = md_ResponsePrepareProposal.Fields().ByName("txs")
}

var _ protoreflect.Message = (*fastReflection_ResponsePrepareProposal)(nil)

type fastReflection_ResponsePrepareProposal ResponsePrepareProposal

func (x *ResponsePrepareProposal) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponsePrepareProposal)(x)
}

func (x *ResponsePrepareProposal) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[30]
	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_ResponsePrepareProposal_messageType fastReflection_ResponsePrepareProposal_messageType
var _ protoreflect.MessageType = fastReflection_ResponsePrepareProposal_messageType{}

type fastReflection_ResponsePrepareProposal_messageType struct{}

func (x fastReflection_ResponsePrepareProposal_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponsePrepareProposal)(nil)
}
func (x fastReflection_ResponsePrepareProposal_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponsePrepareProposal)
}
func (x fastReflection_ResponsePrepareProposal_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponsePrepareProposal
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponsePrepareProposal) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponsePrepareProposal
}

// 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_ResponsePrepareProposal) Type() protoreflect.MessageType {
	return _fastReflection_ResponsePrepareProposal_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponsePrepareProposal) New() protoreflect.Message {
	return new(fastReflection_ResponsePrepareProposal)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponsePrepareProposal) Interface() protoreflect.ProtoMessage {
	return (*ResponsePrepareProposal)(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_ResponsePrepareProposal) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Txs) != 0 {
		value := protoreflect.ValueOfList(&_ResponsePrepareProposal_1_list{list: &x.Txs})
		if !f(fd_ResponsePrepareProposal_txs, 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_ResponsePrepareProposal) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponsePrepareProposal.txs":
		return len(x.Txs) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponsePrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponsePrepareProposal 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_ResponsePrepareProposal) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponsePrepareProposal.txs":
		x.Txs = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponsePrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponsePrepareProposal 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_ResponsePrepareProposal) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponsePrepareProposal.txs":
		if len(x.Txs) == 0 {
			return protoreflect.ValueOfList(&_ResponsePrepareProposal_1_list{})
		}
		listValue := &_ResponsePrepareProposal_1_list{list: &x.Txs}
		return protoreflect.ValueOfList(listValue)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponsePrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponsePrepareProposal 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_ResponsePrepareProposal) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponsePrepareProposal.txs":
		lv := value.List()
		clv := lv.(*_ResponsePrepareProposal_1_list)
		x.Txs = *clv.list
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponsePrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponsePrepareProposal 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_ResponsePrepareProposal) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponsePrepareProposal.txs":
		if x.Txs == nil {
			x.Txs = [][]byte{}
		}
		value := &_ResponsePrepareProposal_1_list{list: &x.Txs}
		return protoreflect.ValueOfList(value)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponsePrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponsePrepareProposal 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_ResponsePrepareProposal) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponsePrepareProposal.txs":
		list := [][]byte{}
		return protoreflect.ValueOfList(&_ResponsePrepareProposal_1_list{list: &list})
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponsePrepareProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponsePrepareProposal 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_ResponsePrepareProposal) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponsePrepareProposal", 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_ResponsePrepareProposal) 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_ResponsePrepareProposal) 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_ResponsePrepareProposal) 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_ResponsePrepareProposal) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponsePrepareProposal)
		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.Txs) > 0 {
			for _, b := range x.Txs {
				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().(*ResponsePrepareProposal)
		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.Txs) > 0 {
			for iNdEx := len(x.Txs) - 1; iNdEx >= 0; iNdEx-- {
				i -= len(x.Txs[iNdEx])
				copy(dAtA[i:], x.Txs[iNdEx])
				i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Txs[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().(*ResponsePrepareProposal)
		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: ResponsePrepareProposal: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponsePrepareProposal: 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 Txs", 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.Txs = append(x.Txs, make([]byte, postIndex-iNdEx))
				copy(x.Txs[len(x.Txs)-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,
	}
}

var (
	md_ResponseProcessProposal        protoreflect.MessageDescriptor
	fd_ResponseProcessProposal_status protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseProcessProposal = File_tendermint_abci_types_proto.Messages().ByName("ResponseProcessProposal")
	fd_ResponseProcessProposal_status = md_ResponseProcessProposal.Fields().ByName("status")
}

var _ protoreflect.Message = (*fastReflection_ResponseProcessProposal)(nil)

type fastReflection_ResponseProcessProposal ResponseProcessProposal

func (x *ResponseProcessProposal) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseProcessProposal)(x)
}

func (x *ResponseProcessProposal) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[31]
	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_ResponseProcessProposal_messageType fastReflection_ResponseProcessProposal_messageType
var _ protoreflect.MessageType = fastReflection_ResponseProcessProposal_messageType{}

type fastReflection_ResponseProcessProposal_messageType struct{}

func (x fastReflection_ResponseProcessProposal_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseProcessProposal)(nil)
}
func (x fastReflection_ResponseProcessProposal_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseProcessProposal)
}
func (x fastReflection_ResponseProcessProposal_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseProcessProposal
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseProcessProposal) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseProcessProposal
}

// 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_ResponseProcessProposal) Type() protoreflect.MessageType {
	return _fastReflection_ResponseProcessProposal_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseProcessProposal) New() protoreflect.Message {
	return new(fastReflection_ResponseProcessProposal)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseProcessProposal) Interface() protoreflect.ProtoMessage {
	return (*ResponseProcessProposal)(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_ResponseProcessProposal) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Status != 0 {
		value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Status))
		if !f(fd_ResponseProcessProposal_status, 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_ResponseProcessProposal) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseProcessProposal.status":
		return x.Status != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseProcessProposal 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_ResponseProcessProposal) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseProcessProposal.status":
		x.Status = 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseProcessProposal 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_ResponseProcessProposal) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseProcessProposal.status":
		value := x.Status
		return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value))
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseProcessProposal 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_ResponseProcessProposal) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseProcessProposal.status":
		x.Status = (ResponseProcessProposal_ProposalStatus)(value.Enum())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseProcessProposal 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_ResponseProcessProposal) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseProcessProposal.status":
		panic(fmt.Errorf("field status of message tendermint.abci.ResponseProcessProposal is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseProcessProposal 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_ResponseProcessProposal) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseProcessProposal.status":
		return protoreflect.ValueOfEnum(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseProcessProposal"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseProcessProposal 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_ResponseProcessProposal) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseProcessProposal", 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_ResponseProcessProposal) 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_ResponseProcessProposal) 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_ResponseProcessProposal) 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_ResponseProcessProposal) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseProcessProposal)
		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.Status != 0 {
			n += 1 + runtime.Sov(uint64(x.Status))
		}
		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().(*ResponseProcessProposal)
		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.Status != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Status))
			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().(*ResponseProcessProposal)
		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: ResponseProcessProposal: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseProcessProposal: 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 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 |= ResponseProcessProposal_ProposalStatus(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_ResponseExtendVote                protoreflect.MessageDescriptor
	fd_ResponseExtendVote_vote_extension protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseExtendVote = File_tendermint_abci_types_proto.Messages().ByName("ResponseExtendVote")
	fd_ResponseExtendVote_vote_extension = md_ResponseExtendVote.Fields().ByName("vote_extension")
}

var _ protoreflect.Message = (*fastReflection_ResponseExtendVote)(nil)

type fastReflection_ResponseExtendVote ResponseExtendVote

func (x *ResponseExtendVote) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseExtendVote)(x)
}

func (x *ResponseExtendVote) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[32]
	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_ResponseExtendVote_messageType fastReflection_ResponseExtendVote_messageType
var _ protoreflect.MessageType = fastReflection_ResponseExtendVote_messageType{}

type fastReflection_ResponseExtendVote_messageType struct{}

func (x fastReflection_ResponseExtendVote_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseExtendVote)(nil)
}
func (x fastReflection_ResponseExtendVote_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseExtendVote)
}
func (x fastReflection_ResponseExtendVote_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseExtendVote
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseExtendVote) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseExtendVote
}

// 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_ResponseExtendVote) Type() protoreflect.MessageType {
	return _fastReflection_ResponseExtendVote_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseExtendVote) New() protoreflect.Message {
	return new(fastReflection_ResponseExtendVote)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseExtendVote) Interface() protoreflect.ProtoMessage {
	return (*ResponseExtendVote)(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_ResponseExtendVote) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.VoteExtension) != 0 {
		value := protoreflect.ValueOfBytes(x.VoteExtension)
		if !f(fd_ResponseExtendVote_vote_extension, 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_ResponseExtendVote) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseExtendVote.vote_extension":
		return len(x.VoteExtension) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseExtendVote 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_ResponseExtendVote) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseExtendVote.vote_extension":
		x.VoteExtension = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseExtendVote 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_ResponseExtendVote) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseExtendVote.vote_extension":
		value := x.VoteExtension
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseExtendVote 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_ResponseExtendVote) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseExtendVote.vote_extension":
		x.VoteExtension = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseExtendVote 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_ResponseExtendVote) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseExtendVote.vote_extension":
		panic(fmt.Errorf("field vote_extension of message tendermint.abci.ResponseExtendVote is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseExtendVote 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_ResponseExtendVote) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseExtendVote.vote_extension":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseExtendVote"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseExtendVote 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_ResponseExtendVote) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseExtendVote", 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_ResponseExtendVote) 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_ResponseExtendVote) 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_ResponseExtendVote) 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_ResponseExtendVote) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseExtendVote)
		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.VoteExtension)
		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().(*ResponseExtendVote)
		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.VoteExtension) > 0 {
			i -= len(x.VoteExtension)
			copy(dAtA[i:], x.VoteExtension)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.VoteExtension)))
			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().(*ResponseExtendVote)
		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: ResponseExtendVote: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseExtendVote: 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 VoteExtension", 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.VoteExtension = append(x.VoteExtension[:0], dAtA[iNdEx:postIndex]...)
				if x.VoteExtension == nil {
					x.VoteExtension = []byte{}
				}
				iNdEx = postIndex
			default:
				iNdEx = preIndex
				skippy, err := runtime.Skip(dAtA[iNdEx:])
				if err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				if (skippy < 0) || (iNdEx+skippy) < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if (iNdEx + skippy) > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if !options.DiscardUnknown {
					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
				}
				iNdEx += skippy
			}
		}

		if iNdEx > l {
			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
		}
		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
	}
	return &protoiface.Methods{
		NoUnkeyedLiterals: struct{}{},
		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
		Size:              size,
		Marshal:           marshal,
		Unmarshal:         unmarshal,
		Merge:             nil,
		CheckInitialized:  nil,
	}
}

var (
	md_ResponseVerifyVoteExtension        protoreflect.MessageDescriptor
	fd_ResponseVerifyVoteExtension_status protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseVerifyVoteExtension = File_tendermint_abci_types_proto.Messages().ByName("ResponseVerifyVoteExtension")
	fd_ResponseVerifyVoteExtension_status = md_ResponseVerifyVoteExtension.Fields().ByName("status")
}

var _ protoreflect.Message = (*fastReflection_ResponseVerifyVoteExtension)(nil)

type fastReflection_ResponseVerifyVoteExtension ResponseVerifyVoteExtension

func (x *ResponseVerifyVoteExtension) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseVerifyVoteExtension)(x)
}

func (x *ResponseVerifyVoteExtension) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[33]
	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_ResponseVerifyVoteExtension_messageType fastReflection_ResponseVerifyVoteExtension_messageType
var _ protoreflect.MessageType = fastReflection_ResponseVerifyVoteExtension_messageType{}

type fastReflection_ResponseVerifyVoteExtension_messageType struct{}

func (x fastReflection_ResponseVerifyVoteExtension_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseVerifyVoteExtension)(nil)
}
func (x fastReflection_ResponseVerifyVoteExtension_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseVerifyVoteExtension)
}
func (x fastReflection_ResponseVerifyVoteExtension_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseVerifyVoteExtension
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseVerifyVoteExtension) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseVerifyVoteExtension
}

// 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_ResponseVerifyVoteExtension) Type() protoreflect.MessageType {
	return _fastReflection_ResponseVerifyVoteExtension_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseVerifyVoteExtension) New() protoreflect.Message {
	return new(fastReflection_ResponseVerifyVoteExtension)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseVerifyVoteExtension) Interface() protoreflect.ProtoMessage {
	return (*ResponseVerifyVoteExtension)(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_ResponseVerifyVoteExtension) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Status != 0 {
		value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Status))
		if !f(fd_ResponseVerifyVoteExtension_status, 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_ResponseVerifyVoteExtension) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseVerifyVoteExtension.status":
		return x.Status != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseVerifyVoteExtension 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_ResponseVerifyVoteExtension) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseVerifyVoteExtension.status":
		x.Status = 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseVerifyVoteExtension 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_ResponseVerifyVoteExtension) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseVerifyVoteExtension.status":
		value := x.Status
		return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value))
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseVerifyVoteExtension 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_ResponseVerifyVoteExtension) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseVerifyVoteExtension.status":
		x.Status = (ResponseVerifyVoteExtension_VerifyStatus)(value.Enum())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseVerifyVoteExtension 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_ResponseVerifyVoteExtension) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseVerifyVoteExtension.status":
		panic(fmt.Errorf("field status of message tendermint.abci.ResponseVerifyVoteExtension is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseVerifyVoteExtension 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_ResponseVerifyVoteExtension) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseVerifyVoteExtension.status":
		return protoreflect.ValueOfEnum(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseVerifyVoteExtension"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseVerifyVoteExtension 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_ResponseVerifyVoteExtension) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseVerifyVoteExtension", 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_ResponseVerifyVoteExtension) 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_ResponseVerifyVoteExtension) 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_ResponseVerifyVoteExtension) 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_ResponseVerifyVoteExtension) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseVerifyVoteExtension)
		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.Status != 0 {
			n += 1 + runtime.Sov(uint64(x.Status))
		}
		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().(*ResponseVerifyVoteExtension)
		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.Status != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Status))
			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().(*ResponseVerifyVoteExtension)
		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: ResponseVerifyVoteExtension: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseVerifyVoteExtension: 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 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 |= ResponseVerifyVoteExtension_VerifyStatus(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 = (*_ResponseFinalizeBlock_1_list)(nil)

type _ResponseFinalizeBlock_1_list struct {
	list *[]*Event
}

func (x *_ResponseFinalizeBlock_1_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ResponseFinalizeBlock_1_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_ResponseFinalizeBlock_1_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Event)
	(*x.list)[i] = concreteValue
}

func (x *_ResponseFinalizeBlock_1_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Event)
	*x.list = append(*x.list, concreteValue)
}

func (x *_ResponseFinalizeBlock_1_list) AppendMutable() protoreflect.Value {
	v := new(Event)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseFinalizeBlock_1_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_ResponseFinalizeBlock_1_list) NewElement() protoreflect.Value {
	v := new(Event)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseFinalizeBlock_1_list) IsValid() bool {
	return x.list != nil
}

var _ protoreflect.List = (*_ResponseFinalizeBlock_2_list)(nil)

type _ResponseFinalizeBlock_2_list struct {
	list *[]*ExecTxResult
}

func (x *_ResponseFinalizeBlock_2_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ResponseFinalizeBlock_2_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_ResponseFinalizeBlock_2_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ExecTxResult)
	(*x.list)[i] = concreteValue
}

func (x *_ResponseFinalizeBlock_2_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ExecTxResult)
	*x.list = append(*x.list, concreteValue)
}

func (x *_ResponseFinalizeBlock_2_list) AppendMutable() protoreflect.Value {
	v := new(ExecTxResult)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseFinalizeBlock_2_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_ResponseFinalizeBlock_2_list) NewElement() protoreflect.Value {
	v := new(ExecTxResult)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseFinalizeBlock_2_list) IsValid() bool {
	return x.list != nil
}

var _ protoreflect.List = (*_ResponseFinalizeBlock_3_list)(nil)

type _ResponseFinalizeBlock_3_list struct {
	list *[]*ValidatorUpdate
}

func (x *_ResponseFinalizeBlock_3_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ResponseFinalizeBlock_3_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_ResponseFinalizeBlock_3_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ValidatorUpdate)
	(*x.list)[i] = concreteValue
}

func (x *_ResponseFinalizeBlock_3_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ValidatorUpdate)
	*x.list = append(*x.list, concreteValue)
}

func (x *_ResponseFinalizeBlock_3_list) AppendMutable() protoreflect.Value {
	v := new(ValidatorUpdate)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseFinalizeBlock_3_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_ResponseFinalizeBlock_3_list) NewElement() protoreflect.Value {
	v := new(ValidatorUpdate)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ResponseFinalizeBlock_3_list) IsValid() bool {
	return x.list != nil
}

var (
	md_ResponseFinalizeBlock                         protoreflect.MessageDescriptor
	fd_ResponseFinalizeBlock_events                  protoreflect.FieldDescriptor
	fd_ResponseFinalizeBlock_tx_results              protoreflect.FieldDescriptor
	fd_ResponseFinalizeBlock_validator_updates       protoreflect.FieldDescriptor
	fd_ResponseFinalizeBlock_consensus_param_updates protoreflect.FieldDescriptor
	fd_ResponseFinalizeBlock_app_hash                protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ResponseFinalizeBlock = File_tendermint_abci_types_proto.Messages().ByName("ResponseFinalizeBlock")
	fd_ResponseFinalizeBlock_events = md_ResponseFinalizeBlock.Fields().ByName("events")
	fd_ResponseFinalizeBlock_tx_results = md_ResponseFinalizeBlock.Fields().ByName("tx_results")
	fd_ResponseFinalizeBlock_validator_updates = md_ResponseFinalizeBlock.Fields().ByName("validator_updates")
	fd_ResponseFinalizeBlock_consensus_param_updates = md_ResponseFinalizeBlock.Fields().ByName("consensus_param_updates")
	fd_ResponseFinalizeBlock_app_hash = md_ResponseFinalizeBlock.Fields().ByName("app_hash")
}

var _ protoreflect.Message = (*fastReflection_ResponseFinalizeBlock)(nil)

type fastReflection_ResponseFinalizeBlock ResponseFinalizeBlock

func (x *ResponseFinalizeBlock) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ResponseFinalizeBlock)(x)
}

func (x *ResponseFinalizeBlock) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[34]
	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_ResponseFinalizeBlock_messageType fastReflection_ResponseFinalizeBlock_messageType
var _ protoreflect.MessageType = fastReflection_ResponseFinalizeBlock_messageType{}

type fastReflection_ResponseFinalizeBlock_messageType struct{}

func (x fastReflection_ResponseFinalizeBlock_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ResponseFinalizeBlock)(nil)
}
func (x fastReflection_ResponseFinalizeBlock_messageType) New() protoreflect.Message {
	return new(fastReflection_ResponseFinalizeBlock)
}
func (x fastReflection_ResponseFinalizeBlock_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseFinalizeBlock
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ResponseFinalizeBlock) Descriptor() protoreflect.MessageDescriptor {
	return md_ResponseFinalizeBlock
}

// 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_ResponseFinalizeBlock) Type() protoreflect.MessageType {
	return _fastReflection_ResponseFinalizeBlock_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ResponseFinalizeBlock) New() protoreflect.Message {
	return new(fastReflection_ResponseFinalizeBlock)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ResponseFinalizeBlock) Interface() protoreflect.ProtoMessage {
	return (*ResponseFinalizeBlock)(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_ResponseFinalizeBlock) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if len(x.Events) != 0 {
		value := protoreflect.ValueOfList(&_ResponseFinalizeBlock_1_list{list: &x.Events})
		if !f(fd_ResponseFinalizeBlock_events, value) {
			return
		}
	}
	if len(x.TxResults) != 0 {
		value := protoreflect.ValueOfList(&_ResponseFinalizeBlock_2_list{list: &x.TxResults})
		if !f(fd_ResponseFinalizeBlock_tx_results, value) {
			return
		}
	}
	if len(x.ValidatorUpdates) != 0 {
		value := protoreflect.ValueOfList(&_ResponseFinalizeBlock_3_list{list: &x.ValidatorUpdates})
		if !f(fd_ResponseFinalizeBlock_validator_updates, value) {
			return
		}
	}
	if x.ConsensusParamUpdates != nil {
		value := protoreflect.ValueOfMessage(x.ConsensusParamUpdates.ProtoReflect())
		if !f(fd_ResponseFinalizeBlock_consensus_param_updates, value) {
			return
		}
	}
	if len(x.AppHash) != 0 {
		value := protoreflect.ValueOfBytes(x.AppHash)
		if !f(fd_ResponseFinalizeBlock_app_hash, value) {
			return
		}
	}
}

// Has reports whether a field is populated.
//
// Some fields have the property of nullability where it is possible to
// distinguish between the default value of a field and whether the field
// was explicitly populated with the default value. Singular message fields,
// member fields of a oneof, and proto2 scalar fields are nullable. Such
// fields are populated only if explicitly set.
//
// In other cases (aside from the nullable cases above),
// a proto3 scalar field is populated if it contains a non-zero value, and
// a repeated field is populated if it is non-empty.
func (x *fastReflection_ResponseFinalizeBlock) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ResponseFinalizeBlock.events":
		return len(x.Events) != 0
	case "tendermint.abci.ResponseFinalizeBlock.tx_results":
		return len(x.TxResults) != 0
	case "tendermint.abci.ResponseFinalizeBlock.validator_updates":
		return len(x.ValidatorUpdates) != 0
	case "tendermint.abci.ResponseFinalizeBlock.consensus_param_updates":
		return x.ConsensusParamUpdates != nil
	case "tendermint.abci.ResponseFinalizeBlock.app_hash":
		return len(x.AppHash) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFinalizeBlock 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_ResponseFinalizeBlock) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseFinalizeBlock.events":
		x.Events = nil
	case "tendermint.abci.ResponseFinalizeBlock.tx_results":
		x.TxResults = nil
	case "tendermint.abci.ResponseFinalizeBlock.validator_updates":
		x.ValidatorUpdates = nil
	case "tendermint.abci.ResponseFinalizeBlock.consensus_param_updates":
		x.ConsensusParamUpdates = nil
	case "tendermint.abci.ResponseFinalizeBlock.app_hash":
		x.AppHash = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFinalizeBlock 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_ResponseFinalizeBlock) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ResponseFinalizeBlock.events":
		if len(x.Events) == 0 {
			return protoreflect.ValueOfList(&_ResponseFinalizeBlock_1_list{})
		}
		listValue := &_ResponseFinalizeBlock_1_list{list: &x.Events}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.ResponseFinalizeBlock.tx_results":
		if len(x.TxResults) == 0 {
			return protoreflect.ValueOfList(&_ResponseFinalizeBlock_2_list{})
		}
		listValue := &_ResponseFinalizeBlock_2_list{list: &x.TxResults}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.ResponseFinalizeBlock.validator_updates":
		if len(x.ValidatorUpdates) == 0 {
			return protoreflect.ValueOfList(&_ResponseFinalizeBlock_3_list{})
		}
		listValue := &_ResponseFinalizeBlock_3_list{list: &x.ValidatorUpdates}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.ResponseFinalizeBlock.consensus_param_updates":
		value := x.ConsensusParamUpdates
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.ResponseFinalizeBlock.app_hash":
		value := x.AppHash
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFinalizeBlock 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_ResponseFinalizeBlock) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ResponseFinalizeBlock.events":
		lv := value.List()
		clv := lv.(*_ResponseFinalizeBlock_1_list)
		x.Events = *clv.list
	case "tendermint.abci.ResponseFinalizeBlock.tx_results":
		lv := value.List()
		clv := lv.(*_ResponseFinalizeBlock_2_list)
		x.TxResults = *clv.list
	case "tendermint.abci.ResponseFinalizeBlock.validator_updates":
		lv := value.List()
		clv := lv.(*_ResponseFinalizeBlock_3_list)
		x.ValidatorUpdates = *clv.list
	case "tendermint.abci.ResponseFinalizeBlock.consensus_param_updates":
		x.ConsensusParamUpdates = value.Message().Interface().(*types.ConsensusParams)
	case "tendermint.abci.ResponseFinalizeBlock.app_hash":
		x.AppHash = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFinalizeBlock 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_ResponseFinalizeBlock) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseFinalizeBlock.events":
		if x.Events == nil {
			x.Events = []*Event{}
		}
		value := &_ResponseFinalizeBlock_1_list{list: &x.Events}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.ResponseFinalizeBlock.tx_results":
		if x.TxResults == nil {
			x.TxResults = []*ExecTxResult{}
		}
		value := &_ResponseFinalizeBlock_2_list{list: &x.TxResults}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.ResponseFinalizeBlock.validator_updates":
		if x.ValidatorUpdates == nil {
			x.ValidatorUpdates = []*ValidatorUpdate{}
		}
		value := &_ResponseFinalizeBlock_3_list{list: &x.ValidatorUpdates}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.ResponseFinalizeBlock.consensus_param_updates":
		if x.ConsensusParamUpdates == nil {
			x.ConsensusParamUpdates = new(types.ConsensusParams)
		}
		return protoreflect.ValueOfMessage(x.ConsensusParamUpdates.ProtoReflect())
	case "tendermint.abci.ResponseFinalizeBlock.app_hash":
		panic(fmt.Errorf("field app_hash of message tendermint.abci.ResponseFinalizeBlock is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFinalizeBlock 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_ResponseFinalizeBlock) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ResponseFinalizeBlock.events":
		list := []*Event{}
		return protoreflect.ValueOfList(&_ResponseFinalizeBlock_1_list{list: &list})
	case "tendermint.abci.ResponseFinalizeBlock.tx_results":
		list := []*ExecTxResult{}
		return protoreflect.ValueOfList(&_ResponseFinalizeBlock_2_list{list: &list})
	case "tendermint.abci.ResponseFinalizeBlock.validator_updates":
		list := []*ValidatorUpdate{}
		return protoreflect.ValueOfList(&_ResponseFinalizeBlock_3_list{list: &list})
	case "tendermint.abci.ResponseFinalizeBlock.consensus_param_updates":
		m := new(types.ConsensusParams)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.ResponseFinalizeBlock.app_hash":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ResponseFinalizeBlock"))
		}
		panic(fmt.Errorf("message tendermint.abci.ResponseFinalizeBlock 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_ResponseFinalizeBlock) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ResponseFinalizeBlock", 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_ResponseFinalizeBlock) 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_ResponseFinalizeBlock) 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_ResponseFinalizeBlock) 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_ResponseFinalizeBlock) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ResponseFinalizeBlock)
		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.Events) > 0 {
			for _, e := range x.Events {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		if len(x.TxResults) > 0 {
			for _, e := range x.TxResults {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		if len(x.ValidatorUpdates) > 0 {
			for _, e := range x.ValidatorUpdates {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		if x.ConsensusParamUpdates != nil {
			l = options.Size(x.ConsensusParamUpdates)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.AppHash)
		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().(*ResponseFinalizeBlock)
		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.AppHash) > 0 {
			i -= len(x.AppHash)
			copy(dAtA[i:], x.AppHash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AppHash)))
			i--
			dAtA[i] = 0x2a
		}
		if x.ConsensusParamUpdates != nil {
			encoded, err := options.Marshal(x.ConsensusParamUpdates)
			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.ValidatorUpdates) > 0 {
			for iNdEx := len(x.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.ValidatorUpdates[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.TxResults) > 0 {
			for iNdEx := len(x.TxResults) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.TxResults[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 len(x.Events) > 0 {
			for iNdEx := len(x.Events) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Events[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().(*ResponseFinalizeBlock)
		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: ResponseFinalizeBlock: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ResponseFinalizeBlock: 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 Events", 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.Events = append(x.Events, &Event{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Events[len(x.Events)-1]); 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 TxResults", 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.TxResults = append(x.TxResults, &ExecTxResult{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.TxResults[len(x.TxResults)-1]); 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 ValidatorUpdates", 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.ValidatorUpdates = append(x.ValidatorUpdates, &ValidatorUpdate{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ValidatorUpdates[len(x.ValidatorUpdates)-1]); 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 ConsensusParamUpdates", 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.ConsensusParamUpdates == nil {
					x.ConsensusParamUpdates = &types.ConsensusParams{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ConsensusParamUpdates); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 5:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType)
				}
				var byteLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
					}
					if iNdEx >= l {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					byteLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if byteLen < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				postIndex := iNdEx + byteLen
				if postIndex < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if postIndex > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				x.AppHash = append(x.AppHash[:0], dAtA[iNdEx:postIndex]...)
				if x.AppHash == nil {
					x.AppHash = []byte{}
				}
				iNdEx = postIndex
			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 = (*_CommitInfo_2_list)(nil)

type _CommitInfo_2_list struct {
	list *[]*VoteInfo
}

func (x *_CommitInfo_2_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_CommitInfo_2_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_CommitInfo_2_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*VoteInfo)
	(*x.list)[i] = concreteValue
}

func (x *_CommitInfo_2_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*VoteInfo)
	*x.list = append(*x.list, concreteValue)
}

func (x *_CommitInfo_2_list) AppendMutable() protoreflect.Value {
	v := new(VoteInfo)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_CommitInfo_2_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_CommitInfo_2_list) NewElement() protoreflect.Value {
	v := new(VoteInfo)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_CommitInfo_2_list) IsValid() bool {
	return x.list != nil
}

var (
	md_CommitInfo       protoreflect.MessageDescriptor
	fd_CommitInfo_round protoreflect.FieldDescriptor
	fd_CommitInfo_votes protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_CommitInfo = File_tendermint_abci_types_proto.Messages().ByName("CommitInfo")
	fd_CommitInfo_round = md_CommitInfo.Fields().ByName("round")
	fd_CommitInfo_votes = md_CommitInfo.Fields().ByName("votes")
}

var _ protoreflect.Message = (*fastReflection_CommitInfo)(nil)

type fastReflection_CommitInfo CommitInfo

func (x *CommitInfo) ProtoReflect() protoreflect.Message {
	return (*fastReflection_CommitInfo)(x)
}

func (x *CommitInfo) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[35]
	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_CommitInfo_messageType fastReflection_CommitInfo_messageType
var _ protoreflect.MessageType = fastReflection_CommitInfo_messageType{}

type fastReflection_CommitInfo_messageType struct{}

func (x fastReflection_CommitInfo_messageType) Zero() protoreflect.Message {
	return (*fastReflection_CommitInfo)(nil)
}
func (x fastReflection_CommitInfo_messageType) New() protoreflect.Message {
	return new(fastReflection_CommitInfo)
}
func (x fastReflection_CommitInfo_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_CommitInfo
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_CommitInfo) Descriptor() protoreflect.MessageDescriptor {
	return md_CommitInfo
}

// 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_CommitInfo) Type() protoreflect.MessageType {
	return _fastReflection_CommitInfo_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_CommitInfo) New() protoreflect.Message {
	return new(fastReflection_CommitInfo)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_CommitInfo) Interface() protoreflect.ProtoMessage {
	return (*CommitInfo)(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_CommitInfo) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Round != int32(0) {
		value := protoreflect.ValueOfInt32(x.Round)
		if !f(fd_CommitInfo_round, value) {
			return
		}
	}
	if len(x.Votes) != 0 {
		value := protoreflect.ValueOfList(&_CommitInfo_2_list{list: &x.Votes})
		if !f(fd_CommitInfo_votes, 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_CommitInfo) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.CommitInfo.round":
		return x.Round != int32(0)
	case "tendermint.abci.CommitInfo.votes":
		return len(x.Votes) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.CommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.CommitInfo 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_CommitInfo) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.CommitInfo.round":
		x.Round = int32(0)
	case "tendermint.abci.CommitInfo.votes":
		x.Votes = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.CommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.CommitInfo 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_CommitInfo) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.CommitInfo.round":
		value := x.Round
		return protoreflect.ValueOfInt32(value)
	case "tendermint.abci.CommitInfo.votes":
		if len(x.Votes) == 0 {
			return protoreflect.ValueOfList(&_CommitInfo_2_list{})
		}
		listValue := &_CommitInfo_2_list{list: &x.Votes}
		return protoreflect.ValueOfList(listValue)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.CommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.CommitInfo 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_CommitInfo) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.CommitInfo.round":
		x.Round = int32(value.Int())
	case "tendermint.abci.CommitInfo.votes":
		lv := value.List()
		clv := lv.(*_CommitInfo_2_list)
		x.Votes = *clv.list
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.CommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.CommitInfo 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_CommitInfo) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.CommitInfo.votes":
		if x.Votes == nil {
			x.Votes = []*VoteInfo{}
		}
		value := &_CommitInfo_2_list{list: &x.Votes}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.CommitInfo.round":
		panic(fmt.Errorf("field round of message tendermint.abci.CommitInfo is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.CommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.CommitInfo 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_CommitInfo) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.CommitInfo.round":
		return protoreflect.ValueOfInt32(int32(0))
	case "tendermint.abci.CommitInfo.votes":
		list := []*VoteInfo{}
		return protoreflect.ValueOfList(&_CommitInfo_2_list{list: &list})
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.CommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.CommitInfo 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_CommitInfo) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.CommitInfo", 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_CommitInfo) 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_CommitInfo) 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_CommitInfo) 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_CommitInfo) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*CommitInfo)
		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.Round != 0 {
			n += 1 + runtime.Sov(uint64(x.Round))
		}
		if len(x.Votes) > 0 {
			for _, e := range x.Votes {
				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().(*CommitInfo)
		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.Votes) > 0 {
			for iNdEx := len(x.Votes) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Votes[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.Round != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Round))
			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().(*CommitInfo)
		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: CommitInfo: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: CommitInfo: 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 Round", wireType)
				}
				x.Round = 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.Round |= int32(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 Votes", 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.Votes = append(x.Votes, &VoteInfo{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Votes[len(x.Votes)-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 _ protoreflect.List = (*_ExtendedCommitInfo_2_list)(nil)

type _ExtendedCommitInfo_2_list struct {
	list *[]*ExtendedVoteInfo
}

func (x *_ExtendedCommitInfo_2_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ExtendedCommitInfo_2_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_ExtendedCommitInfo_2_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ExtendedVoteInfo)
	(*x.list)[i] = concreteValue
}

func (x *_ExtendedCommitInfo_2_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*ExtendedVoteInfo)
	*x.list = append(*x.list, concreteValue)
}

func (x *_ExtendedCommitInfo_2_list) AppendMutable() protoreflect.Value {
	v := new(ExtendedVoteInfo)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ExtendedCommitInfo_2_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_ExtendedCommitInfo_2_list) NewElement() protoreflect.Value {
	v := new(ExtendedVoteInfo)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ExtendedCommitInfo_2_list) IsValid() bool {
	return x.list != nil
}

var (
	md_ExtendedCommitInfo       protoreflect.MessageDescriptor
	fd_ExtendedCommitInfo_round protoreflect.FieldDescriptor
	fd_ExtendedCommitInfo_votes protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ExtendedCommitInfo = File_tendermint_abci_types_proto.Messages().ByName("ExtendedCommitInfo")
	fd_ExtendedCommitInfo_round = md_ExtendedCommitInfo.Fields().ByName("round")
	fd_ExtendedCommitInfo_votes = md_ExtendedCommitInfo.Fields().ByName("votes")
}

var _ protoreflect.Message = (*fastReflection_ExtendedCommitInfo)(nil)

type fastReflection_ExtendedCommitInfo ExtendedCommitInfo

func (x *ExtendedCommitInfo) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ExtendedCommitInfo)(x)
}

func (x *ExtendedCommitInfo) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[36]
	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_ExtendedCommitInfo_messageType fastReflection_ExtendedCommitInfo_messageType
var _ protoreflect.MessageType = fastReflection_ExtendedCommitInfo_messageType{}

type fastReflection_ExtendedCommitInfo_messageType struct{}

func (x fastReflection_ExtendedCommitInfo_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ExtendedCommitInfo)(nil)
}
func (x fastReflection_ExtendedCommitInfo_messageType) New() protoreflect.Message {
	return new(fastReflection_ExtendedCommitInfo)
}
func (x fastReflection_ExtendedCommitInfo_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ExtendedCommitInfo
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ExtendedCommitInfo) Descriptor() protoreflect.MessageDescriptor {
	return md_ExtendedCommitInfo
}

// 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_ExtendedCommitInfo) Type() protoreflect.MessageType {
	return _fastReflection_ExtendedCommitInfo_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ExtendedCommitInfo) New() protoreflect.Message {
	return new(fastReflection_ExtendedCommitInfo)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ExtendedCommitInfo) Interface() protoreflect.ProtoMessage {
	return (*ExtendedCommitInfo)(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_ExtendedCommitInfo) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Round != int32(0) {
		value := protoreflect.ValueOfInt32(x.Round)
		if !f(fd_ExtendedCommitInfo_round, value) {
			return
		}
	}
	if len(x.Votes) != 0 {
		value := protoreflect.ValueOfList(&_ExtendedCommitInfo_2_list{list: &x.Votes})
		if !f(fd_ExtendedCommitInfo_votes, 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_ExtendedCommitInfo) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedCommitInfo.round":
		return x.Round != int32(0)
	case "tendermint.abci.ExtendedCommitInfo.votes":
		return len(x.Votes) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedCommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedCommitInfo 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_ExtendedCommitInfo) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedCommitInfo.round":
		x.Round = int32(0)
	case "tendermint.abci.ExtendedCommitInfo.votes":
		x.Votes = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedCommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedCommitInfo 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_ExtendedCommitInfo) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ExtendedCommitInfo.round":
		value := x.Round
		return protoreflect.ValueOfInt32(value)
	case "tendermint.abci.ExtendedCommitInfo.votes":
		if len(x.Votes) == 0 {
			return protoreflect.ValueOfList(&_ExtendedCommitInfo_2_list{})
		}
		listValue := &_ExtendedCommitInfo_2_list{list: &x.Votes}
		return protoreflect.ValueOfList(listValue)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedCommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedCommitInfo 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_ExtendedCommitInfo) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedCommitInfo.round":
		x.Round = int32(value.Int())
	case "tendermint.abci.ExtendedCommitInfo.votes":
		lv := value.List()
		clv := lv.(*_ExtendedCommitInfo_2_list)
		x.Votes = *clv.list
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedCommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedCommitInfo 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_ExtendedCommitInfo) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedCommitInfo.votes":
		if x.Votes == nil {
			x.Votes = []*ExtendedVoteInfo{}
		}
		value := &_ExtendedCommitInfo_2_list{list: &x.Votes}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.ExtendedCommitInfo.round":
		panic(fmt.Errorf("field round of message tendermint.abci.ExtendedCommitInfo is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedCommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedCommitInfo 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_ExtendedCommitInfo) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedCommitInfo.round":
		return protoreflect.ValueOfInt32(int32(0))
	case "tendermint.abci.ExtendedCommitInfo.votes":
		list := []*ExtendedVoteInfo{}
		return protoreflect.ValueOfList(&_ExtendedCommitInfo_2_list{list: &list})
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedCommitInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedCommitInfo 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_ExtendedCommitInfo) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ExtendedCommitInfo", 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_ExtendedCommitInfo) 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_ExtendedCommitInfo) 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_ExtendedCommitInfo) 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_ExtendedCommitInfo) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ExtendedCommitInfo)
		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.Round != 0 {
			n += 1 + runtime.Sov(uint64(x.Round))
		}
		if len(x.Votes) > 0 {
			for _, e := range x.Votes {
				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().(*ExtendedCommitInfo)
		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.Votes) > 0 {
			for iNdEx := len(x.Votes) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Votes[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.Round != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Round))
			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().(*ExtendedCommitInfo)
		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: ExtendedCommitInfo: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ExtendedCommitInfo: 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 Round", wireType)
				}
				x.Round = 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.Round |= int32(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 Votes", 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.Votes = append(x.Votes, &ExtendedVoteInfo{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Votes[len(x.Votes)-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 _ protoreflect.List = (*_Event_2_list)(nil)

type _Event_2_list struct {
	list *[]*EventAttribute
}

func (x *_Event_2_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_Event_2_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_Event_2_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*EventAttribute)
	(*x.list)[i] = concreteValue
}

func (x *_Event_2_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*EventAttribute)
	*x.list = append(*x.list, concreteValue)
}

func (x *_Event_2_list) AppendMutable() protoreflect.Value {
	v := new(EventAttribute)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_Event_2_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_Event_2_list) NewElement() protoreflect.Value {
	v := new(EventAttribute)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_Event_2_list) IsValid() bool {
	return x.list != nil
}

var (
	md_Event            protoreflect.MessageDescriptor
	fd_Event_type       protoreflect.FieldDescriptor
	fd_Event_attributes protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_Event = File_tendermint_abci_types_proto.Messages().ByName("Event")
	fd_Event_type = md_Event.Fields().ByName("type")
	fd_Event_attributes = md_Event.Fields().ByName("attributes")
}

var _ protoreflect.Message = (*fastReflection_Event)(nil)

type fastReflection_Event Event

func (x *Event) ProtoReflect() protoreflect.Message {
	return (*fastReflection_Event)(x)
}

func (x *Event) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[37]
	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_Event_messageType fastReflection_Event_messageType
var _ protoreflect.MessageType = fastReflection_Event_messageType{}

type fastReflection_Event_messageType struct{}

func (x fastReflection_Event_messageType) Zero() protoreflect.Message {
	return (*fastReflection_Event)(nil)
}
func (x fastReflection_Event_messageType) New() protoreflect.Message {
	return new(fastReflection_Event)
}
func (x fastReflection_Event_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_Event
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_Event) Descriptor() protoreflect.MessageDescriptor {
	return md_Event
}

// 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_Event) Type() protoreflect.MessageType {
	return _fastReflection_Event_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_Event) New() protoreflect.Message {
	return new(fastReflection_Event)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_Event) Interface() protoreflect.ProtoMessage {
	return (*Event)(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_Event) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Type_ != "" {
		value := protoreflect.ValueOfString(x.Type_)
		if !f(fd_Event_type, value) {
			return
		}
	}
	if len(x.Attributes) != 0 {
		value := protoreflect.ValueOfList(&_Event_2_list{list: &x.Attributes})
		if !f(fd_Event_attributes, 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_Event) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.Event.type":
		return x.Type_ != ""
	case "tendermint.abci.Event.attributes":
		return len(x.Attributes) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Event"))
		}
		panic(fmt.Errorf("message tendermint.abci.Event 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_Event) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.Event.type":
		x.Type_ = ""
	case "tendermint.abci.Event.attributes":
		x.Attributes = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Event"))
		}
		panic(fmt.Errorf("message tendermint.abci.Event 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_Event) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.Event.type":
		value := x.Type_
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.Event.attributes":
		if len(x.Attributes) == 0 {
			return protoreflect.ValueOfList(&_Event_2_list{})
		}
		listValue := &_Event_2_list{list: &x.Attributes}
		return protoreflect.ValueOfList(listValue)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Event"))
		}
		panic(fmt.Errorf("message tendermint.abci.Event 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_Event) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.Event.type":
		x.Type_ = value.Interface().(string)
	case "tendermint.abci.Event.attributes":
		lv := value.List()
		clv := lv.(*_Event_2_list)
		x.Attributes = *clv.list
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Event"))
		}
		panic(fmt.Errorf("message tendermint.abci.Event 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_Event) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Event.attributes":
		if x.Attributes == nil {
			x.Attributes = []*EventAttribute{}
		}
		value := &_Event_2_list{list: &x.Attributes}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.Event.type":
		panic(fmt.Errorf("field type of message tendermint.abci.Event is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Event"))
		}
		panic(fmt.Errorf("message tendermint.abci.Event 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_Event) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Event.type":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.Event.attributes":
		list := []*EventAttribute{}
		return protoreflect.ValueOfList(&_Event_2_list{list: &list})
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Event"))
		}
		panic(fmt.Errorf("message tendermint.abci.Event 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_Event) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.Event", 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_Event) 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_Event) 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_Event) 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_Event) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*Event)
		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.Type_)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if len(x.Attributes) > 0 {
			for _, e := range x.Attributes {
				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().(*Event)
		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.Attributes) > 0 {
			for iNdEx := len(x.Attributes) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Attributes[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 len(x.Type_) > 0 {
			i -= len(x.Type_)
			copy(dAtA[i:], x.Type_)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Type_)))
			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().(*Event)
		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: Event: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Event: 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 Type_", 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.Type_ = 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 Attributes", 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.Attributes = append(x.Attributes, &EventAttribute{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Attributes[len(x.Attributes)-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_EventAttribute       protoreflect.MessageDescriptor
	fd_EventAttribute_key   protoreflect.FieldDescriptor
	fd_EventAttribute_value protoreflect.FieldDescriptor
	fd_EventAttribute_index protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_EventAttribute = File_tendermint_abci_types_proto.Messages().ByName("EventAttribute")
	fd_EventAttribute_key = md_EventAttribute.Fields().ByName("key")
	fd_EventAttribute_value = md_EventAttribute.Fields().ByName("value")
	fd_EventAttribute_index = md_EventAttribute.Fields().ByName("index")
}

var _ protoreflect.Message = (*fastReflection_EventAttribute)(nil)

type fastReflection_EventAttribute EventAttribute

func (x *EventAttribute) ProtoReflect() protoreflect.Message {
	return (*fastReflection_EventAttribute)(x)
}

func (x *EventAttribute) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[38]
	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_EventAttribute_messageType fastReflection_EventAttribute_messageType
var _ protoreflect.MessageType = fastReflection_EventAttribute_messageType{}

type fastReflection_EventAttribute_messageType struct{}

func (x fastReflection_EventAttribute_messageType) Zero() protoreflect.Message {
	return (*fastReflection_EventAttribute)(nil)
}
func (x fastReflection_EventAttribute_messageType) New() protoreflect.Message {
	return new(fastReflection_EventAttribute)
}
func (x fastReflection_EventAttribute_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_EventAttribute
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_EventAttribute) Descriptor() protoreflect.MessageDescriptor {
	return md_EventAttribute
}

// 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_EventAttribute) Type() protoreflect.MessageType {
	return _fastReflection_EventAttribute_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_EventAttribute) New() protoreflect.Message {
	return new(fastReflection_EventAttribute)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_EventAttribute) Interface() protoreflect.ProtoMessage {
	return (*EventAttribute)(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_EventAttribute) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Key != "" {
		value := protoreflect.ValueOfString(x.Key)
		if !f(fd_EventAttribute_key, value) {
			return
		}
	}
	if x.Value != "" {
		value := protoreflect.ValueOfString(x.Value)
		if !f(fd_EventAttribute_value, value) {
			return
		}
	}
	if x.Index != false {
		value := protoreflect.ValueOfBool(x.Index)
		if !f(fd_EventAttribute_index, 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_EventAttribute) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.EventAttribute.key":
		return x.Key != ""
	case "tendermint.abci.EventAttribute.value":
		return x.Value != ""
	case "tendermint.abci.EventAttribute.index":
		return x.Index != false
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.EventAttribute"))
		}
		panic(fmt.Errorf("message tendermint.abci.EventAttribute 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_EventAttribute) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.EventAttribute.key":
		x.Key = ""
	case "tendermint.abci.EventAttribute.value":
		x.Value = ""
	case "tendermint.abci.EventAttribute.index":
		x.Index = false
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.EventAttribute"))
		}
		panic(fmt.Errorf("message tendermint.abci.EventAttribute 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_EventAttribute) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.EventAttribute.key":
		value := x.Key
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.EventAttribute.value":
		value := x.Value
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.EventAttribute.index":
		value := x.Index
		return protoreflect.ValueOfBool(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.EventAttribute"))
		}
		panic(fmt.Errorf("message tendermint.abci.EventAttribute 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_EventAttribute) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.EventAttribute.key":
		x.Key = value.Interface().(string)
	case "tendermint.abci.EventAttribute.value":
		x.Value = value.Interface().(string)
	case "tendermint.abci.EventAttribute.index":
		x.Index = value.Bool()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.EventAttribute"))
		}
		panic(fmt.Errorf("message tendermint.abci.EventAttribute 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_EventAttribute) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.EventAttribute.key":
		panic(fmt.Errorf("field key of message tendermint.abci.EventAttribute is not mutable"))
	case "tendermint.abci.EventAttribute.value":
		panic(fmt.Errorf("field value of message tendermint.abci.EventAttribute is not mutable"))
	case "tendermint.abci.EventAttribute.index":
		panic(fmt.Errorf("field index of message tendermint.abci.EventAttribute is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.EventAttribute"))
		}
		panic(fmt.Errorf("message tendermint.abci.EventAttribute 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_EventAttribute) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.EventAttribute.key":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.EventAttribute.value":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.EventAttribute.index":
		return protoreflect.ValueOfBool(false)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.EventAttribute"))
		}
		panic(fmt.Errorf("message tendermint.abci.EventAttribute 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_EventAttribute) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.EventAttribute", 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_EventAttribute) 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_EventAttribute) 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_EventAttribute) 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_EventAttribute) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*EventAttribute)
		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.Key)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Value)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Index {
			n += 2
		}
		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().(*EventAttribute)
		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.Index {
			i--
			if x.Index {
				dAtA[i] = 1
			} else {
				dAtA[i] = 0
			}
			i--
			dAtA[i] = 0x18
		}
		if len(x.Value) > 0 {
			i -= len(x.Value)
			copy(dAtA[i:], x.Value)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Value)))
			i--
			dAtA[i] = 0x12
		}
		if len(x.Key) > 0 {
			i -= len(x.Key)
			copy(dAtA[i:], x.Key)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Key)))
			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().(*EventAttribute)
		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: EventAttribute: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventAttribute: 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 Key", 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.Key = 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 Value", 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.Value = string(dAtA[iNdEx:postIndex])
				iNdEx = postIndex
			case 3:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Index", 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.Index = bool(v != 0)
			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 = (*_ExecTxResult_7_list)(nil)

type _ExecTxResult_7_list struct {
	list *[]*Event
}

func (x *_ExecTxResult_7_list) Len() int {
	if x.list == nil {
		return 0
	}
	return len(*x.list)
}

func (x *_ExecTxResult_7_list) Get(i int) protoreflect.Value {
	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
}

func (x *_ExecTxResult_7_list) Set(i int, value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Event)
	(*x.list)[i] = concreteValue
}

func (x *_ExecTxResult_7_list) Append(value protoreflect.Value) {
	valueUnwrapped := value.Message()
	concreteValue := valueUnwrapped.Interface().(*Event)
	*x.list = append(*x.list, concreteValue)
}

func (x *_ExecTxResult_7_list) AppendMutable() protoreflect.Value {
	v := new(Event)
	*x.list = append(*x.list, v)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ExecTxResult_7_list) Truncate(n int) {
	for i := n; i < len(*x.list); i++ {
		(*x.list)[i] = nil
	}
	*x.list = (*x.list)[:n]
}

func (x *_ExecTxResult_7_list) NewElement() protoreflect.Value {
	v := new(Event)
	return protoreflect.ValueOfMessage(v.ProtoReflect())
}

func (x *_ExecTxResult_7_list) IsValid() bool {
	return x.list != nil
}

var (
	md_ExecTxResult            protoreflect.MessageDescriptor
	fd_ExecTxResult_code       protoreflect.FieldDescriptor
	fd_ExecTxResult_data       protoreflect.FieldDescriptor
	fd_ExecTxResult_log        protoreflect.FieldDescriptor
	fd_ExecTxResult_info       protoreflect.FieldDescriptor
	fd_ExecTxResult_gas_wanted protoreflect.FieldDescriptor
	fd_ExecTxResult_gas_used   protoreflect.FieldDescriptor
	fd_ExecTxResult_events     protoreflect.FieldDescriptor
	fd_ExecTxResult_codespace  protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ExecTxResult = File_tendermint_abci_types_proto.Messages().ByName("ExecTxResult")
	fd_ExecTxResult_code = md_ExecTxResult.Fields().ByName("code")
	fd_ExecTxResult_data = md_ExecTxResult.Fields().ByName("data")
	fd_ExecTxResult_log = md_ExecTxResult.Fields().ByName("log")
	fd_ExecTxResult_info = md_ExecTxResult.Fields().ByName("info")
	fd_ExecTxResult_gas_wanted = md_ExecTxResult.Fields().ByName("gas_wanted")
	fd_ExecTxResult_gas_used = md_ExecTxResult.Fields().ByName("gas_used")
	fd_ExecTxResult_events = md_ExecTxResult.Fields().ByName("events")
	fd_ExecTxResult_codespace = md_ExecTxResult.Fields().ByName("codespace")
}

var _ protoreflect.Message = (*fastReflection_ExecTxResult)(nil)

type fastReflection_ExecTxResult ExecTxResult

func (x *ExecTxResult) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ExecTxResult)(x)
}

func (x *ExecTxResult) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[39]
	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_ExecTxResult_messageType fastReflection_ExecTxResult_messageType
var _ protoreflect.MessageType = fastReflection_ExecTxResult_messageType{}

type fastReflection_ExecTxResult_messageType struct{}

func (x fastReflection_ExecTxResult_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ExecTxResult)(nil)
}
func (x fastReflection_ExecTxResult_messageType) New() protoreflect.Message {
	return new(fastReflection_ExecTxResult)
}
func (x fastReflection_ExecTxResult_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ExecTxResult
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ExecTxResult) Descriptor() protoreflect.MessageDescriptor {
	return md_ExecTxResult
}

// 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_ExecTxResult) Type() protoreflect.MessageType {
	return _fastReflection_ExecTxResult_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ExecTxResult) New() protoreflect.Message {
	return new(fastReflection_ExecTxResult)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ExecTxResult) Interface() protoreflect.ProtoMessage {
	return (*ExecTxResult)(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_ExecTxResult) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Code != uint32(0) {
		value := protoreflect.ValueOfUint32(x.Code)
		if !f(fd_ExecTxResult_code, value) {
			return
		}
	}
	if len(x.Data) != 0 {
		value := protoreflect.ValueOfBytes(x.Data)
		if !f(fd_ExecTxResult_data, value) {
			return
		}
	}
	if x.Log != "" {
		value := protoreflect.ValueOfString(x.Log)
		if !f(fd_ExecTxResult_log, value) {
			return
		}
	}
	if x.Info != "" {
		value := protoreflect.ValueOfString(x.Info)
		if !f(fd_ExecTxResult_info, value) {
			return
		}
	}
	if x.GasWanted != int64(0) {
		value := protoreflect.ValueOfInt64(x.GasWanted)
		if !f(fd_ExecTxResult_gas_wanted, value) {
			return
		}
	}
	if x.GasUsed != int64(0) {
		value := protoreflect.ValueOfInt64(x.GasUsed)
		if !f(fd_ExecTxResult_gas_used, value) {
			return
		}
	}
	if len(x.Events) != 0 {
		value := protoreflect.ValueOfList(&_ExecTxResult_7_list{list: &x.Events})
		if !f(fd_ExecTxResult_events, value) {
			return
		}
	}
	if x.Codespace != "" {
		value := protoreflect.ValueOfString(x.Codespace)
		if !f(fd_ExecTxResult_codespace, 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_ExecTxResult) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ExecTxResult.code":
		return x.Code != uint32(0)
	case "tendermint.abci.ExecTxResult.data":
		return len(x.Data) != 0
	case "tendermint.abci.ExecTxResult.log":
		return x.Log != ""
	case "tendermint.abci.ExecTxResult.info":
		return x.Info != ""
	case "tendermint.abci.ExecTxResult.gas_wanted":
		return x.GasWanted != int64(0)
	case "tendermint.abci.ExecTxResult.gas_used":
		return x.GasUsed != int64(0)
	case "tendermint.abci.ExecTxResult.events":
		return len(x.Events) != 0
	case "tendermint.abci.ExecTxResult.codespace":
		return x.Codespace != ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExecTxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExecTxResult 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_ExecTxResult) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ExecTxResult.code":
		x.Code = uint32(0)
	case "tendermint.abci.ExecTxResult.data":
		x.Data = nil
	case "tendermint.abci.ExecTxResult.log":
		x.Log = ""
	case "tendermint.abci.ExecTxResult.info":
		x.Info = ""
	case "tendermint.abci.ExecTxResult.gas_wanted":
		x.GasWanted = int64(0)
	case "tendermint.abci.ExecTxResult.gas_used":
		x.GasUsed = int64(0)
	case "tendermint.abci.ExecTxResult.events":
		x.Events = nil
	case "tendermint.abci.ExecTxResult.codespace":
		x.Codespace = ""
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExecTxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExecTxResult 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_ExecTxResult) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ExecTxResult.code":
		value := x.Code
		return protoreflect.ValueOfUint32(value)
	case "tendermint.abci.ExecTxResult.data":
		value := x.Data
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.ExecTxResult.log":
		value := x.Log
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.ExecTxResult.info":
		value := x.Info
		return protoreflect.ValueOfString(value)
	case "tendermint.abci.ExecTxResult.gas_wanted":
		value := x.GasWanted
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.ExecTxResult.gas_used":
		value := x.GasUsed
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.ExecTxResult.events":
		if len(x.Events) == 0 {
			return protoreflect.ValueOfList(&_ExecTxResult_7_list{})
		}
		listValue := &_ExecTxResult_7_list{list: &x.Events}
		return protoreflect.ValueOfList(listValue)
	case "tendermint.abci.ExecTxResult.codespace":
		value := x.Codespace
		return protoreflect.ValueOfString(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExecTxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExecTxResult 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_ExecTxResult) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ExecTxResult.code":
		x.Code = uint32(value.Uint())
	case "tendermint.abci.ExecTxResult.data":
		x.Data = value.Bytes()
	case "tendermint.abci.ExecTxResult.log":
		x.Log = value.Interface().(string)
	case "tendermint.abci.ExecTxResult.info":
		x.Info = value.Interface().(string)
	case "tendermint.abci.ExecTxResult.gas_wanted":
		x.GasWanted = value.Int()
	case "tendermint.abci.ExecTxResult.gas_used":
		x.GasUsed = value.Int()
	case "tendermint.abci.ExecTxResult.events":
		lv := value.List()
		clv := lv.(*_ExecTxResult_7_list)
		x.Events = *clv.list
	case "tendermint.abci.ExecTxResult.codespace":
		x.Codespace = value.Interface().(string)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExecTxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExecTxResult 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_ExecTxResult) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ExecTxResult.events":
		if x.Events == nil {
			x.Events = []*Event{}
		}
		value := &_ExecTxResult_7_list{list: &x.Events}
		return protoreflect.ValueOfList(value)
	case "tendermint.abci.ExecTxResult.code":
		panic(fmt.Errorf("field code of message tendermint.abci.ExecTxResult is not mutable"))
	case "tendermint.abci.ExecTxResult.data":
		panic(fmt.Errorf("field data of message tendermint.abci.ExecTxResult is not mutable"))
	case "tendermint.abci.ExecTxResult.log":
		panic(fmt.Errorf("field log of message tendermint.abci.ExecTxResult is not mutable"))
	case "tendermint.abci.ExecTxResult.info":
		panic(fmt.Errorf("field info of message tendermint.abci.ExecTxResult is not mutable"))
	case "tendermint.abci.ExecTxResult.gas_wanted":
		panic(fmt.Errorf("field gas_wanted of message tendermint.abci.ExecTxResult is not mutable"))
	case "tendermint.abci.ExecTxResult.gas_used":
		panic(fmt.Errorf("field gas_used of message tendermint.abci.ExecTxResult is not mutable"))
	case "tendermint.abci.ExecTxResult.codespace":
		panic(fmt.Errorf("field codespace of message tendermint.abci.ExecTxResult is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExecTxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExecTxResult 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_ExecTxResult) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ExecTxResult.code":
		return protoreflect.ValueOfUint32(uint32(0))
	case "tendermint.abci.ExecTxResult.data":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.ExecTxResult.log":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.ExecTxResult.info":
		return protoreflect.ValueOfString("")
	case "tendermint.abci.ExecTxResult.gas_wanted":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.ExecTxResult.gas_used":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.ExecTxResult.events":
		list := []*Event{}
		return protoreflect.ValueOfList(&_ExecTxResult_7_list{list: &list})
	case "tendermint.abci.ExecTxResult.codespace":
		return protoreflect.ValueOfString("")
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExecTxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExecTxResult 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_ExecTxResult) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ExecTxResult", 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_ExecTxResult) 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_ExecTxResult) 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_ExecTxResult) 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_ExecTxResult) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ExecTxResult)
		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.Code != 0 {
			n += 1 + runtime.Sov(uint64(x.Code))
		}
		l = len(x.Data)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Log)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Info)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.GasWanted != 0 {
			n += 1 + runtime.Sov(uint64(x.GasWanted))
		}
		if x.GasUsed != 0 {
			n += 1 + runtime.Sov(uint64(x.GasUsed))
		}
		if len(x.Events) > 0 {
			for _, e := range x.Events {
				l = options.Size(e)
				n += 1 + l + runtime.Sov(uint64(l))
			}
		}
		l = len(x.Codespace)
		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().(*ExecTxResult)
		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.Codespace) > 0 {
			i -= len(x.Codespace)
			copy(dAtA[i:], x.Codespace)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Codespace)))
			i--
			dAtA[i] = 0x42
		}
		if len(x.Events) > 0 {
			for iNdEx := len(x.Events) - 1; iNdEx >= 0; iNdEx-- {
				encoded, err := options.Marshal(x.Events[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] = 0x3a
			}
		}
		if x.GasUsed != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.GasUsed))
			i--
			dAtA[i] = 0x30
		}
		if x.GasWanted != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.GasWanted))
			i--
			dAtA[i] = 0x28
		}
		if len(x.Info) > 0 {
			i -= len(x.Info)
			copy(dAtA[i:], x.Info)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Info)))
			i--
			dAtA[i] = 0x22
		}
		if len(x.Log) > 0 {
			i -= len(x.Log)
			copy(dAtA[i:], x.Log)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Log)))
			i--
			dAtA[i] = 0x1a
		}
		if len(x.Data) > 0 {
			i -= len(x.Data)
			copy(dAtA[i:], x.Data)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Data)))
			i--
			dAtA[i] = 0x12
		}
		if x.Code != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Code))
			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().(*ExecTxResult)
		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: ExecTxResult: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ExecTxResult: 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 Code", wireType)
				}
				x.Code = 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.Code |= uint32(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 Data", 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.Data = append(x.Data[:0], dAtA[iNdEx:postIndex]...)
				if x.Data == nil {
					x.Data = []byte{}
				}
				iNdEx = postIndex
			case 3:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Log", 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.Log = 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 Info", 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.Info = 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 GasWanted", wireType)
				}
				x.GasWanted = 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.GasWanted |= int64(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 GasUsed", wireType)
				}
				x.GasUsed = 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.GasUsed |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 7:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Events", 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.Events = append(x.Events, &Event{})
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Events[len(x.Events)-1]); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 8:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Codespace", 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.Codespace = 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_TxResult        protoreflect.MessageDescriptor
	fd_TxResult_height protoreflect.FieldDescriptor
	fd_TxResult_index  protoreflect.FieldDescriptor
	fd_TxResult_tx     protoreflect.FieldDescriptor
	fd_TxResult_result protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_TxResult = File_tendermint_abci_types_proto.Messages().ByName("TxResult")
	fd_TxResult_height = md_TxResult.Fields().ByName("height")
	fd_TxResult_index = md_TxResult.Fields().ByName("index")
	fd_TxResult_tx = md_TxResult.Fields().ByName("tx")
	fd_TxResult_result = md_TxResult.Fields().ByName("result")
}

var _ protoreflect.Message = (*fastReflection_TxResult)(nil)

type fastReflection_TxResult TxResult

func (x *TxResult) ProtoReflect() protoreflect.Message {
	return (*fastReflection_TxResult)(x)
}

func (x *TxResult) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[40]
	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_TxResult_messageType fastReflection_TxResult_messageType
var _ protoreflect.MessageType = fastReflection_TxResult_messageType{}

type fastReflection_TxResult_messageType struct{}

func (x fastReflection_TxResult_messageType) Zero() protoreflect.Message {
	return (*fastReflection_TxResult)(nil)
}
func (x fastReflection_TxResult_messageType) New() protoreflect.Message {
	return new(fastReflection_TxResult)
}
func (x fastReflection_TxResult_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_TxResult
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_TxResult) Descriptor() protoreflect.MessageDescriptor {
	return md_TxResult
}

// 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_TxResult) Type() protoreflect.MessageType {
	return _fastReflection_TxResult_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_TxResult) New() protoreflect.Message {
	return new(fastReflection_TxResult)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_TxResult) Interface() protoreflect.ProtoMessage {
	return (*TxResult)(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_TxResult) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Height != int64(0) {
		value := protoreflect.ValueOfInt64(x.Height)
		if !f(fd_TxResult_height, value) {
			return
		}
	}
	if x.Index != uint32(0) {
		value := protoreflect.ValueOfUint32(x.Index)
		if !f(fd_TxResult_index, value) {
			return
		}
	}
	if len(x.Tx) != 0 {
		value := protoreflect.ValueOfBytes(x.Tx)
		if !f(fd_TxResult_tx, value) {
			return
		}
	}
	if x.Result != nil {
		value := protoreflect.ValueOfMessage(x.Result.ProtoReflect())
		if !f(fd_TxResult_result, 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_TxResult) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.TxResult.height":
		return x.Height != int64(0)
	case "tendermint.abci.TxResult.index":
		return x.Index != uint32(0)
	case "tendermint.abci.TxResult.tx":
		return len(x.Tx) != 0
	case "tendermint.abci.TxResult.result":
		return x.Result != nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.TxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.TxResult 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_TxResult) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.TxResult.height":
		x.Height = int64(0)
	case "tendermint.abci.TxResult.index":
		x.Index = uint32(0)
	case "tendermint.abci.TxResult.tx":
		x.Tx = nil
	case "tendermint.abci.TxResult.result":
		x.Result = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.TxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.TxResult 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_TxResult) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.TxResult.height":
		value := x.Height
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.TxResult.index":
		value := x.Index
		return protoreflect.ValueOfUint32(value)
	case "tendermint.abci.TxResult.tx":
		value := x.Tx
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.TxResult.result":
		value := x.Result
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.TxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.TxResult 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_TxResult) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.TxResult.height":
		x.Height = value.Int()
	case "tendermint.abci.TxResult.index":
		x.Index = uint32(value.Uint())
	case "tendermint.abci.TxResult.tx":
		x.Tx = value.Bytes()
	case "tendermint.abci.TxResult.result":
		x.Result = value.Message().Interface().(*ExecTxResult)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.TxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.TxResult 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_TxResult) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.TxResult.result":
		if x.Result == nil {
			x.Result = new(ExecTxResult)
		}
		return protoreflect.ValueOfMessage(x.Result.ProtoReflect())
	case "tendermint.abci.TxResult.height":
		panic(fmt.Errorf("field height of message tendermint.abci.TxResult is not mutable"))
	case "tendermint.abci.TxResult.index":
		panic(fmt.Errorf("field index of message tendermint.abci.TxResult is not mutable"))
	case "tendermint.abci.TxResult.tx":
		panic(fmt.Errorf("field tx of message tendermint.abci.TxResult is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.TxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.TxResult 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_TxResult) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.TxResult.height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.TxResult.index":
		return protoreflect.ValueOfUint32(uint32(0))
	case "tendermint.abci.TxResult.tx":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.TxResult.result":
		m := new(ExecTxResult)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.TxResult"))
		}
		panic(fmt.Errorf("message tendermint.abci.TxResult 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_TxResult) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.TxResult", 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_TxResult) 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_TxResult) 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_TxResult) 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_TxResult) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*TxResult)
		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.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		if x.Index != 0 {
			n += 1 + runtime.Sov(uint64(x.Index))
		}
		l = len(x.Tx)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Result != nil {
			l = options.Size(x.Result)
			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().(*TxResult)
		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.Result != nil {
			encoded, err := options.Marshal(x.Result)
			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.Tx) > 0 {
			i -= len(x.Tx)
			copy(dAtA[i:], x.Tx)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Tx)))
			i--
			dAtA[i] = 0x1a
		}
		if x.Index != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Index))
			i--
			dAtA[i] = 0x10
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			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().(*TxResult)
		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: TxResult: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TxResult: 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 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 |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 2:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
				}
				x.Index = 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.Index |= uint32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 3:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Tx", 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.Tx = append(x.Tx[:0], dAtA[iNdEx:postIndex]...)
				if x.Tx == nil {
					x.Tx = []byte{}
				}
				iNdEx = postIndex
			case 4:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Result", 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.Result == nil {
					x.Result = &ExecTxResult{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Result); 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_Validator         protoreflect.MessageDescriptor
	fd_Validator_address protoreflect.FieldDescriptor
	fd_Validator_power   protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_Validator = File_tendermint_abci_types_proto.Messages().ByName("Validator")
	fd_Validator_address = md_Validator.Fields().ByName("address")
	fd_Validator_power = md_Validator.Fields().ByName("power")
}

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_tendermint_abci_types_proto_msgTypes[41]
	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 len(x.Address) != 0 {
		value := protoreflect.ValueOfBytes(x.Address)
		if !f(fd_Validator_address, value) {
			return
		}
	}
	if x.Power != int64(0) {
		value := protoreflect.ValueOfInt64(x.Power)
		if !f(fd_Validator_power, 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 "tendermint.abci.Validator.address":
		return len(x.Address) != 0
	case "tendermint.abci.Validator.power":
		return x.Power != int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Validator"))
		}
		panic(fmt.Errorf("message tendermint.abci.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 "tendermint.abci.Validator.address":
		x.Address = nil
	case "tendermint.abci.Validator.power":
		x.Power = int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Validator"))
		}
		panic(fmt.Errorf("message tendermint.abci.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 "tendermint.abci.Validator.address":
		value := x.Address
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.Validator.power":
		value := x.Power
		return protoreflect.ValueOfInt64(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Validator"))
		}
		panic(fmt.Errorf("message tendermint.abci.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 "tendermint.abci.Validator.address":
		x.Address = value.Bytes()
	case "tendermint.abci.Validator.power":
		x.Power = value.Int()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Validator"))
		}
		panic(fmt.Errorf("message tendermint.abci.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 "tendermint.abci.Validator.address":
		panic(fmt.Errorf("field address of message tendermint.abci.Validator is not mutable"))
	case "tendermint.abci.Validator.power":
		panic(fmt.Errorf("field power of message tendermint.abci.Validator is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Validator"))
		}
		panic(fmt.Errorf("message tendermint.abci.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 "tendermint.abci.Validator.address":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.Validator.power":
		return protoreflect.ValueOfInt64(int64(0))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Validator"))
		}
		panic(fmt.Errorf("message tendermint.abci.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 tendermint.abci.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.Address)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Power != 0 {
			n += 1 + runtime.Sov(uint64(x.Power))
		}
		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 x.Power != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Power))
			i--
			dAtA[i] = 0x18
		}
		if len(x.Address) > 0 {
			i -= len(x.Address)
			copy(dAtA[i:], x.Address)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Address)))
			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 Address", 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.Address = append(x.Address[:0], dAtA[iNdEx:postIndex]...)
				if x.Address == nil {
					x.Address = []byte{}
				}
				iNdEx = postIndex
			case 3:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
				}
				x.Power = 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.Power |= 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_ValidatorUpdate         protoreflect.MessageDescriptor
	fd_ValidatorUpdate_pub_key protoreflect.FieldDescriptor
	fd_ValidatorUpdate_power   protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ValidatorUpdate = File_tendermint_abci_types_proto.Messages().ByName("ValidatorUpdate")
	fd_ValidatorUpdate_pub_key = md_ValidatorUpdate.Fields().ByName("pub_key")
	fd_ValidatorUpdate_power = md_ValidatorUpdate.Fields().ByName("power")
}

var _ protoreflect.Message = (*fastReflection_ValidatorUpdate)(nil)

type fastReflection_ValidatorUpdate ValidatorUpdate

func (x *ValidatorUpdate) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ValidatorUpdate)(x)
}

func (x *ValidatorUpdate) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[42]
	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_ValidatorUpdate_messageType fastReflection_ValidatorUpdate_messageType
var _ protoreflect.MessageType = fastReflection_ValidatorUpdate_messageType{}

type fastReflection_ValidatorUpdate_messageType struct{}

func (x fastReflection_ValidatorUpdate_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ValidatorUpdate)(nil)
}
func (x fastReflection_ValidatorUpdate_messageType) New() protoreflect.Message {
	return new(fastReflection_ValidatorUpdate)
}
func (x fastReflection_ValidatorUpdate_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ValidatorUpdate
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ValidatorUpdate) Descriptor() protoreflect.MessageDescriptor {
	return md_ValidatorUpdate
}

// 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_ValidatorUpdate) Type() protoreflect.MessageType {
	return _fastReflection_ValidatorUpdate_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ValidatorUpdate) New() protoreflect.Message {
	return new(fastReflection_ValidatorUpdate)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ValidatorUpdate) Interface() protoreflect.ProtoMessage {
	return (*ValidatorUpdate)(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_ValidatorUpdate) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.PubKey != nil {
		value := protoreflect.ValueOfMessage(x.PubKey.ProtoReflect())
		if !f(fd_ValidatorUpdate_pub_key, value) {
			return
		}
	}
	if x.Power != int64(0) {
		value := protoreflect.ValueOfInt64(x.Power)
		if !f(fd_ValidatorUpdate_power, 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_ValidatorUpdate) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ValidatorUpdate.pub_key":
		return x.PubKey != nil
	case "tendermint.abci.ValidatorUpdate.power":
		return x.Power != int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ValidatorUpdate"))
		}
		panic(fmt.Errorf("message tendermint.abci.ValidatorUpdate 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_ValidatorUpdate) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ValidatorUpdate.pub_key":
		x.PubKey = nil
	case "tendermint.abci.ValidatorUpdate.power":
		x.Power = int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ValidatorUpdate"))
		}
		panic(fmt.Errorf("message tendermint.abci.ValidatorUpdate 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_ValidatorUpdate) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ValidatorUpdate.pub_key":
		value := x.PubKey
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.ValidatorUpdate.power":
		value := x.Power
		return protoreflect.ValueOfInt64(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ValidatorUpdate"))
		}
		panic(fmt.Errorf("message tendermint.abci.ValidatorUpdate 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_ValidatorUpdate) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ValidatorUpdate.pub_key":
		x.PubKey = value.Message().Interface().(*crypto.PublicKey)
	case "tendermint.abci.ValidatorUpdate.power":
		x.Power = value.Int()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ValidatorUpdate"))
		}
		panic(fmt.Errorf("message tendermint.abci.ValidatorUpdate 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_ValidatorUpdate) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ValidatorUpdate.pub_key":
		if x.PubKey == nil {
			x.PubKey = new(crypto.PublicKey)
		}
		return protoreflect.ValueOfMessage(x.PubKey.ProtoReflect())
	case "tendermint.abci.ValidatorUpdate.power":
		panic(fmt.Errorf("field power of message tendermint.abci.ValidatorUpdate is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ValidatorUpdate"))
		}
		panic(fmt.Errorf("message tendermint.abci.ValidatorUpdate 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_ValidatorUpdate) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ValidatorUpdate.pub_key":
		m := new(crypto.PublicKey)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.ValidatorUpdate.power":
		return protoreflect.ValueOfInt64(int64(0))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ValidatorUpdate"))
		}
		panic(fmt.Errorf("message tendermint.abci.ValidatorUpdate 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_ValidatorUpdate) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ValidatorUpdate", 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_ValidatorUpdate) 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_ValidatorUpdate) 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_ValidatorUpdate) 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_ValidatorUpdate) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ValidatorUpdate)
		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.PubKey != nil {
			l = options.Size(x.PubKey)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Power != 0 {
			n += 1 + runtime.Sov(uint64(x.Power))
		}
		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().(*ValidatorUpdate)
		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.Power != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Power))
			i--
			dAtA[i] = 0x10
		}
		if x.PubKey != nil {
			encoded, err := options.Marshal(x.PubKey)
			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().(*ValidatorUpdate)
		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: ValidatorUpdate: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ValidatorUpdate: 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 PubKey", 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.PubKey == nil {
					x.PubKey = &crypto.PublicKey{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.PubKey); 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 Power", wireType)
				}
				x.Power = 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.Power |= 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_VoteInfo               protoreflect.MessageDescriptor
	fd_VoteInfo_validator     protoreflect.FieldDescriptor
	fd_VoteInfo_block_id_flag protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_VoteInfo = File_tendermint_abci_types_proto.Messages().ByName("VoteInfo")
	fd_VoteInfo_validator = md_VoteInfo.Fields().ByName("validator")
	fd_VoteInfo_block_id_flag = md_VoteInfo.Fields().ByName("block_id_flag")
}

var _ protoreflect.Message = (*fastReflection_VoteInfo)(nil)

type fastReflection_VoteInfo VoteInfo

func (x *VoteInfo) ProtoReflect() protoreflect.Message {
	return (*fastReflection_VoteInfo)(x)
}

func (x *VoteInfo) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[43]
	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_VoteInfo_messageType fastReflection_VoteInfo_messageType
var _ protoreflect.MessageType = fastReflection_VoteInfo_messageType{}

type fastReflection_VoteInfo_messageType struct{}

func (x fastReflection_VoteInfo_messageType) Zero() protoreflect.Message {
	return (*fastReflection_VoteInfo)(nil)
}
func (x fastReflection_VoteInfo_messageType) New() protoreflect.Message {
	return new(fastReflection_VoteInfo)
}
func (x fastReflection_VoteInfo_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_VoteInfo
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_VoteInfo) Descriptor() protoreflect.MessageDescriptor {
	return md_VoteInfo
}

// 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_VoteInfo) Type() protoreflect.MessageType {
	return _fastReflection_VoteInfo_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_VoteInfo) New() protoreflect.Message {
	return new(fastReflection_VoteInfo)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_VoteInfo) Interface() protoreflect.ProtoMessage {
	return (*VoteInfo)(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_VoteInfo) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Validator != nil {
		value := protoreflect.ValueOfMessage(x.Validator.ProtoReflect())
		if !f(fd_VoteInfo_validator, value) {
			return
		}
	}
	if x.BlockIdFlag != 0 {
		value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.BlockIdFlag))
		if !f(fd_VoteInfo_block_id_flag, 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_VoteInfo) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.VoteInfo.validator":
		return x.Validator != nil
	case "tendermint.abci.VoteInfo.block_id_flag":
		return x.BlockIdFlag != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.VoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.VoteInfo 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_VoteInfo) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.VoteInfo.validator":
		x.Validator = nil
	case "tendermint.abci.VoteInfo.block_id_flag":
		x.BlockIdFlag = 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.VoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.VoteInfo 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_VoteInfo) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.VoteInfo.validator":
		value := x.Validator
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.VoteInfo.block_id_flag":
		value := x.BlockIdFlag
		return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value))
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.VoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.VoteInfo 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_VoteInfo) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.VoteInfo.validator":
		x.Validator = value.Message().Interface().(*Validator)
	case "tendermint.abci.VoteInfo.block_id_flag":
		x.BlockIdFlag = (types.BlockIDFlag)(value.Enum())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.VoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.VoteInfo 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_VoteInfo) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.VoteInfo.validator":
		if x.Validator == nil {
			x.Validator = new(Validator)
		}
		return protoreflect.ValueOfMessage(x.Validator.ProtoReflect())
	case "tendermint.abci.VoteInfo.block_id_flag":
		panic(fmt.Errorf("field block_id_flag of message tendermint.abci.VoteInfo is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.VoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.VoteInfo 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_VoteInfo) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.VoteInfo.validator":
		m := new(Validator)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.VoteInfo.block_id_flag":
		return protoreflect.ValueOfEnum(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.VoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.VoteInfo 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_VoteInfo) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.VoteInfo", 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_VoteInfo) 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_VoteInfo) 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_VoteInfo) 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_VoteInfo) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*VoteInfo)
		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.Validator != nil {
			l = options.Size(x.Validator)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.BlockIdFlag != 0 {
			n += 1 + runtime.Sov(uint64(x.BlockIdFlag))
		}
		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().(*VoteInfo)
		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.BlockIdFlag != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.BlockIdFlag))
			i--
			dAtA[i] = 0x18
		}
		if x.Validator != nil {
			encoded, err := options.Marshal(x.Validator)
			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().(*VoteInfo)
		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: VoteInfo: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: VoteInfo: 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 Validator", 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.Validator == nil {
					x.Validator = &Validator{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Validator); 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 BlockIdFlag", wireType)
				}
				x.BlockIdFlag = 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.BlockIdFlag |= types.BlockIDFlag(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_ExtendedVoteInfo                     protoreflect.MessageDescriptor
	fd_ExtendedVoteInfo_validator           protoreflect.FieldDescriptor
	fd_ExtendedVoteInfo_vote_extension      protoreflect.FieldDescriptor
	fd_ExtendedVoteInfo_extension_signature protoreflect.FieldDescriptor
	fd_ExtendedVoteInfo_block_id_flag       protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_ExtendedVoteInfo = File_tendermint_abci_types_proto.Messages().ByName("ExtendedVoteInfo")
	fd_ExtendedVoteInfo_validator = md_ExtendedVoteInfo.Fields().ByName("validator")
	fd_ExtendedVoteInfo_vote_extension = md_ExtendedVoteInfo.Fields().ByName("vote_extension")
	fd_ExtendedVoteInfo_extension_signature = md_ExtendedVoteInfo.Fields().ByName("extension_signature")
	fd_ExtendedVoteInfo_block_id_flag = md_ExtendedVoteInfo.Fields().ByName("block_id_flag")
}

var _ protoreflect.Message = (*fastReflection_ExtendedVoteInfo)(nil)

type fastReflection_ExtendedVoteInfo ExtendedVoteInfo

func (x *ExtendedVoteInfo) ProtoReflect() protoreflect.Message {
	return (*fastReflection_ExtendedVoteInfo)(x)
}

func (x *ExtendedVoteInfo) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[44]
	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_ExtendedVoteInfo_messageType fastReflection_ExtendedVoteInfo_messageType
var _ protoreflect.MessageType = fastReflection_ExtendedVoteInfo_messageType{}

type fastReflection_ExtendedVoteInfo_messageType struct{}

func (x fastReflection_ExtendedVoteInfo_messageType) Zero() protoreflect.Message {
	return (*fastReflection_ExtendedVoteInfo)(nil)
}
func (x fastReflection_ExtendedVoteInfo_messageType) New() protoreflect.Message {
	return new(fastReflection_ExtendedVoteInfo)
}
func (x fastReflection_ExtendedVoteInfo_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_ExtendedVoteInfo
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_ExtendedVoteInfo) Descriptor() protoreflect.MessageDescriptor {
	return md_ExtendedVoteInfo
}

// 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_ExtendedVoteInfo) Type() protoreflect.MessageType {
	return _fastReflection_ExtendedVoteInfo_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_ExtendedVoteInfo) New() protoreflect.Message {
	return new(fastReflection_ExtendedVoteInfo)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_ExtendedVoteInfo) Interface() protoreflect.ProtoMessage {
	return (*ExtendedVoteInfo)(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_ExtendedVoteInfo) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Validator != nil {
		value := protoreflect.ValueOfMessage(x.Validator.ProtoReflect())
		if !f(fd_ExtendedVoteInfo_validator, value) {
			return
		}
	}
	if len(x.VoteExtension) != 0 {
		value := protoreflect.ValueOfBytes(x.VoteExtension)
		if !f(fd_ExtendedVoteInfo_vote_extension, value) {
			return
		}
	}
	if len(x.ExtensionSignature) != 0 {
		value := protoreflect.ValueOfBytes(x.ExtensionSignature)
		if !f(fd_ExtendedVoteInfo_extension_signature, value) {
			return
		}
	}
	if x.BlockIdFlag != 0 {
		value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.BlockIdFlag))
		if !f(fd_ExtendedVoteInfo_block_id_flag, 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_ExtendedVoteInfo) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedVoteInfo.validator":
		return x.Validator != nil
	case "tendermint.abci.ExtendedVoteInfo.vote_extension":
		return len(x.VoteExtension) != 0
	case "tendermint.abci.ExtendedVoteInfo.extension_signature":
		return len(x.ExtensionSignature) != 0
	case "tendermint.abci.ExtendedVoteInfo.block_id_flag":
		return x.BlockIdFlag != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedVoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedVoteInfo 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_ExtendedVoteInfo) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedVoteInfo.validator":
		x.Validator = nil
	case "tendermint.abci.ExtendedVoteInfo.vote_extension":
		x.VoteExtension = nil
	case "tendermint.abci.ExtendedVoteInfo.extension_signature":
		x.ExtensionSignature = nil
	case "tendermint.abci.ExtendedVoteInfo.block_id_flag":
		x.BlockIdFlag = 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedVoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedVoteInfo 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_ExtendedVoteInfo) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.ExtendedVoteInfo.validator":
		value := x.Validator
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.ExtendedVoteInfo.vote_extension":
		value := x.VoteExtension
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.ExtendedVoteInfo.extension_signature":
		value := x.ExtensionSignature
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.ExtendedVoteInfo.block_id_flag":
		value := x.BlockIdFlag
		return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value))
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedVoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedVoteInfo 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_ExtendedVoteInfo) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedVoteInfo.validator":
		x.Validator = value.Message().Interface().(*Validator)
	case "tendermint.abci.ExtendedVoteInfo.vote_extension":
		x.VoteExtension = value.Bytes()
	case "tendermint.abci.ExtendedVoteInfo.extension_signature":
		x.ExtensionSignature = value.Bytes()
	case "tendermint.abci.ExtendedVoteInfo.block_id_flag":
		x.BlockIdFlag = (types.BlockIDFlag)(value.Enum())
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedVoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedVoteInfo 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_ExtendedVoteInfo) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedVoteInfo.validator":
		if x.Validator == nil {
			x.Validator = new(Validator)
		}
		return protoreflect.ValueOfMessage(x.Validator.ProtoReflect())
	case "tendermint.abci.ExtendedVoteInfo.vote_extension":
		panic(fmt.Errorf("field vote_extension of message tendermint.abci.ExtendedVoteInfo is not mutable"))
	case "tendermint.abci.ExtendedVoteInfo.extension_signature":
		panic(fmt.Errorf("field extension_signature of message tendermint.abci.ExtendedVoteInfo is not mutable"))
	case "tendermint.abci.ExtendedVoteInfo.block_id_flag":
		panic(fmt.Errorf("field block_id_flag of message tendermint.abci.ExtendedVoteInfo is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedVoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedVoteInfo 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_ExtendedVoteInfo) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.ExtendedVoteInfo.validator":
		m := new(Validator)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.ExtendedVoteInfo.vote_extension":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.ExtendedVoteInfo.extension_signature":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.ExtendedVoteInfo.block_id_flag":
		return protoreflect.ValueOfEnum(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.ExtendedVoteInfo"))
		}
		panic(fmt.Errorf("message tendermint.abci.ExtendedVoteInfo 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_ExtendedVoteInfo) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.ExtendedVoteInfo", 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_ExtendedVoteInfo) 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_ExtendedVoteInfo) 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_ExtendedVoteInfo) 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_ExtendedVoteInfo) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*ExtendedVoteInfo)
		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.Validator != nil {
			l = options.Size(x.Validator)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.VoteExtension)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.ExtensionSignature)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.BlockIdFlag != 0 {
			n += 1 + runtime.Sov(uint64(x.BlockIdFlag))
		}
		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().(*ExtendedVoteInfo)
		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.BlockIdFlag != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.BlockIdFlag))
			i--
			dAtA[i] = 0x28
		}
		if len(x.ExtensionSignature) > 0 {
			i -= len(x.ExtensionSignature)
			copy(dAtA[i:], x.ExtensionSignature)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ExtensionSignature)))
			i--
			dAtA[i] = 0x22
		}
		if len(x.VoteExtension) > 0 {
			i -= len(x.VoteExtension)
			copy(dAtA[i:], x.VoteExtension)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.VoteExtension)))
			i--
			dAtA[i] = 0x1a
		}
		if x.Validator != nil {
			encoded, err := options.Marshal(x.Validator)
			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().(*ExtendedVoteInfo)
		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: ExtendedVoteInfo: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ExtendedVoteInfo: 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 Validator", 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.Validator == nil {
					x.Validator = &Validator{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Validator); 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 VoteExtension", 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.VoteExtension = append(x.VoteExtension[:0], dAtA[iNdEx:postIndex]...)
				if x.VoteExtension == nil {
					x.VoteExtension = []byte{}
				}
				iNdEx = postIndex
			case 4:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ExtensionSignature", 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.ExtensionSignature = append(x.ExtensionSignature[:0], dAtA[iNdEx:postIndex]...)
				if x.ExtensionSignature == nil {
					x.ExtensionSignature = []byte{}
				}
				iNdEx = postIndex
			case 5:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockIdFlag", wireType)
				}
				x.BlockIdFlag = 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.BlockIdFlag |= types.BlockIDFlag(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_Misbehavior                    protoreflect.MessageDescriptor
	fd_Misbehavior_type               protoreflect.FieldDescriptor
	fd_Misbehavior_validator          protoreflect.FieldDescriptor
	fd_Misbehavior_height             protoreflect.FieldDescriptor
	fd_Misbehavior_time               protoreflect.FieldDescriptor
	fd_Misbehavior_total_voting_power protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_Misbehavior = File_tendermint_abci_types_proto.Messages().ByName("Misbehavior")
	fd_Misbehavior_type = md_Misbehavior.Fields().ByName("type")
	fd_Misbehavior_validator = md_Misbehavior.Fields().ByName("validator")
	fd_Misbehavior_height = md_Misbehavior.Fields().ByName("height")
	fd_Misbehavior_time = md_Misbehavior.Fields().ByName("time")
	fd_Misbehavior_total_voting_power = md_Misbehavior.Fields().ByName("total_voting_power")
}

var _ protoreflect.Message = (*fastReflection_Misbehavior)(nil)

type fastReflection_Misbehavior Misbehavior

func (x *Misbehavior) ProtoReflect() protoreflect.Message {
	return (*fastReflection_Misbehavior)(x)
}

func (x *Misbehavior) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[45]
	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_Misbehavior_messageType fastReflection_Misbehavior_messageType
var _ protoreflect.MessageType = fastReflection_Misbehavior_messageType{}

type fastReflection_Misbehavior_messageType struct{}

func (x fastReflection_Misbehavior_messageType) Zero() protoreflect.Message {
	return (*fastReflection_Misbehavior)(nil)
}
func (x fastReflection_Misbehavior_messageType) New() protoreflect.Message {
	return new(fastReflection_Misbehavior)
}
func (x fastReflection_Misbehavior_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_Misbehavior
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_Misbehavior) Descriptor() protoreflect.MessageDescriptor {
	return md_Misbehavior
}

// 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_Misbehavior) Type() protoreflect.MessageType {
	return _fastReflection_Misbehavior_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_Misbehavior) New() protoreflect.Message {
	return new(fastReflection_Misbehavior)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_Misbehavior) Interface() protoreflect.ProtoMessage {
	return (*Misbehavior)(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_Misbehavior) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Type_ != 0 {
		value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Type_))
		if !f(fd_Misbehavior_type, value) {
			return
		}
	}
	if x.Validator != nil {
		value := protoreflect.ValueOfMessage(x.Validator.ProtoReflect())
		if !f(fd_Misbehavior_validator, value) {
			return
		}
	}
	if x.Height != int64(0) {
		value := protoreflect.ValueOfInt64(x.Height)
		if !f(fd_Misbehavior_height, value) {
			return
		}
	}
	if x.Time != nil {
		value := protoreflect.ValueOfMessage(x.Time.ProtoReflect())
		if !f(fd_Misbehavior_time, value) {
			return
		}
	}
	if x.TotalVotingPower != int64(0) {
		value := protoreflect.ValueOfInt64(x.TotalVotingPower)
		if !f(fd_Misbehavior_total_voting_power, 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_Misbehavior) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.Misbehavior.type":
		return x.Type_ != 0
	case "tendermint.abci.Misbehavior.validator":
		return x.Validator != nil
	case "tendermint.abci.Misbehavior.height":
		return x.Height != int64(0)
	case "tendermint.abci.Misbehavior.time":
		return x.Time != nil
	case "tendermint.abci.Misbehavior.total_voting_power":
		return x.TotalVotingPower != int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Misbehavior"))
		}
		panic(fmt.Errorf("message tendermint.abci.Misbehavior 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_Misbehavior) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.Misbehavior.type":
		x.Type_ = 0
	case "tendermint.abci.Misbehavior.validator":
		x.Validator = nil
	case "tendermint.abci.Misbehavior.height":
		x.Height = int64(0)
	case "tendermint.abci.Misbehavior.time":
		x.Time = nil
	case "tendermint.abci.Misbehavior.total_voting_power":
		x.TotalVotingPower = int64(0)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Misbehavior"))
		}
		panic(fmt.Errorf("message tendermint.abci.Misbehavior 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_Misbehavior) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.Misbehavior.type":
		value := x.Type_
		return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value))
	case "tendermint.abci.Misbehavior.validator":
		value := x.Validator
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Misbehavior.height":
		value := x.Height
		return protoreflect.ValueOfInt64(value)
	case "tendermint.abci.Misbehavior.time":
		value := x.Time
		return protoreflect.ValueOfMessage(value.ProtoReflect())
	case "tendermint.abci.Misbehavior.total_voting_power":
		value := x.TotalVotingPower
		return protoreflect.ValueOfInt64(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Misbehavior"))
		}
		panic(fmt.Errorf("message tendermint.abci.Misbehavior 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_Misbehavior) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.Misbehavior.type":
		x.Type_ = (MisbehaviorType)(value.Enum())
	case "tendermint.abci.Misbehavior.validator":
		x.Validator = value.Message().Interface().(*Validator)
	case "tendermint.abci.Misbehavior.height":
		x.Height = value.Int()
	case "tendermint.abci.Misbehavior.time":
		x.Time = value.Message().Interface().(*timestamppb.Timestamp)
	case "tendermint.abci.Misbehavior.total_voting_power":
		x.TotalVotingPower = value.Int()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Misbehavior"))
		}
		panic(fmt.Errorf("message tendermint.abci.Misbehavior 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_Misbehavior) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Misbehavior.validator":
		if x.Validator == nil {
			x.Validator = new(Validator)
		}
		return protoreflect.ValueOfMessage(x.Validator.ProtoReflect())
	case "tendermint.abci.Misbehavior.time":
		if x.Time == nil {
			x.Time = new(timestamppb.Timestamp)
		}
		return protoreflect.ValueOfMessage(x.Time.ProtoReflect())
	case "tendermint.abci.Misbehavior.type":
		panic(fmt.Errorf("field type of message tendermint.abci.Misbehavior is not mutable"))
	case "tendermint.abci.Misbehavior.height":
		panic(fmt.Errorf("field height of message tendermint.abci.Misbehavior is not mutable"))
	case "tendermint.abci.Misbehavior.total_voting_power":
		panic(fmt.Errorf("field total_voting_power of message tendermint.abci.Misbehavior is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Misbehavior"))
		}
		panic(fmt.Errorf("message tendermint.abci.Misbehavior 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_Misbehavior) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Misbehavior.type":
		return protoreflect.ValueOfEnum(0)
	case "tendermint.abci.Misbehavior.validator":
		m := new(Validator)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.Misbehavior.height":
		return protoreflect.ValueOfInt64(int64(0))
	case "tendermint.abci.Misbehavior.time":
		m := new(timestamppb.Timestamp)
		return protoreflect.ValueOfMessage(m.ProtoReflect())
	case "tendermint.abci.Misbehavior.total_voting_power":
		return protoreflect.ValueOfInt64(int64(0))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Misbehavior"))
		}
		panic(fmt.Errorf("message tendermint.abci.Misbehavior 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_Misbehavior) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.Misbehavior", 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_Misbehavior) 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_Misbehavior) 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_Misbehavior) 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_Misbehavior) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*Misbehavior)
		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.Type_ != 0 {
			n += 1 + runtime.Sov(uint64(x.Type_))
		}
		if x.Validator != nil {
			l = options.Size(x.Validator)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		if x.Time != nil {
			l = options.Size(x.Time)
			n += 1 + l + runtime.Sov(uint64(l))
		}
		if x.TotalVotingPower != 0 {
			n += 1 + runtime.Sov(uint64(x.TotalVotingPower))
		}
		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().(*Misbehavior)
		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.TotalVotingPower != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.TotalVotingPower))
			i--
			dAtA[i] = 0x28
		}
		if x.Time != nil {
			encoded, err := options.Marshal(x.Time)
			if err != nil {
				return protoiface.MarshalOutput{
					NoUnkeyedLiterals: input.NoUnkeyedLiterals,
					Buf:               input.Buf,
				}, err
			}
			i -= len(encoded)
			copy(dAtA[i:], encoded)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
			i--
			dAtA[i] = 0x22
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			i--
			dAtA[i] = 0x18
		}
		if x.Validator != nil {
			encoded, err := options.Marshal(x.Validator)
			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.Type_ != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Type_))
			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().(*Misbehavior)
		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: Misbehavior: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Misbehavior: 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 Type_", wireType)
				}
				x.Type_ = 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.Type_ |= MisbehaviorType(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 Validator", 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.Validator == nil {
					x.Validator = &Validator{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Validator); 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 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 |= int64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 4:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
				}
				var msglen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
					}
					if iNdEx >= l {
						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					msglen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if msglen < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				postIndex := iNdEx + msglen
				if postIndex < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if postIndex > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if x.Time == nil {
					x.Time = &timestamppb.Timestamp{}
				}
				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Time); err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				iNdEx = postIndex
			case 5:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TotalVotingPower", wireType)
				}
				x.TotalVotingPower = 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.TotalVotingPower |= 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_Snapshot          protoreflect.MessageDescriptor
	fd_Snapshot_height   protoreflect.FieldDescriptor
	fd_Snapshot_format   protoreflect.FieldDescriptor
	fd_Snapshot_chunks   protoreflect.FieldDescriptor
	fd_Snapshot_hash     protoreflect.FieldDescriptor
	fd_Snapshot_metadata protoreflect.FieldDescriptor
)

func init() {
	file_tendermint_abci_types_proto_init()
	md_Snapshot = File_tendermint_abci_types_proto.Messages().ByName("Snapshot")
	fd_Snapshot_height = md_Snapshot.Fields().ByName("height")
	fd_Snapshot_format = md_Snapshot.Fields().ByName("format")
	fd_Snapshot_chunks = md_Snapshot.Fields().ByName("chunks")
	fd_Snapshot_hash = md_Snapshot.Fields().ByName("hash")
	fd_Snapshot_metadata = md_Snapshot.Fields().ByName("metadata")
}

var _ protoreflect.Message = (*fastReflection_Snapshot)(nil)

type fastReflection_Snapshot Snapshot

func (x *Snapshot) ProtoReflect() protoreflect.Message {
	return (*fastReflection_Snapshot)(x)
}

func (x *Snapshot) slowProtoReflect() protoreflect.Message {
	mi := &file_tendermint_abci_types_proto_msgTypes[46]
	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_Snapshot_messageType fastReflection_Snapshot_messageType
var _ protoreflect.MessageType = fastReflection_Snapshot_messageType{}

type fastReflection_Snapshot_messageType struct{}

func (x fastReflection_Snapshot_messageType) Zero() protoreflect.Message {
	return (*fastReflection_Snapshot)(nil)
}
func (x fastReflection_Snapshot_messageType) New() protoreflect.Message {
	return new(fastReflection_Snapshot)
}
func (x fastReflection_Snapshot_messageType) Descriptor() protoreflect.MessageDescriptor {
	return md_Snapshot
}

// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_Snapshot) Descriptor() protoreflect.MessageDescriptor {
	return md_Snapshot
}

// 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_Snapshot) Type() protoreflect.MessageType {
	return _fastReflection_Snapshot_messageType
}

// New returns a newly allocated and mutable empty message.
func (x *fastReflection_Snapshot) New() protoreflect.Message {
	return new(fastReflection_Snapshot)
}

// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_Snapshot) Interface() protoreflect.ProtoMessage {
	return (*Snapshot)(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_Snapshot) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
	if x.Height != uint64(0) {
		value := protoreflect.ValueOfUint64(x.Height)
		if !f(fd_Snapshot_height, value) {
			return
		}
	}
	if x.Format != uint32(0) {
		value := protoreflect.ValueOfUint32(x.Format)
		if !f(fd_Snapshot_format, value) {
			return
		}
	}
	if x.Chunks != uint32(0) {
		value := protoreflect.ValueOfUint32(x.Chunks)
		if !f(fd_Snapshot_chunks, value) {
			return
		}
	}
	if len(x.Hash) != 0 {
		value := protoreflect.ValueOfBytes(x.Hash)
		if !f(fd_Snapshot_hash, value) {
			return
		}
	}
	if len(x.Metadata) != 0 {
		value := protoreflect.ValueOfBytes(x.Metadata)
		if !f(fd_Snapshot_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_Snapshot) Has(fd protoreflect.FieldDescriptor) bool {
	switch fd.FullName() {
	case "tendermint.abci.Snapshot.height":
		return x.Height != uint64(0)
	case "tendermint.abci.Snapshot.format":
		return x.Format != uint32(0)
	case "tendermint.abci.Snapshot.chunks":
		return x.Chunks != uint32(0)
	case "tendermint.abci.Snapshot.hash":
		return len(x.Hash) != 0
	case "tendermint.abci.Snapshot.metadata":
		return len(x.Metadata) != 0
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Snapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.Snapshot 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_Snapshot) Clear(fd protoreflect.FieldDescriptor) {
	switch fd.FullName() {
	case "tendermint.abci.Snapshot.height":
		x.Height = uint64(0)
	case "tendermint.abci.Snapshot.format":
		x.Format = uint32(0)
	case "tendermint.abci.Snapshot.chunks":
		x.Chunks = uint32(0)
	case "tendermint.abci.Snapshot.hash":
		x.Hash = nil
	case "tendermint.abci.Snapshot.metadata":
		x.Metadata = nil
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Snapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.Snapshot 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_Snapshot) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
	switch descriptor.FullName() {
	case "tendermint.abci.Snapshot.height":
		value := x.Height
		return protoreflect.ValueOfUint64(value)
	case "tendermint.abci.Snapshot.format":
		value := x.Format
		return protoreflect.ValueOfUint32(value)
	case "tendermint.abci.Snapshot.chunks":
		value := x.Chunks
		return protoreflect.ValueOfUint32(value)
	case "tendermint.abci.Snapshot.hash":
		value := x.Hash
		return protoreflect.ValueOfBytes(value)
	case "tendermint.abci.Snapshot.metadata":
		value := x.Metadata
		return protoreflect.ValueOfBytes(value)
	default:
		if descriptor.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Snapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.Snapshot 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_Snapshot) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
	switch fd.FullName() {
	case "tendermint.abci.Snapshot.height":
		x.Height = value.Uint()
	case "tendermint.abci.Snapshot.format":
		x.Format = uint32(value.Uint())
	case "tendermint.abci.Snapshot.chunks":
		x.Chunks = uint32(value.Uint())
	case "tendermint.abci.Snapshot.hash":
		x.Hash = value.Bytes()
	case "tendermint.abci.Snapshot.metadata":
		x.Metadata = value.Bytes()
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Snapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.Snapshot 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_Snapshot) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Snapshot.height":
		panic(fmt.Errorf("field height of message tendermint.abci.Snapshot is not mutable"))
	case "tendermint.abci.Snapshot.format":
		panic(fmt.Errorf("field format of message tendermint.abci.Snapshot is not mutable"))
	case "tendermint.abci.Snapshot.chunks":
		panic(fmt.Errorf("field chunks of message tendermint.abci.Snapshot is not mutable"))
	case "tendermint.abci.Snapshot.hash":
		panic(fmt.Errorf("field hash of message tendermint.abci.Snapshot is not mutable"))
	case "tendermint.abci.Snapshot.metadata":
		panic(fmt.Errorf("field metadata of message tendermint.abci.Snapshot is not mutable"))
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Snapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.Snapshot 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_Snapshot) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
	switch fd.FullName() {
	case "tendermint.abci.Snapshot.height":
		return protoreflect.ValueOfUint64(uint64(0))
	case "tendermint.abci.Snapshot.format":
		return protoreflect.ValueOfUint32(uint32(0))
	case "tendermint.abci.Snapshot.chunks":
		return protoreflect.ValueOfUint32(uint32(0))
	case "tendermint.abci.Snapshot.hash":
		return protoreflect.ValueOfBytes(nil)
	case "tendermint.abci.Snapshot.metadata":
		return protoreflect.ValueOfBytes(nil)
	default:
		if fd.IsExtension() {
			panic(fmt.Errorf("proto3 declared messages do not support extensions: tendermint.abci.Snapshot"))
		}
		panic(fmt.Errorf("message tendermint.abci.Snapshot 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_Snapshot) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
	switch d.FullName() {
	default:
		panic(fmt.Errorf("%s is not a oneof field in tendermint.abci.Snapshot", 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_Snapshot) 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_Snapshot) 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_Snapshot) 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_Snapshot) ProtoMethods() *protoiface.Methods {
	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
		x := input.Message.Interface().(*Snapshot)
		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.Height != 0 {
			n += 1 + runtime.Sov(uint64(x.Height))
		}
		if x.Format != 0 {
			n += 1 + runtime.Sov(uint64(x.Format))
		}
		if x.Chunks != 0 {
			n += 1 + runtime.Sov(uint64(x.Chunks))
		}
		l = len(x.Hash)
		if l > 0 {
			n += 1 + l + runtime.Sov(uint64(l))
		}
		l = len(x.Metadata)
		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().(*Snapshot)
		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.Metadata) > 0 {
			i -= len(x.Metadata)
			copy(dAtA[i:], x.Metadata)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Metadata)))
			i--
			dAtA[i] = 0x2a
		}
		if len(x.Hash) > 0 {
			i -= len(x.Hash)
			copy(dAtA[i:], x.Hash)
			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Hash)))
			i--
			dAtA[i] = 0x22
		}
		if x.Chunks != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Chunks))
			i--
			dAtA[i] = 0x18
		}
		if x.Format != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Format))
			i--
			dAtA[i] = 0x10
		}
		if x.Height != 0 {
			i = runtime.EncodeVarint(dAtA, i, uint64(x.Height))
			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().(*Snapshot)
		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: Snapshot: wiretype end group for non-group")
			}
			if fieldNum <= 0 {
				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Snapshot: 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 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 2:
				if wireType != 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Format", wireType)
				}
				x.Format = 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.Format |= 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 Chunks", wireType)
				}
				x.Chunks = 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.Chunks |= uint32(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
			case 4:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Hash", 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.Hash = append(x.Hash[:0], dAtA[iNdEx:postIndex]...)
				if x.Hash == nil {
					x.Hash = []byte{}
				}
				iNdEx = postIndex
			case 5:
				if wireType != 2 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Metadata", 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.Metadata = append(x.Metadata[:0], dAtA[iNdEx:postIndex]...)
				if x.Metadata == nil {
					x.Metadata = []byte{}
				}
				iNdEx = postIndex
			default:
				iNdEx = preIndex
				skippy, err := runtime.Skip(dAtA[iNdEx:])
				if err != nil {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
				}
				if (skippy < 0) || (iNdEx+skippy) < 0 {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
				}
				if (iNdEx + skippy) > l {
					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
				}
				if !options.DiscardUnknown {
					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
				}
				iNdEx += skippy
			}
		}

		if iNdEx > l {
			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
		}
		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
	}
	return &protoiface.Methods{
		NoUnkeyedLiterals: struct{}{},
		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
		Size:              size,
		Marshal:           marshal,
		Unmarshal:         unmarshal,
		Merge:             nil,
		CheckInitialized:  nil,
	}
}

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.27.0
// 	protoc        (unknown)
// source: tendermint/abci/types.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)
)

type CheckTxType int32

const (
	CheckTxType_NEW     CheckTxType = 0
	CheckTxType_RECHECK CheckTxType = 1
)

// Enum value maps for CheckTxType.
var (
	CheckTxType_name = map[int32]string{
		0: "NEW",
		1: "RECHECK",
	}
	CheckTxType_value = map[string]int32{
		"NEW":     0,
		"RECHECK": 1,
	}
)

func (x CheckTxType) Enum() *CheckTxType {
	p := new(CheckTxType)
	*p = x
	return p
}

func (x CheckTxType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CheckTxType) Descriptor() protoreflect.EnumDescriptor {
	return file_tendermint_abci_types_proto_enumTypes[0].Descriptor()
}

func (CheckTxType) Type() protoreflect.EnumType {
	return &file_tendermint_abci_types_proto_enumTypes[0]
}

func (x CheckTxType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CheckTxType.Descriptor instead.
func (CheckTxType) EnumDescriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{0}
}

type MisbehaviorType int32

const (
	MisbehaviorType_UNKNOWN             MisbehaviorType = 0
	MisbehaviorType_DUPLICATE_VOTE      MisbehaviorType = 1
	MisbehaviorType_LIGHT_CLIENT_ATTACK MisbehaviorType = 2
)

// Enum value maps for MisbehaviorType.
var (
	MisbehaviorType_name = map[int32]string{
		0: "UNKNOWN",
		1: "DUPLICATE_VOTE",
		2: "LIGHT_CLIENT_ATTACK",
	}
	MisbehaviorType_value = map[string]int32{
		"UNKNOWN":             0,
		"DUPLICATE_VOTE":      1,
		"LIGHT_CLIENT_ATTACK": 2,
	}
)

func (x MisbehaviorType) Enum() *MisbehaviorType {
	p := new(MisbehaviorType)
	*p = x
	return p
}

func (x MisbehaviorType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (MisbehaviorType) Descriptor() protoreflect.EnumDescriptor {
	return file_tendermint_abci_types_proto_enumTypes[1].Descriptor()
}

func (MisbehaviorType) Type() protoreflect.EnumType {
	return &file_tendermint_abci_types_proto_enumTypes[1]
}

func (x MisbehaviorType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use MisbehaviorType.Descriptor instead.
func (MisbehaviorType) EnumDescriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{1}
}

type ResponseOfferSnapshot_Result int32

const (
	ResponseOfferSnapshot_UNKNOWN       ResponseOfferSnapshot_Result = 0 // Unknown result, abort all snapshot restoration
	ResponseOfferSnapshot_ACCEPT        ResponseOfferSnapshot_Result = 1 // Snapshot accepted, apply chunks
	ResponseOfferSnapshot_ABORT         ResponseOfferSnapshot_Result = 2 // Abort all snapshot restoration
	ResponseOfferSnapshot_REJECT        ResponseOfferSnapshot_Result = 3 // Reject this specific snapshot, try others
	ResponseOfferSnapshot_REJECT_FORMAT ResponseOfferSnapshot_Result = 4 // Reject all snapshots of this format, try others
	ResponseOfferSnapshot_REJECT_SENDER ResponseOfferSnapshot_Result = 5 // Reject all snapshots from the sender(s), try others
)

// Enum value maps for ResponseOfferSnapshot_Result.
var (
	ResponseOfferSnapshot_Result_name = map[int32]string{
		0: "UNKNOWN",
		1: "ACCEPT",
		2: "ABORT",
		3: "REJECT",
		4: "REJECT_FORMAT",
		5: "REJECT_SENDER",
	}
	ResponseOfferSnapshot_Result_value = map[string]int32{
		"UNKNOWN":       0,
		"ACCEPT":        1,
		"ABORT":         2,
		"REJECT":        3,
		"REJECT_FORMAT": 4,
		"REJECT_SENDER": 5,
	}
)

func (x ResponseOfferSnapshot_Result) Enum() *ResponseOfferSnapshot_Result {
	p := new(ResponseOfferSnapshot_Result)
	*p = x
	return p
}

func (x ResponseOfferSnapshot_Result) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ResponseOfferSnapshot_Result) Descriptor() protoreflect.EnumDescriptor {
	return file_tendermint_abci_types_proto_enumTypes[2].Descriptor()
}

func (ResponseOfferSnapshot_Result) Type() protoreflect.EnumType {
	return &file_tendermint_abci_types_proto_enumTypes[2]
}

func (x ResponseOfferSnapshot_Result) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ResponseOfferSnapshot_Result.Descriptor instead.
func (ResponseOfferSnapshot_Result) EnumDescriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{27, 0}
}

type ResponseApplySnapshotChunk_Result int32

const (
	ResponseApplySnapshotChunk_UNKNOWN         ResponseApplySnapshotChunk_Result = 0 // Unknown result, abort all snapshot restoration
	ResponseApplySnapshotChunk_ACCEPT          ResponseApplySnapshotChunk_Result = 1 // Chunk successfully accepted
	ResponseApplySnapshotChunk_ABORT           ResponseApplySnapshotChunk_Result = 2 // Abort all snapshot restoration
	ResponseApplySnapshotChunk_RETRY           ResponseApplySnapshotChunk_Result = 3 // Retry chunk (combine with refetch and reject)
	ResponseApplySnapshotChunk_RETRY_SNAPSHOT  ResponseApplySnapshotChunk_Result = 4 // Retry snapshot (combine with refetch and reject)
	ResponseApplySnapshotChunk_REJECT_SNAPSHOT ResponseApplySnapshotChunk_Result = 5 // Reject this snapshot, try others
)

// Enum value maps for ResponseApplySnapshotChunk_Result.
var (
	ResponseApplySnapshotChunk_Result_name = map[int32]string{
		0: "UNKNOWN",
		1: "ACCEPT",
		2: "ABORT",
		3: "RETRY",
		4: "RETRY_SNAPSHOT",
		5: "REJECT_SNAPSHOT",
	}
	ResponseApplySnapshotChunk_Result_value = map[string]int32{
		"UNKNOWN":         0,
		"ACCEPT":          1,
		"ABORT":           2,
		"RETRY":           3,
		"RETRY_SNAPSHOT":  4,
		"REJECT_SNAPSHOT": 5,
	}
)

func (x ResponseApplySnapshotChunk_Result) Enum() *ResponseApplySnapshotChunk_Result {
	p := new(ResponseApplySnapshotChunk_Result)
	*p = x
	return p
}

func (x ResponseApplySnapshotChunk_Result) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ResponseApplySnapshotChunk_Result) Descriptor() protoreflect.EnumDescriptor {
	return file_tendermint_abci_types_proto_enumTypes[3].Descriptor()
}

func (ResponseApplySnapshotChunk_Result) Type() protoreflect.EnumType {
	return &file_tendermint_abci_types_proto_enumTypes[3]
}

func (x ResponseApplySnapshotChunk_Result) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ResponseApplySnapshotChunk_Result.Descriptor instead.
func (ResponseApplySnapshotChunk_Result) EnumDescriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{29, 0}
}

type ResponseProcessProposal_ProposalStatus int32

const (
	ResponseProcessProposal_UNKNOWN ResponseProcessProposal_ProposalStatus = 0
	ResponseProcessProposal_ACCEPT  ResponseProcessProposal_ProposalStatus = 1
	ResponseProcessProposal_REJECT  ResponseProcessProposal_ProposalStatus = 2
)

// Enum value maps for ResponseProcessProposal_ProposalStatus.
var (
	ResponseProcessProposal_ProposalStatus_name = map[int32]string{
		0: "UNKNOWN",
		1: "ACCEPT",
		2: "REJECT",
	}
	ResponseProcessProposal_ProposalStatus_value = map[string]int32{
		"UNKNOWN": 0,
		"ACCEPT":  1,
		"REJECT":  2,
	}
)

func (x ResponseProcessProposal_ProposalStatus) Enum() *ResponseProcessProposal_ProposalStatus {
	p := new(ResponseProcessProposal_ProposalStatus)
	*p = x
	return p
}

func (x ResponseProcessProposal_ProposalStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ResponseProcessProposal_ProposalStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_tendermint_abci_types_proto_enumTypes[4].Descriptor()
}

func (ResponseProcessProposal_ProposalStatus) Type() protoreflect.EnumType {
	return &file_tendermint_abci_types_proto_enumTypes[4]
}

func (x ResponseProcessProposal_ProposalStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ResponseProcessProposal_ProposalStatus.Descriptor instead.
func (ResponseProcessProposal_ProposalStatus) EnumDescriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{31, 0}
}

type ResponseVerifyVoteExtension_VerifyStatus int32

const (
	ResponseVerifyVoteExtension_UNKNOWN ResponseVerifyVoteExtension_VerifyStatus = 0
	ResponseVerifyVoteExtension_ACCEPT  ResponseVerifyVoteExtension_VerifyStatus = 1
	// Rejecting the vote extension will reject the entire precommit by the sender.
	// Incorrectly implementing this thus has liveness implications as it may affect
	// CometBFT's ability to receive 2/3+ valid votes to finalize the block.
	// Honest nodes should never be rejected.
	ResponseVerifyVoteExtension_REJECT ResponseVerifyVoteExtension_VerifyStatus = 2
)

// Enum value maps for ResponseVerifyVoteExtension_VerifyStatus.
var (
	ResponseVerifyVoteExtension_VerifyStatus_name = map[int32]string{
		0: "UNKNOWN",
		1: "ACCEPT",
		2: "REJECT",
	}
	ResponseVerifyVoteExtension_VerifyStatus_value = map[string]int32{
		"UNKNOWN": 0,
		"ACCEPT":  1,
		"REJECT":  2,
	}
)

func (x ResponseVerifyVoteExtension_VerifyStatus) Enum() *ResponseVerifyVoteExtension_VerifyStatus {
	p := new(ResponseVerifyVoteExtension_VerifyStatus)
	*p = x
	return p
}

func (x ResponseVerifyVoteExtension_VerifyStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ResponseVerifyVoteExtension_VerifyStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_tendermint_abci_types_proto_enumTypes[5].Descriptor()
}

func (ResponseVerifyVoteExtension_VerifyStatus) Type() protoreflect.EnumType {
	return &file_tendermint_abci_types_proto_enumTypes[5]
}

func (x ResponseVerifyVoteExtension_VerifyStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ResponseVerifyVoteExtension_VerifyStatus.Descriptor instead.
func (ResponseVerifyVoteExtension_VerifyStatus) EnumDescriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{33, 0}
}

type Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//
	//	*Request_Echo
	//	*Request_Flush
	//	*Request_Info
	//	*Request_InitChain
	//	*Request_Query
	//	*Request_CheckTx
	//	*Request_Commit
	//	*Request_ListSnapshots
	//	*Request_OfferSnapshot
	//	*Request_LoadSnapshotChunk
	//	*Request_ApplySnapshotChunk
	//	*Request_PrepareProposal
	//	*Request_ProcessProposal
	//	*Request_ExtendVote
	//	*Request_VerifyVoteExtension
	//	*Request_FinalizeBlock
	Value isRequest_Value `protobuf_oneof:"value"`
}

func (x *Request) Reset() {
	*x = Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Request) ProtoMessage() {}

// Deprecated: Use Request.ProtoReflect.Descriptor instead.
func (*Request) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{0}
}

func (x *Request) GetValue() isRequest_Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *Request) GetEcho() *RequestEcho {
	if x, ok := x.GetValue().(*Request_Echo); ok {
		return x.Echo
	}
	return nil
}

func (x *Request) GetFlush() *RequestFlush {
	if x, ok := x.GetValue().(*Request_Flush); ok {
		return x.Flush
	}
	return nil
}

func (x *Request) GetInfo() *RequestInfo {
	if x, ok := x.GetValue().(*Request_Info); ok {
		return x.Info
	}
	return nil
}

func (x *Request) GetInitChain() *RequestInitChain {
	if x, ok := x.GetValue().(*Request_InitChain); ok {
		return x.InitChain
	}
	return nil
}

func (x *Request) GetQuery() *RequestQuery {
	if x, ok := x.GetValue().(*Request_Query); ok {
		return x.Query
	}
	return nil
}

func (x *Request) GetCheckTx() *RequestCheckTx {
	if x, ok := x.GetValue().(*Request_CheckTx); ok {
		return x.CheckTx
	}
	return nil
}

func (x *Request) GetCommit() *RequestCommit {
	if x, ok := x.GetValue().(*Request_Commit); ok {
		return x.Commit
	}
	return nil
}

func (x *Request) GetListSnapshots() *RequestListSnapshots {
	if x, ok := x.GetValue().(*Request_ListSnapshots); ok {
		return x.ListSnapshots
	}
	return nil
}

func (x *Request) GetOfferSnapshot() *RequestOfferSnapshot {
	if x, ok := x.GetValue().(*Request_OfferSnapshot); ok {
		return x.OfferSnapshot
	}
	return nil
}

func (x *Request) GetLoadSnapshotChunk() *RequestLoadSnapshotChunk {
	if x, ok := x.GetValue().(*Request_LoadSnapshotChunk); ok {
		return x.LoadSnapshotChunk
	}
	return nil
}

func (x *Request) GetApplySnapshotChunk() *RequestApplySnapshotChunk {
	if x, ok := x.GetValue().(*Request_ApplySnapshotChunk); ok {
		return x.ApplySnapshotChunk
	}
	return nil
}

func (x *Request) GetPrepareProposal() *RequestPrepareProposal {
	if x, ok := x.GetValue().(*Request_PrepareProposal); ok {
		return x.PrepareProposal
	}
	return nil
}

func (x *Request) GetProcessProposal() *RequestProcessProposal {
	if x, ok := x.GetValue().(*Request_ProcessProposal); ok {
		return x.ProcessProposal
	}
	return nil
}

func (x *Request) GetExtendVote() *RequestExtendVote {
	if x, ok := x.GetValue().(*Request_ExtendVote); ok {
		return x.ExtendVote
	}
	return nil
}

func (x *Request) GetVerifyVoteExtension() *RequestVerifyVoteExtension {
	if x, ok := x.GetValue().(*Request_VerifyVoteExtension); ok {
		return x.VerifyVoteExtension
	}
	return nil
}

func (x *Request) GetFinalizeBlock() *RequestFinalizeBlock {
	if x, ok := x.GetValue().(*Request_FinalizeBlock); ok {
		return x.FinalizeBlock
	}
	return nil
}

type isRequest_Value interface {
	isRequest_Value()
}

type Request_Echo struct {
	Echo *RequestEcho `protobuf:"bytes,1,opt,name=echo,proto3,oneof"`
}

type Request_Flush struct {
	Flush *RequestFlush `protobuf:"bytes,2,opt,name=flush,proto3,oneof"`
}

type Request_Info struct {
	Info *RequestInfo `protobuf:"bytes,3,opt,name=info,proto3,oneof"`
}

type Request_InitChain struct {
	InitChain *RequestInitChain `protobuf:"bytes,5,opt,name=init_chain,json=initChain,proto3,oneof"`
}

type Request_Query struct {
	Query *RequestQuery `protobuf:"bytes,6,opt,name=query,proto3,oneof"`
}

type Request_CheckTx struct {
	CheckTx *RequestCheckTx `protobuf:"bytes,8,opt,name=check_tx,json=checkTx,proto3,oneof"`
}

type Request_Commit struct {
	Commit *RequestCommit `protobuf:"bytes,11,opt,name=commit,proto3,oneof"`
}

type Request_ListSnapshots struct {
	ListSnapshots *RequestListSnapshots `protobuf:"bytes,12,opt,name=list_snapshots,json=listSnapshots,proto3,oneof"`
}

type Request_OfferSnapshot struct {
	OfferSnapshot *RequestOfferSnapshot `protobuf:"bytes,13,opt,name=offer_snapshot,json=offerSnapshot,proto3,oneof"`
}

type Request_LoadSnapshotChunk struct {
	LoadSnapshotChunk *RequestLoadSnapshotChunk `protobuf:"bytes,14,opt,name=load_snapshot_chunk,json=loadSnapshotChunk,proto3,oneof"`
}

type Request_ApplySnapshotChunk struct {
	ApplySnapshotChunk *RequestApplySnapshotChunk `protobuf:"bytes,15,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof"`
}

type Request_PrepareProposal struct {
	PrepareProposal *RequestPrepareProposal `protobuf:"bytes,16,opt,name=prepare_proposal,json=prepareProposal,proto3,oneof"`
}

type Request_ProcessProposal struct {
	ProcessProposal *RequestProcessProposal `protobuf:"bytes,17,opt,name=process_proposal,json=processProposal,proto3,oneof"`
}

type Request_ExtendVote struct {
	ExtendVote *RequestExtendVote `protobuf:"bytes,18,opt,name=extend_vote,json=extendVote,proto3,oneof"`
}

type Request_VerifyVoteExtension struct {
	VerifyVoteExtension *RequestVerifyVoteExtension `protobuf:"bytes,19,opt,name=verify_vote_extension,json=verifyVoteExtension,proto3,oneof"`
}

type Request_FinalizeBlock struct {
	FinalizeBlock *RequestFinalizeBlock `protobuf:"bytes,20,opt,name=finalize_block,json=finalizeBlock,proto3,oneof"`
}

func (*Request_Echo) isRequest_Value() {}

func (*Request_Flush) isRequest_Value() {}

func (*Request_Info) isRequest_Value() {}

func (*Request_InitChain) isRequest_Value() {}

func (*Request_Query) isRequest_Value() {}

func (*Request_CheckTx) isRequest_Value() {}

func (*Request_Commit) isRequest_Value() {}

func (*Request_ListSnapshots) isRequest_Value() {}

func (*Request_OfferSnapshot) isRequest_Value() {}

func (*Request_LoadSnapshotChunk) isRequest_Value() {}

func (*Request_ApplySnapshotChunk) isRequest_Value() {}

func (*Request_PrepareProposal) isRequest_Value() {}

func (*Request_ProcessProposal) isRequest_Value() {}

func (*Request_ExtendVote) isRequest_Value() {}

func (*Request_VerifyVoteExtension) isRequest_Value() {}

func (*Request_FinalizeBlock) isRequest_Value() {}

type RequestEcho struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *RequestEcho) Reset() {
	*x = RequestEcho{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestEcho) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestEcho) ProtoMessage() {}

// Deprecated: Use RequestEcho.ProtoReflect.Descriptor instead.
func (*RequestEcho) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{1}
}

func (x *RequestEcho) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

type RequestFlush struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *RequestFlush) Reset() {
	*x = RequestFlush{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestFlush) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestFlush) ProtoMessage() {}

// Deprecated: Use RequestFlush.ProtoReflect.Descriptor instead.
func (*RequestFlush) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{2}
}

type RequestInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Version      string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	BlockVersion uint64 `protobuf:"varint,2,opt,name=block_version,json=blockVersion,proto3" json:"block_version,omitempty"`
	P2PVersion   uint64 `protobuf:"varint,3,opt,name=p2p_version,json=p2pVersion,proto3" json:"p2p_version,omitempty"`
	AbciVersion  string `protobuf:"bytes,4,opt,name=abci_version,json=abciVersion,proto3" json:"abci_version,omitempty"`
}

func (x *RequestInfo) Reset() {
	*x = RequestInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestInfo) ProtoMessage() {}

// Deprecated: Use RequestInfo.ProtoReflect.Descriptor instead.
func (*RequestInfo) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{3}
}

func (x *RequestInfo) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *RequestInfo) GetBlockVersion() uint64 {
	if x != nil {
		return x.BlockVersion
	}
	return 0
}

func (x *RequestInfo) GetP2PVersion() uint64 {
	if x != nil {
		return x.P2PVersion
	}
	return 0
}

func (x *RequestInfo) GetAbciVersion() string {
	if x != nil {
		return x.AbciVersion
	}
	return ""
}

type RequestInitChain struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Time            *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
	ChainId         string                 `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	ConsensusParams *types.ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"`
	Validators      []*ValidatorUpdate     `protobuf:"bytes,4,rep,name=validators,proto3" json:"validators,omitempty"`
	AppStateBytes   []byte                 `protobuf:"bytes,5,opt,name=app_state_bytes,json=appStateBytes,proto3" json:"app_state_bytes,omitempty"`
	InitialHeight   int64                  `protobuf:"varint,6,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height,omitempty"`
}

func (x *RequestInitChain) Reset() {
	*x = RequestInitChain{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestInitChain) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestInitChain) ProtoMessage() {}

// Deprecated: Use RequestInitChain.ProtoReflect.Descriptor instead.
func (*RequestInitChain) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{4}
}

func (x *RequestInitChain) GetTime() *timestamppb.Timestamp {
	if x != nil {
		return x.Time
	}
	return nil
}

func (x *RequestInitChain) GetChainId() string {
	if x != nil {
		return x.ChainId
	}
	return ""
}

func (x *RequestInitChain) GetConsensusParams() *types.ConsensusParams {
	if x != nil {
		return x.ConsensusParams
	}
	return nil
}

func (x *RequestInitChain) GetValidators() []*ValidatorUpdate {
	if x != nil {
		return x.Validators
	}
	return nil
}

func (x *RequestInitChain) GetAppStateBytes() []byte {
	if x != nil {
		return x.AppStateBytes
	}
	return nil
}

func (x *RequestInitChain) GetInitialHeight() int64 {
	if x != nil {
		return x.InitialHeight
	}
	return 0
}

type RequestQuery struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Data   []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Path   string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	Height int64  `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	Prove  bool   `protobuf:"varint,4,opt,name=prove,proto3" json:"prove,omitempty"`
}

func (x *RequestQuery) Reset() {
	*x = RequestQuery{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestQuery) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestQuery) ProtoMessage() {}

// Deprecated: Use RequestQuery.ProtoReflect.Descriptor instead.
func (*RequestQuery) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{5}
}

func (x *RequestQuery) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *RequestQuery) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *RequestQuery) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *RequestQuery) GetProve() bool {
	if x != nil {
		return x.Prove
	}
	return false
}

type RequestCheckTx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Tx    []byte      `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
	Type_ CheckTxType `protobuf:"varint,2,opt,name=type,proto3,enum=tendermint.abci.CheckTxType" json:"type,omitempty"`
}

func (x *RequestCheckTx) Reset() {
	*x = RequestCheckTx{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestCheckTx) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestCheckTx) ProtoMessage() {}

// Deprecated: Use RequestCheckTx.ProtoReflect.Descriptor instead.
func (*RequestCheckTx) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{6}
}

func (x *RequestCheckTx) GetTx() []byte {
	if x != nil {
		return x.Tx
	}
	return nil
}

func (x *RequestCheckTx) GetType_() CheckTxType {
	if x != nil {
		return x.Type_
	}
	return CheckTxType_NEW
}

type RequestCommit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *RequestCommit) Reset() {
	*x = RequestCommit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestCommit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestCommit) ProtoMessage() {}

// Deprecated: Use RequestCommit.ProtoReflect.Descriptor instead.
func (*RequestCommit) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{7}
}

// lists available snapshots
type RequestListSnapshots struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *RequestListSnapshots) Reset() {
	*x = RequestListSnapshots{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestListSnapshots) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestListSnapshots) ProtoMessage() {}

// Deprecated: Use RequestListSnapshots.ProtoReflect.Descriptor instead.
func (*RequestListSnapshots) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{8}
}

// offers a snapshot to the application
type RequestOfferSnapshot struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"`              // snapshot offered by peers
	AppHash  []byte    `protobuf:"bytes,2,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` // light client-verified app hash for snapshot height
}

func (x *RequestOfferSnapshot) Reset() {
	*x = RequestOfferSnapshot{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestOfferSnapshot) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestOfferSnapshot) ProtoMessage() {}

// Deprecated: Use RequestOfferSnapshot.ProtoReflect.Descriptor instead.
func (*RequestOfferSnapshot) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{9}
}

func (x *RequestOfferSnapshot) GetSnapshot() *Snapshot {
	if x != nil {
		return x.Snapshot
	}
	return nil
}

func (x *RequestOfferSnapshot) GetAppHash() []byte {
	if x != nil {
		return x.AppHash
	}
	return nil
}

// loads a snapshot chunk
type RequestLoadSnapshotChunk struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"`
	Chunk  uint32 `protobuf:"varint,3,opt,name=chunk,proto3" json:"chunk,omitempty"`
}

func (x *RequestLoadSnapshotChunk) Reset() {
	*x = RequestLoadSnapshotChunk{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestLoadSnapshotChunk) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestLoadSnapshotChunk) ProtoMessage() {}

// Deprecated: Use RequestLoadSnapshotChunk.ProtoReflect.Descriptor instead.
func (*RequestLoadSnapshotChunk) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{10}
}

func (x *RequestLoadSnapshotChunk) GetHeight() uint64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *RequestLoadSnapshotChunk) GetFormat() uint32 {
	if x != nil {
		return x.Format
	}
	return 0
}

func (x *RequestLoadSnapshotChunk) GetChunk() uint32 {
	if x != nil {
		return x.Chunk
	}
	return 0
}

// Applies a snapshot chunk
type RequestApplySnapshotChunk struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Index  uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	Chunk  []byte `protobuf:"bytes,2,opt,name=chunk,proto3" json:"chunk,omitempty"`
	Sender string `protobuf:"bytes,3,opt,name=sender,proto3" json:"sender,omitempty"`
}

func (x *RequestApplySnapshotChunk) Reset() {
	*x = RequestApplySnapshotChunk{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestApplySnapshotChunk) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestApplySnapshotChunk) ProtoMessage() {}

// Deprecated: Use RequestApplySnapshotChunk.ProtoReflect.Descriptor instead.
func (*RequestApplySnapshotChunk) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{11}
}

func (x *RequestApplySnapshotChunk) GetIndex() uint32 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *RequestApplySnapshotChunk) GetChunk() []byte {
	if x != nil {
		return x.Chunk
	}
	return nil
}

func (x *RequestApplySnapshotChunk) GetSender() string {
	if x != nil {
		return x.Sender
	}
	return ""
}

type RequestPrepareProposal struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// the modified transactions cannot exceed this size.
	MaxTxBytes int64 `protobuf:"varint,1,opt,name=max_tx_bytes,json=maxTxBytes,proto3" json:"max_tx_bytes,omitempty"`
	// txs is an array of transactions that will be included in a block,
	// sent to the app for possible modifications.
	Txs                [][]byte               `protobuf:"bytes,2,rep,name=txs,proto3" json:"txs,omitempty"`
	LocalLastCommit    *ExtendedCommitInfo    `protobuf:"bytes,3,opt,name=local_last_commit,json=localLastCommit,proto3" json:"local_last_commit,omitempty"`
	Misbehavior        []*Misbehavior         `protobuf:"bytes,4,rep,name=misbehavior,proto3" json:"misbehavior,omitempty"`
	Height             int64                  `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"`
	Time               *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=time,proto3" json:"time,omitempty"`
	NextValidatorsHash []byte                 `protobuf:"bytes,7,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"`
	// address of the public key of the validator proposing the block.
	ProposerAddress []byte `protobuf:"bytes,8,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"`
}

func (x *RequestPrepareProposal) Reset() {
	*x = RequestPrepareProposal{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestPrepareProposal) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestPrepareProposal) ProtoMessage() {}

// Deprecated: Use RequestPrepareProposal.ProtoReflect.Descriptor instead.
func (*RequestPrepareProposal) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{12}
}

func (x *RequestPrepareProposal) GetMaxTxBytes() int64 {
	if x != nil {
		return x.MaxTxBytes
	}
	return 0
}

func (x *RequestPrepareProposal) GetTxs() [][]byte {
	if x != nil {
		return x.Txs
	}
	return nil
}

func (x *RequestPrepareProposal) GetLocalLastCommit() *ExtendedCommitInfo {
	if x != nil {
		return x.LocalLastCommit
	}
	return nil
}

func (x *RequestPrepareProposal) GetMisbehavior() []*Misbehavior {
	if x != nil {
		return x.Misbehavior
	}
	return nil
}

func (x *RequestPrepareProposal) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *RequestPrepareProposal) GetTime() *timestamppb.Timestamp {
	if x != nil {
		return x.Time
	}
	return nil
}

func (x *RequestPrepareProposal) GetNextValidatorsHash() []byte {
	if x != nil {
		return x.NextValidatorsHash
	}
	return nil
}

func (x *RequestPrepareProposal) GetProposerAddress() []byte {
	if x != nil {
		return x.ProposerAddress
	}
	return nil
}

type RequestProcessProposal struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Txs                [][]byte       `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"`
	ProposedLastCommit *CommitInfo    `protobuf:"bytes,2,opt,name=proposed_last_commit,json=proposedLastCommit,proto3" json:"proposed_last_commit,omitempty"`
	Misbehavior        []*Misbehavior `protobuf:"bytes,3,rep,name=misbehavior,proto3" json:"misbehavior,omitempty"`
	// hash is the merkle root hash of the fields of the proposed block.
	Hash               []byte                 `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"`
	Height             int64                  `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"`
	Time               *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=time,proto3" json:"time,omitempty"`
	NextValidatorsHash []byte                 `protobuf:"bytes,7,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"`
	// address of the public key of the original proposer of the block.
	ProposerAddress []byte `protobuf:"bytes,8,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"`
}

func (x *RequestProcessProposal) Reset() {
	*x = RequestProcessProposal{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestProcessProposal) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestProcessProposal) ProtoMessage() {}

// Deprecated: Use RequestProcessProposal.ProtoReflect.Descriptor instead.
func (*RequestProcessProposal) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{13}
}

func (x *RequestProcessProposal) GetTxs() [][]byte {
	if x != nil {
		return x.Txs
	}
	return nil
}

func (x *RequestProcessProposal) GetProposedLastCommit() *CommitInfo {
	if x != nil {
		return x.ProposedLastCommit
	}
	return nil
}

func (x *RequestProcessProposal) GetMisbehavior() []*Misbehavior {
	if x != nil {
		return x.Misbehavior
	}
	return nil
}

func (x *RequestProcessProposal) GetHash() []byte {
	if x != nil {
		return x.Hash
	}
	return nil
}

func (x *RequestProcessProposal) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *RequestProcessProposal) GetTime() *timestamppb.Timestamp {
	if x != nil {
		return x.Time
	}
	return nil
}

func (x *RequestProcessProposal) GetNextValidatorsHash() []byte {
	if x != nil {
		return x.NextValidatorsHash
	}
	return nil
}

func (x *RequestProcessProposal) GetProposerAddress() []byte {
	if x != nil {
		return x.ProposerAddress
	}
	return nil
}

// Extends a vote with application-injected data
type RequestExtendVote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// the hash of the block that this vote may be referring to
	Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	// the height of the extended vote
	Height int64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
	// info of the block that this vote may be referring to
	Time               *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
	Txs                [][]byte               `protobuf:"bytes,4,rep,name=txs,proto3" json:"txs,omitempty"`
	ProposedLastCommit *CommitInfo            `protobuf:"bytes,5,opt,name=proposed_last_commit,json=proposedLastCommit,proto3" json:"proposed_last_commit,omitempty"`
	Misbehavior        []*Misbehavior         `protobuf:"bytes,6,rep,name=misbehavior,proto3" json:"misbehavior,omitempty"`
	NextValidatorsHash []byte                 `protobuf:"bytes,7,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"`
	// address of the public key of the original proposer of the block.
	ProposerAddress []byte `protobuf:"bytes,8,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"`
}

func (x *RequestExtendVote) Reset() {
	*x = RequestExtendVote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestExtendVote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestExtendVote) ProtoMessage() {}

// Deprecated: Use RequestExtendVote.ProtoReflect.Descriptor instead.
func (*RequestExtendVote) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{14}
}

func (x *RequestExtendVote) GetHash() []byte {
	if x != nil {
		return x.Hash
	}
	return nil
}

func (x *RequestExtendVote) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *RequestExtendVote) GetTime() *timestamppb.Timestamp {
	if x != nil {
		return x.Time
	}
	return nil
}

func (x *RequestExtendVote) GetTxs() [][]byte {
	if x != nil {
		return x.Txs
	}
	return nil
}

func (x *RequestExtendVote) GetProposedLastCommit() *CommitInfo {
	if x != nil {
		return x.ProposedLastCommit
	}
	return nil
}

func (x *RequestExtendVote) GetMisbehavior() []*Misbehavior {
	if x != nil {
		return x.Misbehavior
	}
	return nil
}

func (x *RequestExtendVote) GetNextValidatorsHash() []byte {
	if x != nil {
		return x.NextValidatorsHash
	}
	return nil
}

func (x *RequestExtendVote) GetProposerAddress() []byte {
	if x != nil {
		return x.ProposerAddress
	}
	return nil
}

// Verify the vote extension
type RequestVerifyVoteExtension struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// the hash of the block that this received vote corresponds to
	Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	// the validator that signed the vote extension
	ValidatorAddress []byte `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
	Height           int64  `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	VoteExtension    []byte `protobuf:"bytes,4,opt,name=vote_extension,json=voteExtension,proto3" json:"vote_extension,omitempty"`
}

func (x *RequestVerifyVoteExtension) Reset() {
	*x = RequestVerifyVoteExtension{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestVerifyVoteExtension) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestVerifyVoteExtension) ProtoMessage() {}

// Deprecated: Use RequestVerifyVoteExtension.ProtoReflect.Descriptor instead.
func (*RequestVerifyVoteExtension) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{15}
}

func (x *RequestVerifyVoteExtension) GetHash() []byte {
	if x != nil {
		return x.Hash
	}
	return nil
}

func (x *RequestVerifyVoteExtension) GetValidatorAddress() []byte {
	if x != nil {
		return x.ValidatorAddress
	}
	return nil
}

func (x *RequestVerifyVoteExtension) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *RequestVerifyVoteExtension) GetVoteExtension() []byte {
	if x != nil {
		return x.VoteExtension
	}
	return nil
}

type RequestFinalizeBlock struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Txs               [][]byte       `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"`
	DecidedLastCommit *CommitInfo    `protobuf:"bytes,2,opt,name=decided_last_commit,json=decidedLastCommit,proto3" json:"decided_last_commit,omitempty"`
	Misbehavior       []*Misbehavior `protobuf:"bytes,3,rep,name=misbehavior,proto3" json:"misbehavior,omitempty"`
	// hash is the merkle root hash of the fields of the decided block.
	Hash               []byte                 `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"`
	Height             int64                  `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"`
	Time               *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=time,proto3" json:"time,omitempty"`
	NextValidatorsHash []byte                 `protobuf:"bytes,7,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"`
	// proposer_address is the address of the public key of the original proposer of the block.
	ProposerAddress []byte `protobuf:"bytes,8,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"`
}

func (x *RequestFinalizeBlock) Reset() {
	*x = RequestFinalizeBlock{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RequestFinalizeBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestFinalizeBlock) ProtoMessage() {}

// Deprecated: Use RequestFinalizeBlock.ProtoReflect.Descriptor instead.
func (*RequestFinalizeBlock) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{16}
}

func (x *RequestFinalizeBlock) GetTxs() [][]byte {
	if x != nil {
		return x.Txs
	}
	return nil
}

func (x *RequestFinalizeBlock) GetDecidedLastCommit() *CommitInfo {
	if x != nil {
		return x.DecidedLastCommit
	}
	return nil
}

func (x *RequestFinalizeBlock) GetMisbehavior() []*Misbehavior {
	if x != nil {
		return x.Misbehavior
	}
	return nil
}

func (x *RequestFinalizeBlock) GetHash() []byte {
	if x != nil {
		return x.Hash
	}
	return nil
}

func (x *RequestFinalizeBlock) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *RequestFinalizeBlock) GetTime() *timestamppb.Timestamp {
	if x != nil {
		return x.Time
	}
	return nil
}

func (x *RequestFinalizeBlock) GetNextValidatorsHash() []byte {
	if x != nil {
		return x.NextValidatorsHash
	}
	return nil
}

func (x *RequestFinalizeBlock) GetProposerAddress() []byte {
	if x != nil {
		return x.ProposerAddress
	}
	return nil
}

type Response struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//
	//	*Response_Exception
	//	*Response_Echo
	//	*Response_Flush
	//	*Response_Info
	//	*Response_InitChain
	//	*Response_Query
	//	*Response_CheckTx
	//	*Response_Commit
	//	*Response_ListSnapshots
	//	*Response_OfferSnapshot
	//	*Response_LoadSnapshotChunk
	//	*Response_ApplySnapshotChunk
	//	*Response_PrepareProposal
	//	*Response_ProcessProposal
	//	*Response_ExtendVote
	//	*Response_VerifyVoteExtension
	//	*Response_FinalizeBlock
	Value isResponse_Value `protobuf_oneof:"value"`
}

func (x *Response) Reset() {
	*x = Response{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Response) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Response) ProtoMessage() {}

// Deprecated: Use Response.ProtoReflect.Descriptor instead.
func (*Response) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{17}
}

func (x *Response) GetValue() isResponse_Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *Response) GetException() *ResponseException {
	if x, ok := x.GetValue().(*Response_Exception); ok {
		return x.Exception
	}
	return nil
}

func (x *Response) GetEcho() *ResponseEcho {
	if x, ok := x.GetValue().(*Response_Echo); ok {
		return x.Echo
	}
	return nil
}

func (x *Response) GetFlush() *ResponseFlush {
	if x, ok := x.GetValue().(*Response_Flush); ok {
		return x.Flush
	}
	return nil
}

func (x *Response) GetInfo() *ResponseInfo {
	if x, ok := x.GetValue().(*Response_Info); ok {
		return x.Info
	}
	return nil
}

func (x *Response) GetInitChain() *ResponseInitChain {
	if x, ok := x.GetValue().(*Response_InitChain); ok {
		return x.InitChain
	}
	return nil
}

func (x *Response) GetQuery() *ResponseQuery {
	if x, ok := x.GetValue().(*Response_Query); ok {
		return x.Query
	}
	return nil
}

func (x *Response) GetCheckTx() *ResponseCheckTx {
	if x, ok := x.GetValue().(*Response_CheckTx); ok {
		return x.CheckTx
	}
	return nil
}

func (x *Response) GetCommit() *ResponseCommit {
	if x, ok := x.GetValue().(*Response_Commit); ok {
		return x.Commit
	}
	return nil
}

func (x *Response) GetListSnapshots() *ResponseListSnapshots {
	if x, ok := x.GetValue().(*Response_ListSnapshots); ok {
		return x.ListSnapshots
	}
	return nil
}

func (x *Response) GetOfferSnapshot() *ResponseOfferSnapshot {
	if x, ok := x.GetValue().(*Response_OfferSnapshot); ok {
		return x.OfferSnapshot
	}
	return nil
}

func (x *Response) GetLoadSnapshotChunk() *ResponseLoadSnapshotChunk {
	if x, ok := x.GetValue().(*Response_LoadSnapshotChunk); ok {
		return x.LoadSnapshotChunk
	}
	return nil
}

func (x *Response) GetApplySnapshotChunk() *ResponseApplySnapshotChunk {
	if x, ok := x.GetValue().(*Response_ApplySnapshotChunk); ok {
		return x.ApplySnapshotChunk
	}
	return nil
}

func (x *Response) GetPrepareProposal() *ResponsePrepareProposal {
	if x, ok := x.GetValue().(*Response_PrepareProposal); ok {
		return x.PrepareProposal
	}
	return nil
}

func (x *Response) GetProcessProposal() *ResponseProcessProposal {
	if x, ok := x.GetValue().(*Response_ProcessProposal); ok {
		return x.ProcessProposal
	}
	return nil
}

func (x *Response) GetExtendVote() *ResponseExtendVote {
	if x, ok := x.GetValue().(*Response_ExtendVote); ok {
		return x.ExtendVote
	}
	return nil
}

func (x *Response) GetVerifyVoteExtension() *ResponseVerifyVoteExtension {
	if x, ok := x.GetValue().(*Response_VerifyVoteExtension); ok {
		return x.VerifyVoteExtension
	}
	return nil
}

func (x *Response) GetFinalizeBlock() *ResponseFinalizeBlock {
	if x, ok := x.GetValue().(*Response_FinalizeBlock); ok {
		return x.FinalizeBlock
	}
	return nil
}

type isResponse_Value interface {
	isResponse_Value()
}

type Response_Exception struct {
	Exception *ResponseException `protobuf:"bytes,1,opt,name=exception,proto3,oneof"`
}

type Response_Echo struct {
	Echo *ResponseEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof"`
}

type Response_Flush struct {
	Flush *ResponseFlush `protobuf:"bytes,3,opt,name=flush,proto3,oneof"`
}

type Response_Info struct {
	Info *ResponseInfo `protobuf:"bytes,4,opt,name=info,proto3,oneof"`
}

type Response_InitChain struct {
	InitChain *ResponseInitChain `protobuf:"bytes,6,opt,name=init_chain,json=initChain,proto3,oneof"`
}

type Response_Query struct {
	Query *ResponseQuery `protobuf:"bytes,7,opt,name=query,proto3,oneof"`
}

type Response_CheckTx struct {
	CheckTx *ResponseCheckTx `protobuf:"bytes,9,opt,name=check_tx,json=checkTx,proto3,oneof"`
}

type Response_Commit struct {
	Commit *ResponseCommit `protobuf:"bytes,12,opt,name=commit,proto3,oneof"`
}

type Response_ListSnapshots struct {
	ListSnapshots *ResponseListSnapshots `protobuf:"bytes,13,opt,name=list_snapshots,json=listSnapshots,proto3,oneof"`
}

type Response_OfferSnapshot struct {
	OfferSnapshot *ResponseOfferSnapshot `protobuf:"bytes,14,opt,name=offer_snapshot,json=offerSnapshot,proto3,oneof"`
}

type Response_LoadSnapshotChunk struct {
	LoadSnapshotChunk *ResponseLoadSnapshotChunk `protobuf:"bytes,15,opt,name=load_snapshot_chunk,json=loadSnapshotChunk,proto3,oneof"`
}

type Response_ApplySnapshotChunk struct {
	ApplySnapshotChunk *ResponseApplySnapshotChunk `protobuf:"bytes,16,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof"`
}

type Response_PrepareProposal struct {
	PrepareProposal *ResponsePrepareProposal `protobuf:"bytes,17,opt,name=prepare_proposal,json=prepareProposal,proto3,oneof"`
}

type Response_ProcessProposal struct {
	ProcessProposal *ResponseProcessProposal `protobuf:"bytes,18,opt,name=process_proposal,json=processProposal,proto3,oneof"`
}

type Response_ExtendVote struct {
	ExtendVote *ResponseExtendVote `protobuf:"bytes,19,opt,name=extend_vote,json=extendVote,proto3,oneof"`
}

type Response_VerifyVoteExtension struct {
	VerifyVoteExtension *ResponseVerifyVoteExtension `protobuf:"bytes,20,opt,name=verify_vote_extension,json=verifyVoteExtension,proto3,oneof"`
}

type Response_FinalizeBlock struct {
	FinalizeBlock *ResponseFinalizeBlock `protobuf:"bytes,21,opt,name=finalize_block,json=finalizeBlock,proto3,oneof"`
}

func (*Response_Exception) isResponse_Value() {}

func (*Response_Echo) isResponse_Value() {}

func (*Response_Flush) isResponse_Value() {}

func (*Response_Info) isResponse_Value() {}

func (*Response_InitChain) isResponse_Value() {}

func (*Response_Query) isResponse_Value() {}

func (*Response_CheckTx) isResponse_Value() {}

func (*Response_Commit) isResponse_Value() {}

func (*Response_ListSnapshots) isResponse_Value() {}

func (*Response_OfferSnapshot) isResponse_Value() {}

func (*Response_LoadSnapshotChunk) isResponse_Value() {}

func (*Response_ApplySnapshotChunk) isResponse_Value() {}

func (*Response_PrepareProposal) isResponse_Value() {}

func (*Response_ProcessProposal) isResponse_Value() {}

func (*Response_ExtendVote) isResponse_Value() {}

func (*Response_VerifyVoteExtension) isResponse_Value() {}

func (*Response_FinalizeBlock) isResponse_Value() {}

// nondeterministic
type ResponseException struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
}

func (x *ResponseException) Reset() {
	*x = ResponseException{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseException) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseException) ProtoMessage() {}

// Deprecated: Use ResponseException.ProtoReflect.Descriptor instead.
func (*ResponseException) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{18}
}

func (x *ResponseException) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type ResponseEcho struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *ResponseEcho) Reset() {
	*x = ResponseEcho{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseEcho) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseEcho) ProtoMessage() {}

// Deprecated: Use ResponseEcho.ProtoReflect.Descriptor instead.
func (*ResponseEcho) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{19}
}

func (x *ResponseEcho) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

type ResponseFlush struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ResponseFlush) Reset() {
	*x = ResponseFlush{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseFlush) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseFlush) ProtoMessage() {}

// Deprecated: Use ResponseFlush.ProtoReflect.Descriptor instead.
func (*ResponseFlush) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{20}
}

type ResponseInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Data             string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Version          string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
	AppVersion       uint64 `protobuf:"varint,3,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
	LastBlockHeight  int64  `protobuf:"varint,4,opt,name=last_block_height,json=lastBlockHeight,proto3" json:"last_block_height,omitempty"`
	LastBlockAppHash []byte `protobuf:"bytes,5,opt,name=last_block_app_hash,json=lastBlockAppHash,proto3" json:"last_block_app_hash,omitempty"`
}

func (x *ResponseInfo) Reset() {
	*x = ResponseInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseInfo) ProtoMessage() {}

// Deprecated: Use ResponseInfo.ProtoReflect.Descriptor instead.
func (*ResponseInfo) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{21}
}

func (x *ResponseInfo) GetData() string {
	if x != nil {
		return x.Data
	}
	return ""
}

func (x *ResponseInfo) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *ResponseInfo) GetAppVersion() uint64 {
	if x != nil {
		return x.AppVersion
	}
	return 0
}

func (x *ResponseInfo) GetLastBlockHeight() int64 {
	if x != nil {
		return x.LastBlockHeight
	}
	return 0
}

func (x *ResponseInfo) GetLastBlockAppHash() []byte {
	if x != nil {
		return x.LastBlockAppHash
	}
	return nil
}

type ResponseInitChain struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ConsensusParams *types.ConsensusParams `protobuf:"bytes,1,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"`
	Validators      []*ValidatorUpdate     `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators,omitempty"`
	AppHash         []byte                 `protobuf:"bytes,3,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"`
}

func (x *ResponseInitChain) Reset() {
	*x = ResponseInitChain{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseInitChain) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseInitChain) ProtoMessage() {}

// Deprecated: Use ResponseInitChain.ProtoReflect.Descriptor instead.
func (*ResponseInitChain) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{22}
}

func (x *ResponseInitChain) GetConsensusParams() *types.ConsensusParams {
	if x != nil {
		return x.ConsensusParams
	}
	return nil
}

func (x *ResponseInitChain) GetValidators() []*ValidatorUpdate {
	if x != nil {
		return x.Validators
	}
	return nil
}

func (x *ResponseInitChain) GetAppHash() []byte {
	if x != nil {
		return x.AppHash
	}
	return nil
}

type ResponseQuery struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
	// bytes data = 2; // use "value" instead.
	Log       string           `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`   // nondeterministic
	Info      string           `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` // nondeterministic
	Index     int64            `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"`
	Key       []byte           `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"`
	Value     []byte           `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
	ProofOps  *crypto.ProofOps `protobuf:"bytes,8,opt,name=proof_ops,json=proofOps,proto3" json:"proof_ops,omitempty"`
	Height    int64            `protobuf:"varint,9,opt,name=height,proto3" json:"height,omitempty"`
	Codespace string           `protobuf:"bytes,10,opt,name=codespace,proto3" json:"codespace,omitempty"`
}

func (x *ResponseQuery) Reset() {
	*x = ResponseQuery{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseQuery) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseQuery) ProtoMessage() {}

// Deprecated: Use ResponseQuery.ProtoReflect.Descriptor instead.
func (*ResponseQuery) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{23}
}

func (x *ResponseQuery) GetCode() uint32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *ResponseQuery) GetLog() string {
	if x != nil {
		return x.Log
	}
	return ""
}

func (x *ResponseQuery) GetInfo() string {
	if x != nil {
		return x.Info
	}
	return ""
}

func (x *ResponseQuery) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *ResponseQuery) GetKey() []byte {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *ResponseQuery) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *ResponseQuery) GetProofOps() *crypto.ProofOps {
	if x != nil {
		return x.ProofOps
	}
	return nil
}

func (x *ResponseQuery) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *ResponseQuery) GetCodespace() string {
	if x != nil {
		return x.Codespace
	}
	return ""
}

type ResponseCheckTx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code      uint32   `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
	Data      []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	Log       string   `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`   // nondeterministic
	Info      string   `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` // nondeterministic
	GasWanted int64    `protobuf:"varint,5,opt,name=gas_wanted,proto3" json:"gas_wanted,omitempty"`
	GasUsed   int64    `protobuf:"varint,6,opt,name=gas_used,proto3" json:"gas_used,omitempty"`
	Events    []*Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"`
	Codespace string   `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"`
}

func (x *ResponseCheckTx) Reset() {
	*x = ResponseCheckTx{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseCheckTx) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseCheckTx) ProtoMessage() {}

// Deprecated: Use ResponseCheckTx.ProtoReflect.Descriptor instead.
func (*ResponseCheckTx) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{24}
}

func (x *ResponseCheckTx) GetCode() uint32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *ResponseCheckTx) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *ResponseCheckTx) GetLog() string {
	if x != nil {
		return x.Log
	}
	return ""
}

func (x *ResponseCheckTx) GetInfo() string {
	if x != nil {
		return x.Info
	}
	return ""
}

func (x *ResponseCheckTx) GetGasWanted() int64 {
	if x != nil {
		return x.GasWanted
	}
	return 0
}

func (x *ResponseCheckTx) GetGasUsed() int64 {
	if x != nil {
		return x.GasUsed
	}
	return 0
}

func (x *ResponseCheckTx) GetEvents() []*Event {
	if x != nil {
		return x.Events
	}
	return nil
}

func (x *ResponseCheckTx) GetCodespace() string {
	if x != nil {
		return x.Codespace
	}
	return ""
}

type ResponseCommit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RetainHeight int64 `protobuf:"varint,3,opt,name=retain_height,json=retainHeight,proto3" json:"retain_height,omitempty"`
}

func (x *ResponseCommit) Reset() {
	*x = ResponseCommit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseCommit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseCommit) ProtoMessage() {}

// Deprecated: Use ResponseCommit.ProtoReflect.Descriptor instead.
func (*ResponseCommit) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{25}
}

func (x *ResponseCommit) GetRetainHeight() int64 {
	if x != nil {
		return x.RetainHeight
	}
	return 0
}

type ResponseListSnapshots struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"`
}

func (x *ResponseListSnapshots) Reset() {
	*x = ResponseListSnapshots{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseListSnapshots) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseListSnapshots) ProtoMessage() {}

// Deprecated: Use ResponseListSnapshots.ProtoReflect.Descriptor instead.
func (*ResponseListSnapshots) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{26}
}

func (x *ResponseListSnapshots) GetSnapshots() []*Snapshot {
	if x != nil {
		return x.Snapshots
	}
	return nil
}

type ResponseOfferSnapshot struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Result ResponseOfferSnapshot_Result `protobuf:"varint,1,opt,name=result,proto3,enum=tendermint.abci.ResponseOfferSnapshot_Result" json:"result,omitempty"`
}

func (x *ResponseOfferSnapshot) Reset() {
	*x = ResponseOfferSnapshot{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseOfferSnapshot) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseOfferSnapshot) ProtoMessage() {}

// Deprecated: Use ResponseOfferSnapshot.ProtoReflect.Descriptor instead.
func (*ResponseOfferSnapshot) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{27}
}

func (x *ResponseOfferSnapshot) GetResult() ResponseOfferSnapshot_Result {
	if x != nil {
		return x.Result
	}
	return ResponseOfferSnapshot_UNKNOWN
}

type ResponseLoadSnapshotChunk struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Chunk []byte `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"`
}

func (x *ResponseLoadSnapshotChunk) Reset() {
	*x = ResponseLoadSnapshotChunk{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseLoadSnapshotChunk) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseLoadSnapshotChunk) ProtoMessage() {}

// Deprecated: Use ResponseLoadSnapshotChunk.ProtoReflect.Descriptor instead.
func (*ResponseLoadSnapshotChunk) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{28}
}

func (x *ResponseLoadSnapshotChunk) GetChunk() []byte {
	if x != nil {
		return x.Chunk
	}
	return nil
}

type ResponseApplySnapshotChunk struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Result        ResponseApplySnapshotChunk_Result `protobuf:"varint,1,opt,name=result,proto3,enum=tendermint.abci.ResponseApplySnapshotChunk_Result" json:"result,omitempty"`
	RefetchChunks []uint32                          `protobuf:"varint,2,rep,packed,name=refetch_chunks,json=refetchChunks,proto3" json:"refetch_chunks,omitempty"` // Chunks to refetch and reapply
	RejectSenders []string                          `protobuf:"bytes,3,rep,name=reject_senders,json=rejectSenders,proto3" json:"reject_senders,omitempty"`         // Chunk senders to reject and ban
}

func (x *ResponseApplySnapshotChunk) Reset() {
	*x = ResponseApplySnapshotChunk{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseApplySnapshotChunk) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseApplySnapshotChunk) ProtoMessage() {}

// Deprecated: Use ResponseApplySnapshotChunk.ProtoReflect.Descriptor instead.
func (*ResponseApplySnapshotChunk) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{29}
}

func (x *ResponseApplySnapshotChunk) GetResult() ResponseApplySnapshotChunk_Result {
	if x != nil {
		return x.Result
	}
	return ResponseApplySnapshotChunk_UNKNOWN
}

func (x *ResponseApplySnapshotChunk) GetRefetchChunks() []uint32 {
	if x != nil {
		return x.RefetchChunks
	}
	return nil
}

func (x *ResponseApplySnapshotChunk) GetRejectSenders() []string {
	if x != nil {
		return x.RejectSenders
	}
	return nil
}

type ResponsePrepareProposal struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Txs [][]byte `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"`
}

func (x *ResponsePrepareProposal) Reset() {
	*x = ResponsePrepareProposal{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponsePrepareProposal) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponsePrepareProposal) ProtoMessage() {}

// Deprecated: Use ResponsePrepareProposal.ProtoReflect.Descriptor instead.
func (*ResponsePrepareProposal) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{30}
}

func (x *ResponsePrepareProposal) GetTxs() [][]byte {
	if x != nil {
		return x.Txs
	}
	return nil
}

type ResponseProcessProposal struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status ResponseProcessProposal_ProposalStatus `protobuf:"varint,1,opt,name=status,proto3,enum=tendermint.abci.ResponseProcessProposal_ProposalStatus" json:"status,omitempty"`
}

func (x *ResponseProcessProposal) Reset() {
	*x = ResponseProcessProposal{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseProcessProposal) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseProcessProposal) ProtoMessage() {}

// Deprecated: Use ResponseProcessProposal.ProtoReflect.Descriptor instead.
func (*ResponseProcessProposal) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{31}
}

func (x *ResponseProcessProposal) GetStatus() ResponseProcessProposal_ProposalStatus {
	if x != nil {
		return x.Status
	}
	return ResponseProcessProposal_UNKNOWN
}

type ResponseExtendVote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	VoteExtension []byte `protobuf:"bytes,1,opt,name=vote_extension,json=voteExtension,proto3" json:"vote_extension,omitempty"`
}

func (x *ResponseExtendVote) Reset() {
	*x = ResponseExtendVote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseExtendVote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseExtendVote) ProtoMessage() {}

// Deprecated: Use ResponseExtendVote.ProtoReflect.Descriptor instead.
func (*ResponseExtendVote) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{32}
}

func (x *ResponseExtendVote) GetVoteExtension() []byte {
	if x != nil {
		return x.VoteExtension
	}
	return nil
}

type ResponseVerifyVoteExtension struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status ResponseVerifyVoteExtension_VerifyStatus `protobuf:"varint,1,opt,name=status,proto3,enum=tendermint.abci.ResponseVerifyVoteExtension_VerifyStatus" json:"status,omitempty"`
}

func (x *ResponseVerifyVoteExtension) Reset() {
	*x = ResponseVerifyVoteExtension{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseVerifyVoteExtension) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseVerifyVoteExtension) ProtoMessage() {}

// Deprecated: Use ResponseVerifyVoteExtension.ProtoReflect.Descriptor instead.
func (*ResponseVerifyVoteExtension) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{33}
}

func (x *ResponseVerifyVoteExtension) GetStatus() ResponseVerifyVoteExtension_VerifyStatus {
	if x != nil {
		return x.Status
	}
	return ResponseVerifyVoteExtension_UNKNOWN
}

type ResponseFinalizeBlock struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// set of block events emitted as part of executing the block
	Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
	// the result of executing each transaction including the events
	// the particular transaction emitted. This should match the order
	// of the transactions delivered in the block itself
	TxResults []*ExecTxResult `protobuf:"bytes,2,rep,name=tx_results,json=txResults,proto3" json:"tx_results,omitempty"`
	// a list of updates to the validator set. These will reflect the validator set at current height + 2.
	ValidatorUpdates []*ValidatorUpdate `protobuf:"bytes,3,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates,omitempty"`
	// updates to the consensus params, if any.
	ConsensusParamUpdates *types.ConsensusParams `protobuf:"bytes,4,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"`
	// app_hash is the hash of the applications' state which is used to confirm that execution of the transactions was
	// deterministic. It is up to the application to decide which algorithm to use.
	AppHash []byte `protobuf:"bytes,5,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"`
}

func (x *ResponseFinalizeBlock) Reset() {
	*x = ResponseFinalizeBlock{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResponseFinalizeBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResponseFinalizeBlock) ProtoMessage() {}

// Deprecated: Use ResponseFinalizeBlock.ProtoReflect.Descriptor instead.
func (*ResponseFinalizeBlock) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{34}
}

func (x *ResponseFinalizeBlock) GetEvents() []*Event {
	if x != nil {
		return x.Events
	}
	return nil
}

func (x *ResponseFinalizeBlock) GetTxResults() []*ExecTxResult {
	if x != nil {
		return x.TxResults
	}
	return nil
}

func (x *ResponseFinalizeBlock) GetValidatorUpdates() []*ValidatorUpdate {
	if x != nil {
		return x.ValidatorUpdates
	}
	return nil
}

func (x *ResponseFinalizeBlock) GetConsensusParamUpdates() *types.ConsensusParams {
	if x != nil {
		return x.ConsensusParamUpdates
	}
	return nil
}

func (x *ResponseFinalizeBlock) GetAppHash() []byte {
	if x != nil {
		return x.AppHash
	}
	return nil
}

type CommitInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Round int32       `protobuf:"varint,1,opt,name=round,proto3" json:"round,omitempty"`
	Votes []*VoteInfo `protobuf:"bytes,2,rep,name=votes,proto3" json:"votes,omitempty"`
}

func (x *CommitInfo) Reset() {
	*x = CommitInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CommitInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitInfo) ProtoMessage() {}

// Deprecated: Use CommitInfo.ProtoReflect.Descriptor instead.
func (*CommitInfo) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{35}
}

func (x *CommitInfo) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *CommitInfo) GetVotes() []*VoteInfo {
	if x != nil {
		return x.Votes
	}
	return nil
}

// ExtendedCommitInfo is similar to CommitInfo except that it is only used in
// the PrepareProposal request such that CometBFT can provide vote extensions
// to the application.
type ExtendedCommitInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The round at which the block proposer decided in the previous height.
	Round int32 `protobuf:"varint,1,opt,name=round,proto3" json:"round,omitempty"`
	// List of validators' addresses in the last validator set with their voting
	// information, including vote extensions.
	Votes []*ExtendedVoteInfo `protobuf:"bytes,2,rep,name=votes,proto3" json:"votes,omitempty"`
}

func (x *ExtendedCommitInfo) Reset() {
	*x = ExtendedCommitInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ExtendedCommitInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExtendedCommitInfo) ProtoMessage() {}

// Deprecated: Use ExtendedCommitInfo.ProtoReflect.Descriptor instead.
func (*ExtendedCommitInfo) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{36}
}

func (x *ExtendedCommitInfo) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *ExtendedCommitInfo) GetVotes() []*ExtendedVoteInfo {
	if x != nil {
		return x.Votes
	}
	return nil
}

// Event allows application developers to attach additional information to
// ResponseFinalizeBlock and ResponseCheckTx.
// Later, transactions may be queried using these events.
type Event struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type_      string            `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	Attributes []*EventAttribute `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"`
}

func (x *Event) Reset() {
	*x = Event{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Event) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Event) ProtoMessage() {}

// Deprecated: Use Event.ProtoReflect.Descriptor instead.
func (*Event) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{37}
}

func (x *Event) GetType_() string {
	if x != nil {
		return x.Type_
	}
	return ""
}

func (x *Event) GetAttributes() []*EventAttribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

// EventAttribute is a single key-value pair, associated with an event.
type EventAttribute struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Key   string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	Index bool   `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` // nondeterministic
}

func (x *EventAttribute) Reset() {
	*x = EventAttribute{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *EventAttribute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EventAttribute) ProtoMessage() {}

// Deprecated: Use EventAttribute.ProtoReflect.Descriptor instead.
func (*EventAttribute) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{38}
}

func (x *EventAttribute) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *EventAttribute) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

func (x *EventAttribute) GetIndex() bool {
	if x != nil {
		return x.Index
	}
	return false
}

// ExecTxResult contains results of executing one individual transaction.
//
// * Its structure is equivalent to #ResponseDeliverTx which will be deprecated/deleted
type ExecTxResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code      uint32   `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
	Data      []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	Log       string   `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`   // nondeterministic
	Info      string   `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` // nondeterministic
	GasWanted int64    `protobuf:"varint,5,opt,name=gas_wanted,proto3" json:"gas_wanted,omitempty"`
	GasUsed   int64    `protobuf:"varint,6,opt,name=gas_used,proto3" json:"gas_used,omitempty"`
	Events    []*Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"` // nondeterministic
	Codespace string   `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"`
}

func (x *ExecTxResult) Reset() {
	*x = ExecTxResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ExecTxResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExecTxResult) ProtoMessage() {}

// Deprecated: Use ExecTxResult.ProtoReflect.Descriptor instead.
func (*ExecTxResult) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{39}
}

func (x *ExecTxResult) GetCode() uint32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *ExecTxResult) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *ExecTxResult) GetLog() string {
	if x != nil {
		return x.Log
	}
	return ""
}

func (x *ExecTxResult) GetInfo() string {
	if x != nil {
		return x.Info
	}
	return ""
}

func (x *ExecTxResult) GetGasWanted() int64 {
	if x != nil {
		return x.GasWanted
	}
	return 0
}

func (x *ExecTxResult) GetGasUsed() int64 {
	if x != nil {
		return x.GasUsed
	}
	return 0
}

func (x *ExecTxResult) GetEvents() []*Event {
	if x != nil {
		return x.Events
	}
	return nil
}

func (x *ExecTxResult) GetCodespace() string {
	if x != nil {
		return x.Codespace
	}
	return ""
}

// TxResult contains results of executing the transaction.
//
// One usage is indexing transaction results.
type TxResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height int64         `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Index  uint32        `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
	Tx     []byte        `protobuf:"bytes,3,opt,name=tx,proto3" json:"tx,omitempty"`
	Result *ExecTxResult `protobuf:"bytes,4,opt,name=result,proto3" json:"result,omitempty"`
}

func (x *TxResult) Reset() {
	*x = TxResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TxResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TxResult) ProtoMessage() {}

// Deprecated: Use TxResult.ProtoReflect.Descriptor instead.
func (*TxResult) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{40}
}

func (x *TxResult) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *TxResult) GetIndex() uint32 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *TxResult) GetTx() []byte {
	if x != nil {
		return x.Tx
	}
	return nil
}

func (x *TxResult) GetResult() *ExecTxResult {
	if x != nil {
		return x.Result
	}
	return nil
}

type Validator struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // The first 20 bytes of SHA256(public key)
	// PubKey pub_key = 2 [(gogoproto.nullable)=false];
	Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"` // The voting power
}

func (x *Validator) Reset() {
	*x = Validator{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[41]
		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_tendermint_abci_types_proto_rawDescGZIP(), []int{41}
}

func (x *Validator) GetAddress() []byte {
	if x != nil {
		return x.Address
	}
	return nil
}

func (x *Validator) GetPower() int64 {
	if x != nil {
		return x.Power
	}
	return 0
}

type ValidatorUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PubKey *crypto.PublicKey `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
	Power  int64             `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"`
}

func (x *ValidatorUpdate) Reset() {
	*x = ValidatorUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ValidatorUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ValidatorUpdate) ProtoMessage() {}

// Deprecated: Use ValidatorUpdate.ProtoReflect.Descriptor instead.
func (*ValidatorUpdate) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{42}
}

func (x *ValidatorUpdate) GetPubKey() *crypto.PublicKey {
	if x != nil {
		return x.PubKey
	}
	return nil
}

func (x *ValidatorUpdate) GetPower() int64 {
	if x != nil {
		return x.Power
	}
	return 0
}

type VoteInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Validator   *Validator        `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator,omitempty"`
	BlockIdFlag types.BlockIDFlag `protobuf:"varint,3,opt,name=block_id_flag,json=blockIdFlag,proto3,enum=tendermint.types.BlockIDFlag" json:"block_id_flag,omitempty"`
}

func (x *VoteInfo) Reset() {
	*x = VoteInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VoteInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VoteInfo) ProtoMessage() {}

// Deprecated: Use VoteInfo.ProtoReflect.Descriptor instead.
func (*VoteInfo) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{43}
}

func (x *VoteInfo) GetValidator() *Validator {
	if x != nil {
		return x.Validator
	}
	return nil
}

func (x *VoteInfo) GetBlockIdFlag() types.BlockIDFlag {
	if x != nil {
		return x.BlockIdFlag
	}
	return types.BlockIDFlag(0)
}

type ExtendedVoteInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The validator that sent the vote.
	Validator *Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator,omitempty"`
	// Non-deterministic extension provided by the sending validator's application.
	VoteExtension []byte `protobuf:"bytes,3,opt,name=vote_extension,json=voteExtension,proto3" json:"vote_extension,omitempty"`
	// Vote extension signature created by CometBFT
	ExtensionSignature []byte `protobuf:"bytes,4,opt,name=extension_signature,json=extensionSignature,proto3" json:"extension_signature,omitempty"`
	// block_id_flag indicates whether the validator voted for a block, nil, or did not vote at all
	BlockIdFlag types.BlockIDFlag `protobuf:"varint,5,opt,name=block_id_flag,json=blockIdFlag,proto3,enum=tendermint.types.BlockIDFlag" json:"block_id_flag,omitempty"`
}

func (x *ExtendedVoteInfo) Reset() {
	*x = ExtendedVoteInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ExtendedVoteInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExtendedVoteInfo) ProtoMessage() {}

// Deprecated: Use ExtendedVoteInfo.ProtoReflect.Descriptor instead.
func (*ExtendedVoteInfo) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{44}
}

func (x *ExtendedVoteInfo) GetValidator() *Validator {
	if x != nil {
		return x.Validator
	}
	return nil
}

func (x *ExtendedVoteInfo) GetVoteExtension() []byte {
	if x != nil {
		return x.VoteExtension
	}
	return nil
}

func (x *ExtendedVoteInfo) GetExtensionSignature() []byte {
	if x != nil {
		return x.ExtensionSignature
	}
	return nil
}

func (x *ExtendedVoteInfo) GetBlockIdFlag() types.BlockIDFlag {
	if x != nil {
		return x.BlockIdFlag
	}
	return types.BlockIDFlag(0)
}

type Misbehavior struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type_ MisbehaviorType `protobuf:"varint,1,opt,name=type,proto3,enum=tendermint.abci.MisbehaviorType" json:"type,omitempty"`
	// The offending validator
	Validator *Validator `protobuf:"bytes,2,opt,name=validator,proto3" json:"validator,omitempty"`
	// The height when the offense occurred
	Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	// The corresponding time where the offense occurred
	Time *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=time,proto3" json:"time,omitempty"`
	// Total voting power of the validator set in case the ABCI application does
	// not store historical validators.
	// https://github.com/tendermint/tendermint/issues/4581
	TotalVotingPower int64 `protobuf:"varint,5,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"`
}

func (x *Misbehavior) Reset() {
	*x = Misbehavior{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Misbehavior) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Misbehavior) ProtoMessage() {}

// Deprecated: Use Misbehavior.ProtoReflect.Descriptor instead.
func (*Misbehavior) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{45}
}

func (x *Misbehavior) GetType_() MisbehaviorType {
	if x != nil {
		return x.Type_
	}
	return MisbehaviorType_UNKNOWN
}

func (x *Misbehavior) GetValidator() *Validator {
	if x != nil {
		return x.Validator
	}
	return nil
}

func (x *Misbehavior) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *Misbehavior) GetTime() *timestamppb.Timestamp {
	if x != nil {
		return x.Time
	}
	return nil
}

func (x *Misbehavior) GetTotalVotingPower() int64 {
	if x != nil {
		return x.TotalVotingPower
	}
	return 0
}

type Snapshot struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height   uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`    // The height at which the snapshot was taken
	Format   uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"`    // The application-specific snapshot format
	Chunks   uint32 `protobuf:"varint,3,opt,name=chunks,proto3" json:"chunks,omitempty"`    // Number of chunks in the snapshot
	Hash     []byte `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"`         // Arbitrary snapshot hash, equal only if identical
	Metadata []byte `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"` // Arbitrary application metadata
}

func (x *Snapshot) Reset() {
	*x = Snapshot{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_abci_types_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Snapshot) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Snapshot) ProtoMessage() {}

// Deprecated: Use Snapshot.ProtoReflect.Descriptor instead.
func (*Snapshot) Descriptor() ([]byte, []int) {
	return file_tendermint_abci_types_proto_rawDescGZIP(), []int{46}
}

func (x *Snapshot) GetHeight() uint64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *Snapshot) GetFormat() uint32 {
	if x != nil {
		return x.Format
	}
	return 0
}

func (x *Snapshot) GetChunks() uint32 {
	if x != nil {
		return x.Chunks
	}
	return 0
}

func (x *Snapshot) GetHash() []byte {
	if x != nil {
		return x.Hash
	}
	return nil
}

func (x *Snapshot) GetMetadata() []byte {
	if x != nil {
		return x.Metadata
	}
	return nil
}

var File_tendermint_abci_types_proto protoreflect.FileDescriptor

var file_tendermint_abci_types_proto_rawDesc = []byte{
	0x0a, 0x1b, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x61, 0x62, 0x63,
	0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x1a, 0x1d,
	0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74,
	0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f,
	0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x61,
	0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 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, 0x1a, 0x14, 0x67,
	0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x32, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
	0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x65,
	0x63, 0x68, 0x6f, 0x12, 0x35, 0x0a, 0x05, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e,
	0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x6c, 0x75, 0x73,
	0x68, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x32, 0x0a, 0x04, 0x69, 0x6e,
	0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65,
	0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x42,
	0x0a, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e,
	0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x69, 0x74,
	0x43, 0x68, 0x61, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x68, 0x61,
	0x69, 0x6e, 0x12, 0x35, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61,
	0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65,
	0x63, 0x6b, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x78, 0x48, 0x00, 0x52, 0x07,
	0x63, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x78, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x12, 0x4e, 0x0a, 0x0e, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73,
	0x48, 0x00, 0x52, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
	0x73, 0x12, 0x4e, 0x0a, 0x0e, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73,
	0x68, 0x6f, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
	0x48, 0x00, 0x52, 0x0d, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
	0x74, 0x12, 0x5b, 0x0a, 0x13, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
	0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70,
	0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x11, 0x6c, 0x6f, 0x61,
	0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x5e,
	0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
	0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73,
	0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c,
	0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x54,
	0x0a, 0x10, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73,
	0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65,
	0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61,
	0x6c, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x70,
	0x6f, 0x73, 0x61, 0x6c, 0x12, 0x54, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27,
	0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x50,
	0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x45, 0x0a, 0x0b, 0x65, 0x78,
	0x74, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x22, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x56,
	0x6f, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x56, 0x6f, 0x74,
	0x65, 0x12, 0x61, 0x0a, 0x15, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x76, 0x6f, 0x74, 0x65,
	0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2b, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62,
	0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79,
	0x56, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52,
	0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e,
	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65,
	0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42,
	0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08,
	0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a,
	0x04, 0x08, 0x0a, 0x10, 0x0b, 0x22, 0x27, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x45, 0x63, 0x68, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x0e,
	0x0a, 0x0c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x22, 0x90,
	0x01, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18,
	0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63,
	0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a,
	0x0b, 0x70, 0x32, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x0a, 0x70, 0x32, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21,
	0x0a, 0x0c, 0x61, 0x62, 0x63, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x62, 0x63, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x22, 0xcc, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x69,
	0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01,
	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, 0x08, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65,
	0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x10, 0x63,
	0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73,
	0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e,
	0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e,
	0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e,
	0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42,
	0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
	0x73, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x62,
	0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x69,
	0x74, 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x22, 0x64, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x05, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x22, 0x52, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d,
	0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x78,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x73, 0x22, 0x68, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x66,
	0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x73,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e,
	0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x22, 0x60, 0x0a,
	0x18, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70,
	0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, 0x75,
	0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x22,
	0x5f, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x22, 0x98, 0x03, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x65, 0x70,
	0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x20, 0x0a, 0x0c, 0x6d,
	0x61, 0x78, 0x5f, 0x74, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x54, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a,
	0x03, 0x74, 0x78, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12,
	0x55, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x45, 0x78, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42,
	0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4c, 0x61, 0x73, 0x74,
	0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x69, 0x73, 0x62, 0x65, 0x68,
	0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x4d, 0x69,
	0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52,
	0x0b, 0x6d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06,
	0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 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, 0x08,
	0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x30,
	0x0a, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
	0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x6e, 0x65,
	0x78, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68,
	0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70,
	0x6f, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x88, 0x03, 0x0a, 0x16,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x50, 0x72,
	0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0c, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x53, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x70,
	0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d,
	0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49,
	0x6e, 0x66, 0x6f, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f,
	0x73, 0x65, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x44, 0x0a,
	0x0b, 0x6d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e,
	0x61, 0x62, 0x63, 0x69, 0x2e, 0x4d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72,
	0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0b, 0x6d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76,
	0x69, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
	0x38, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 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, 0x08, 0xc8, 0xde, 0x1f, 0x00, 0x90,
	0xdf, 0x1f, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6e, 0x65, 0x78,
	0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x68, 0x61, 0x73,
	0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x70,
	0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x41,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x83, 0x03, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04,
	0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68,
	0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65,
	0x18, 0x03, 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, 0x08, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x04, 0x74, 0x69,
	0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52,
	0x03, 0x74, 0x78, 0x73, 0x12, 0x53, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64,
	0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e,
	0x61, 0x62, 0x63, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42,
	0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x4c,
	0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x69, 0x73,
	0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69,
	0x2e, 0x4d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x04, 0xc8, 0xde,
	0x1f, 0x00, 0x52, 0x0b, 0x6d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12,
	0x30, 0x0a, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
	0x72, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x6e,
	0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x61, 0x73,
	0x68, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, 0x72, 0x6f,
	0x70, 0x6f, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x9c, 0x01, 0x0a,
	0x1a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x56, 0x6f,
	0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68,
	0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12,
	0x2b, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x74,
	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x76, 0x6f,
	0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x03, 0x0a, 0x14,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42,
	0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0c, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x51, 0x0a, 0x13, 0x64, 0x65, 0x63, 0x69, 0x64, 0x65,
	0x64, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74,
	0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f,
	0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x11, 0x64, 0x65, 0x63, 0x69, 0x64, 0x65, 0x64, 0x4c,
	0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x69, 0x73,
	0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69,
	0x2e, 0x4d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x04, 0xc8, 0xde,
	0x1f, 0x00, 0x52, 0x0b, 0x6d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12,
	0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68,
	0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74,
	0x69, 0x6d, 0x65, 0x18, 0x06, 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, 0x08, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0x52,
	0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x6f, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f,
	0x73, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65,
	0x73, 0x73, 0x22, 0x94, 0x0a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x42, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e,
	0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x78, 0x63,
	0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61,
	0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x63, 0x68, 0x6f,
	0x48, 0x00, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x12, 0x36, 0x0a, 0x05, 0x66, 0x6c, 0x75, 0x73,
	0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x75, 0x73, 0x68,
	0x12, 0x33, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69,
	0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52,
	0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x48, 0x00, 0x52,
	0x09, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x05, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x78, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e,
	0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43,
	0x68, 0x65, 0x63, 0x6b, 0x54, 0x78, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54,
	0x78, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61,
	0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d,
	0x69, 0x74, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x4f, 0x0a, 0x0e,
	0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e,
	0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4c,
	0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0d,
	0x6c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x4f, 0x0a,
	0x0e, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x48, 0x00, 0x52,
	0x0d, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x5c,
	0x0a, 0x13, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f,
	0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x11, 0x6c, 0x6f, 0x61, 0x64, 0x53,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x5f, 0x0a, 0x14,
	0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x63,
	0x68, 0x75, 0x6e, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79,
	0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x55, 0x0a,
	0x10, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61,
	0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61,
	0x6c, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x70,
	0x6f, 0x73, 0x61, 0x6c, 0x12, 0x55, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f,
	0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28,
	0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69,
	0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63,
	0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x0b, 0x65,
	0x78, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x23, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62,
	0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e,
	0x64, 0x56, 0x6f, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x56,
	0x6f, 0x74, 0x65, 0x12, 0x62, 0x0a, 0x15, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x76, 0x6f,
	0x74, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e,
	0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72,
	0x69, 0x66, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
	0x48, 0x00, 0x52, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x78,
	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x26, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69,
	0x7a, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08,
	0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x22, 0x29, 0x0a, 0x11, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14,
	0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x22, 0x28, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x45, 0x63, 0x68, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x0f,
	0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x22,
	0xb8, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f,
	0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
	0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x6c,
	0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61,
	0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x41, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x22, 0xc4, 0x01, 0x0a, 0x11, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e,
	0x12, 0x4c, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x61,
	0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f,
	0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x63,
	0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x46,
	0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e,
	0x61, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61,
	0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73,
	0x68, 0x22, 0xf7, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66,
	0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a,
	0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x70,
	0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x6f, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
	0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70,
	0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f,
	0x6f, 0x66, 0x4f, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a,
	0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x0f,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x78, 0x12,
	0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63,
	0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66,
	0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a,
	0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a,
	0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x65, 0x76, 0x65,
	0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x42, 0x18, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74,
	0x73, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x06, 0x65, 0x76, 0x65,
	0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0c, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52,
	0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x70, 0x6f,
	0x6f, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x41, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65,
	0x74, 0x61, 0x69, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4a,
	0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x50, 0x0a, 0x15, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73,
	0x68, 0x6f, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x22, 0xbe, 0x01,
	0x0a, 0x15, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e,
	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5e,
	0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10,
	0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06,
	0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x4a, 0x45,
	0x43, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x52,
	0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x05, 0x22, 0x31,
	0x0a, 0x19, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x63,
	0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e,
	0x6b, 0x22, 0x98, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x41, 0x70,
	0x70, 0x6c, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b,
	0x12, 0x4a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x32, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62,
	0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79,
	0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x2e, 0x52, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x25, 0x0a, 0x0e,
	0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x43, 0x68, 0x75,
	0x6e, 0x6b, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6a,
	0x65, 0x63, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x22, 0x60, 0x0a, 0x06, 0x52, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a,
	0x05, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x54, 0x52,
	0x59, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x53, 0x4e, 0x41,
	0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x4a, 0x45, 0x43,
	0x54, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x05, 0x22, 0x2b, 0x0a, 0x17,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50,
	0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, 0x74, 0x78, 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x17, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f,
	0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e,
	0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x35, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73,
	0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10,
	0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x22, 0x3b, 0x0a,
	0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x56,
	0x6f, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65,
	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x76, 0x6f, 0x74,
	0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x1b, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x56, 0x6f, 0x74,
	0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x45,
	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x33, 0x0a,
	0x0c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a,
	0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43,
	0x43, 0x45, 0x50, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54,
	0x10, 0x02, 0x22, 0xea, 0x02, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46,
	0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x48, 0x0a, 0x06,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x45,
	0x76, 0x65, 0x6e, 0x74, 0x42, 0x18, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x10, 0x65, 0x76,
	0x65, 0x6e, 0x74, 0x73, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x06,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x74, 0x78, 0x5f, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x45, 0x78, 0x65,
	0x63, 0x54, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x09, 0x74, 0x78, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x73, 0x12, 0x53, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
	0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x17, 0x63, 0x6f, 0x6e,
	0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f,
	0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x15, 0x63,
	0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x22,
	0x59, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a,
	0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f,
	0x75, 0x6e, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e,
	0x61, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x04, 0xc8,
	0xde, 0x1f, 0x00, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x69, 0x0a, 0x12, 0x45, 0x78,
	0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64,
	0x56, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x05,
	0x76, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x5d, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d,
	0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74,
	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x1c, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f,
	0x14, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x6f, 0x6d, 0x69, 0x74,
	0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
	0x73, 0x22, 0x4e, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
	0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x22, 0x80, 0x02, 0x0a, 0x0c, 0x45, 0x78, 0x65, 0x63, 0x54, 0x78, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f,
	0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04,
	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f,
	0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64,
	0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x06,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x45,
	0x76, 0x65, 0x6e, 0x74, 0x42, 0x18, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x10, 0x65, 0x76,
	0x65, 0x6e, 0x74, 0x73, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x06,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70,
	0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x08, 0x54, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12,
	0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12,
	0x3b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x54, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x04,
	0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3b, 0x0a, 0x09,
	0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x22, 0x64, 0x0a, 0x0f, 0x56, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x07,
	0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
	0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74,
	0x6f, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x04, 0xc8, 0xde, 0x1f,
	0x00, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77,
	0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x22,
	0x93, 0x01, 0x0a, 0x08, 0x56, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x09,
	0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x04, 0xc8, 0xde, 0x1f,
	0x00, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x41, 0x0a, 0x0d,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x46, 0x6c,
	0x61, 0x67, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x4a,
	0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0xf3, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x09, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e,
	0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52,
	0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x6f,
	0x74, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x0d, 0x76, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
	0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12,
	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x5f, 0x66,
	0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x49, 0x44, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49,
	0x64, 0x46, 0x6c, 0x61, 0x67, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x83, 0x02, 0x0a, 0x0b,
	0x4d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x4d, 0x69, 0x73, 0x62,
	0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x12, 0x3e, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e,
	0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
	0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
	0x72, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x04, 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, 0x08, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x04, 0x74,
	0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x76, 0x6f, 0x74,
	0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65,
	0x72, 0x22, 0x82, 0x01, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x16,
	0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06,
	0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16,
	0x0a, 0x06, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06,
	0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x39, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54,
	0x78, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x00, 0x1a, 0x07,
	0x8a, 0x9d, 0x20, 0x03, 0x4e, 0x65, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x45, 0x43, 0x48, 0x45,
	0x43, 0x4b, 0x10, 0x01, 0x1a, 0x0b, 0x8a, 0x9d, 0x20, 0x07, 0x52, 0x65, 0x63, 0x68, 0x65, 0x63,
	0x6b, 0x2a, 0x4b, 0x0a, 0x0f, 0x4d, 0x69, 0x73, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
	0x00, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x56,
	0x4f, 0x54, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x43,
	0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x4b, 0x10, 0x02, 0x32, 0x9d,
	0x0b, 0x0a, 0x04, 0x41, 0x42, 0x43, 0x49, 0x12, 0x43, 0x0a, 0x04, 0x45, 0x63, 0x68, 0x6f, 0x12,
	0x1c, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x63, 0x68, 0x6f, 0x1a, 0x1d, 0x2e,
	0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x46, 0x0a, 0x05,
	0x46, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46,
	0x6c, 0x75, 0x73, 0x68, 0x1a, 0x1e, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e,
	0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x46,
	0x6c, 0x75, 0x73, 0x68, 0x12, 0x43, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x2e, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x07, 0x43, 0x68, 0x65,
	0x63, 0x6b, 0x54, 0x78, 0x12, 0x1f, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e,
	0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x68,
	0x65, 0x63, 0x6b, 0x54, 0x78, 0x1a, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x78, 0x12, 0x46, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x12, 0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62,
	0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a,
	0x1e, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12,
	0x49, 0x0a, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x2e, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x52, 0x0a, 0x09, 0x49, 0x6e,
	0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x21, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x22, 0x2e, 0x74, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x5e,
	0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12,
	0x25, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61,
	0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x1a, 0x26, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d,
	0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x5e,
	0x0a, 0x0d, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12,
	0x25, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d,
	0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x6a,
	0x0a, 0x11, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68,
	0x75, 0x6e, 0x6b, 0x12, 0x29, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74,
	0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x61,
	0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x1a, 0x2a,
	0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69,
	0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x6e, 0x61,
	0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x6d, 0x0a, 0x12, 0x41, 0x70,
	0x70, 0x6c, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b,
	0x12, 0x2a, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62,
	0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x1a, 0x2b, 0x2e, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x6e, 0x61, 0x70,
	0x73, 0x68, 0x6f, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x64, 0x0a, 0x0f, 0x50, 0x72, 0x65,
	0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x27, 0x2e, 0x74,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f,
	0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x28, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12,
	0x64, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73,
	0x61, 0x6c, 0x12, 0x27, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e,
	0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63,
	0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x28, 0x2e, 0x74, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f,
	0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x55, 0x0a, 0x0a, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x56,
	0x6f, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74,
	0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74,
	0x65, 0x6e, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x23, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x70, 0x0a, 0x13,
	0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74,
	0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72,
	0x69, 0x66, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
	0x1a, 0x2c, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62,
	0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66,
	0x79, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5e,
	0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12,
	0x25, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63,
	0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a,
	0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x26, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d,
	0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0xa0,
	0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e,
	0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f,
	0x74, 0x6f, 0x50, 0x01, 0x5a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e,
	0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e,
	0x74, 0x2f, 0x61, 0x62, 0x63, 0x69, 0xa2, 0x02, 0x03, 0x54, 0x41, 0x58, 0xaa, 0x02, 0x0f, 0x54,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x41, 0x62, 0x63, 0x69, 0xca, 0x02,
	0x0f, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x5c, 0x41, 0x62, 0x63, 0x69,
	0xe2, 0x02, 0x1b, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x5c, 0x41, 0x62,
	0x63, 0x69, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02,
	0x10, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x3a, 0x3a, 0x41, 0x62, 0x63,
	0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_tendermint_abci_types_proto_rawDescOnce sync.Once
	file_tendermint_abci_types_proto_rawDescData = file_tendermint_abci_types_proto_rawDesc
)

func file_tendermint_abci_types_proto_rawDescGZIP() []byte {
	file_tendermint_abci_types_proto_rawDescOnce.Do(func() {
		file_tendermint_abci_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_tendermint_abci_types_proto_rawDescData)
	})
	return file_tendermint_abci_types_proto_rawDescData
}

var file_tendermint_abci_types_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_tendermint_abci_types_proto_msgTypes = make([]protoimpl.MessageInfo, 47)
var file_tendermint_abci_types_proto_goTypes = []interface{}{
	(CheckTxType)(0),                              // 0: tendermint.abci.CheckTxType
	(MisbehaviorType)(0),                          // 1: tendermint.abci.MisbehaviorType
	(ResponseOfferSnapshot_Result)(0),             // 2: tendermint.abci.ResponseOfferSnapshot.Result
	(ResponseApplySnapshotChunk_Result)(0),        // 3: tendermint.abci.ResponseApplySnapshotChunk.Result
	(ResponseProcessProposal_ProposalStatus)(0),   // 4: tendermint.abci.ResponseProcessProposal.ProposalStatus
	(ResponseVerifyVoteExtension_VerifyStatus)(0), // 5: tendermint.abci.ResponseVerifyVoteExtension.VerifyStatus
	(*Request)(nil),                               // 6: tendermint.abci.Request
	(*RequestEcho)(nil),                           // 7: tendermint.abci.RequestEcho
	(*RequestFlush)(nil),                          // 8: tendermint.abci.RequestFlush
	(*RequestInfo)(nil),                           // 9: tendermint.abci.RequestInfo
	(*RequestInitChain)(nil),                      // 10: tendermint.abci.RequestInitChain
	(*RequestQuery)(nil),                          // 11: tendermint.abci.RequestQuery
	(*RequestCheckTx)(nil),                        // 12: tendermint.abci.RequestCheckTx
	(*RequestCommit)(nil),                         // 13: tendermint.abci.RequestCommit
	(*RequestListSnapshots)(nil),                  // 14: tendermint.abci.RequestListSnapshots
	(*RequestOfferSnapshot)(nil),                  // 15: tendermint.abci.RequestOfferSnapshot
	(*RequestLoadSnapshotChunk)(nil),              // 16: tendermint.abci.RequestLoadSnapshotChunk
	(*RequestApplySnapshotChunk)(nil),             // 17: tendermint.abci.RequestApplySnapshotChunk
	(*RequestPrepareProposal)(nil),                // 18: tendermint.abci.RequestPrepareProposal
	(*RequestProcessProposal)(nil),                // 19: tendermint.abci.RequestProcessProposal
	(*RequestExtendVote)(nil),                     // 20: tendermint.abci.RequestExtendVote
	(*RequestVerifyVoteExtension)(nil),            // 21: tendermint.abci.RequestVerifyVoteExtension
	(*RequestFinalizeBlock)(nil),                  // 22: tendermint.abci.RequestFinalizeBlock
	(*Response)(nil),                              // 23: tendermint.abci.Response
	(*ResponseException)(nil),                     // 24: tendermint.abci.ResponseException
	(*ResponseEcho)(nil),                          // 25: tendermint.abci.ResponseEcho
	(*ResponseFlush)(nil),                         // 26: tendermint.abci.ResponseFlush
	(*ResponseInfo)(nil),                          // 27: tendermint.abci.ResponseInfo
	(*ResponseInitChain)(nil),                     // 28: tendermint.abci.ResponseInitChain
	(*ResponseQuery)(nil),                         // 29: tendermint.abci.ResponseQuery
	(*ResponseCheckTx)(nil),                       // 30: tendermint.abci.ResponseCheckTx
	(*ResponseCommit)(nil),                        // 31: tendermint.abci.ResponseCommit
	(*ResponseListSnapshots)(nil),                 // 32: tendermint.abci.ResponseListSnapshots
	(*ResponseOfferSnapshot)(nil),                 // 33: tendermint.abci.ResponseOfferSnapshot
	(*ResponseLoadSnapshotChunk)(nil),             // 34: tendermint.abci.ResponseLoadSnapshotChunk
	(*ResponseApplySnapshotChunk)(nil),            // 35: tendermint.abci.ResponseApplySnapshotChunk
	(*ResponsePrepareProposal)(nil),               // 36: tendermint.abci.ResponsePrepareProposal
	(*ResponseProcessProposal)(nil),               // 37: tendermint.abci.ResponseProcessProposal
	(*ResponseExtendVote)(nil),                    // 38: tendermint.abci.ResponseExtendVote
	(*ResponseVerifyVoteExtension)(nil),           // 39: tendermint.abci.ResponseVerifyVoteExtension
	(*ResponseFinalizeBlock)(nil),                 // 40: tendermint.abci.ResponseFinalizeBlock
	(*CommitInfo)(nil),                            // 41: tendermint.abci.CommitInfo
	(*ExtendedCommitInfo)(nil),                    // 42: tendermint.abci.ExtendedCommitInfo
	(*Event)(nil),                                 // 43: tendermint.abci.Event
	(*EventAttribute)(nil),                        // 44: tendermint.abci.EventAttribute
	(*ExecTxResult)(nil),                          // 45: tendermint.abci.ExecTxResult
	(*TxResult)(nil),                              // 46: tendermint.abci.TxResult
	(*Validator)(nil),                             // 47: tendermint.abci.Validator
	(*ValidatorUpdate)(nil),                       // 48: tendermint.abci.ValidatorUpdate
	(*VoteInfo)(nil),                              // 49: tendermint.abci.VoteInfo
	(*ExtendedVoteInfo)(nil),                      // 50: tendermint.abci.ExtendedVoteInfo
	(*Misbehavior)(nil),                           // 51: tendermint.abci.Misbehavior
	(*Snapshot)(nil),                              // 52: tendermint.abci.Snapshot
	(*timestamppb.Timestamp)(nil),                 // 53: google.protobuf.Timestamp
	(*types.ConsensusParams)(nil),                 // 54: tendermint.types.ConsensusParams
	(*crypto.ProofOps)(nil),                       // 55: tendermint.crypto.ProofOps
	(*crypto.PublicKey)(nil),                      // 56: tendermint.crypto.PublicKey
	(types.BlockIDFlag)(0),                        // 57: tendermint.types.BlockIDFlag
}
var file_tendermint_abci_types_proto_depIdxs = []int32{
	7,  // 0: tendermint.abci.Request.echo:type_name -> tendermint.abci.RequestEcho
	8,  // 1: tendermint.abci.Request.flush:type_name -> tendermint.abci.RequestFlush
	9,  // 2: tendermint.abci.Request.info:type_name -> tendermint.abci.RequestInfo
	10, // 3: tendermint.abci.Request.init_chain:type_name -> tendermint.abci.RequestInitChain
	11, // 4: tendermint.abci.Request.query:type_name -> tendermint.abci.RequestQuery
	12, // 5: tendermint.abci.Request.check_tx:type_name -> tendermint.abci.RequestCheckTx
	13, // 6: tendermint.abci.Request.commit:type_name -> tendermint.abci.RequestCommit
	14, // 7: tendermint.abci.Request.list_snapshots:type_name -> tendermint.abci.RequestListSnapshots
	15, // 8: tendermint.abci.Request.offer_snapshot:type_name -> tendermint.abci.RequestOfferSnapshot
	16, // 9: tendermint.abci.Request.load_snapshot_chunk:type_name -> tendermint.abci.RequestLoadSnapshotChunk
	17, // 10: tendermint.abci.Request.apply_snapshot_chunk:type_name -> tendermint.abci.RequestApplySnapshotChunk
	18, // 11: tendermint.abci.Request.prepare_proposal:type_name -> tendermint.abci.RequestPrepareProposal
	19, // 12: tendermint.abci.Request.process_proposal:type_name -> tendermint.abci.RequestProcessProposal
	20, // 13: tendermint.abci.Request.extend_vote:type_name -> tendermint.abci.RequestExtendVote
	21, // 14: tendermint.abci.Request.verify_vote_extension:type_name -> tendermint.abci.RequestVerifyVoteExtension
	22, // 15: tendermint.abci.Request.finalize_block:type_name -> tendermint.abci.RequestFinalizeBlock
	53, // 16: tendermint.abci.RequestInitChain.time:type_name -> google.protobuf.Timestamp
	54, // 17: tendermint.abci.RequestInitChain.consensus_params:type_name -> tendermint.types.ConsensusParams
	48, // 18: tendermint.abci.RequestInitChain.validators:type_name -> tendermint.abci.ValidatorUpdate
	0,  // 19: tendermint.abci.RequestCheckTx.type:type_name -> tendermint.abci.CheckTxType
	52, // 20: tendermint.abci.RequestOfferSnapshot.snapshot:type_name -> tendermint.abci.Snapshot
	42, // 21: tendermint.abci.RequestPrepareProposal.local_last_commit:type_name -> tendermint.abci.ExtendedCommitInfo
	51, // 22: tendermint.abci.RequestPrepareProposal.misbehavior:type_name -> tendermint.abci.Misbehavior
	53, // 23: tendermint.abci.RequestPrepareProposal.time:type_name -> google.protobuf.Timestamp
	41, // 24: tendermint.abci.RequestProcessProposal.proposed_last_commit:type_name -> tendermint.abci.CommitInfo
	51, // 25: tendermint.abci.RequestProcessProposal.misbehavior:type_name -> tendermint.abci.Misbehavior
	53, // 26: tendermint.abci.RequestProcessProposal.time:type_name -> google.protobuf.Timestamp
	53, // 27: tendermint.abci.RequestExtendVote.time:type_name -> google.protobuf.Timestamp
	41, // 28: tendermint.abci.RequestExtendVote.proposed_last_commit:type_name -> tendermint.abci.CommitInfo
	51, // 29: tendermint.abci.RequestExtendVote.misbehavior:type_name -> tendermint.abci.Misbehavior
	41, // 30: tendermint.abci.RequestFinalizeBlock.decided_last_commit:type_name -> tendermint.abci.CommitInfo
	51, // 31: tendermint.abci.RequestFinalizeBlock.misbehavior:type_name -> tendermint.abci.Misbehavior
	53, // 32: tendermint.abci.RequestFinalizeBlock.time:type_name -> google.protobuf.Timestamp
	24, // 33: tendermint.abci.Response.exception:type_name -> tendermint.abci.ResponseException
	25, // 34: tendermint.abci.Response.echo:type_name -> tendermint.abci.ResponseEcho
	26, // 35: tendermint.abci.Response.flush:type_name -> tendermint.abci.ResponseFlush
	27, // 36: tendermint.abci.Response.info:type_name -> tendermint.abci.ResponseInfo
	28, // 37: tendermint.abci.Response.init_chain:type_name -> tendermint.abci.ResponseInitChain
	29, // 38: tendermint.abci.Response.query:type_name -> tendermint.abci.ResponseQuery
	30, // 39: tendermint.abci.Response.check_tx:type_name -> tendermint.abci.ResponseCheckTx
	31, // 40: tendermint.abci.Response.commit:type_name -> tendermint.abci.ResponseCommit
	32, // 41: tendermint.abci.Response.list_snapshots:type_name -> tendermint.abci.ResponseListSnapshots
	33, // 42: tendermint.abci.Response.offer_snapshot:type_name -> tendermint.abci.ResponseOfferSnapshot
	34, // 43: tendermint.abci.Response.load_snapshot_chunk:type_name -> tendermint.abci.ResponseLoadSnapshotChunk
	35, // 44: tendermint.abci.Response.apply_snapshot_chunk:type_name -> tendermint.abci.ResponseApplySnapshotChunk
	36, // 45: tendermint.abci.Response.prepare_proposal:type_name -> tendermint.abci.ResponsePrepareProposal
	37, // 46: tendermint.abci.Response.process_proposal:type_name -> tendermint.abci.ResponseProcessProposal
	38, // 47: tendermint.abci.Response.extend_vote:type_name -> tendermint.abci.ResponseExtendVote
	39, // 48: tendermint.abci.Response.verify_vote_extension:type_name -> tendermint.abci.ResponseVerifyVoteExtension
	40, // 49: tendermint.abci.Response.finalize_block:type_name -> tendermint.abci.ResponseFinalizeBlock
	54, // 50: tendermint.abci.ResponseInitChain.consensus_params:type_name -> tendermint.types.ConsensusParams
	48, // 51: tendermint.abci.ResponseInitChain.validators:type_name -> tendermint.abci.ValidatorUpdate
	55, // 52: tendermint.abci.ResponseQuery.proof_ops:type_name -> tendermint.crypto.ProofOps
	43, // 53: tendermint.abci.ResponseCheckTx.events:type_name -> tendermint.abci.Event
	52, // 54: tendermint.abci.ResponseListSnapshots.snapshots:type_name -> tendermint.abci.Snapshot
	2,  // 55: tendermint.abci.ResponseOfferSnapshot.result:type_name -> tendermint.abci.ResponseOfferSnapshot.Result
	3,  // 56: tendermint.abci.ResponseApplySnapshotChunk.result:type_name -> tendermint.abci.ResponseApplySnapshotChunk.Result
	4,  // 57: tendermint.abci.ResponseProcessProposal.status:type_name -> tendermint.abci.ResponseProcessProposal.ProposalStatus
	5,  // 58: tendermint.abci.ResponseVerifyVoteExtension.status:type_name -> tendermint.abci.ResponseVerifyVoteExtension.VerifyStatus
	43, // 59: tendermint.abci.ResponseFinalizeBlock.events:type_name -> tendermint.abci.Event
	45, // 60: tendermint.abci.ResponseFinalizeBlock.tx_results:type_name -> tendermint.abci.ExecTxResult
	48, // 61: tendermint.abci.ResponseFinalizeBlock.validator_updates:type_name -> tendermint.abci.ValidatorUpdate
	54, // 62: tendermint.abci.ResponseFinalizeBlock.consensus_param_updates:type_name -> tendermint.types.ConsensusParams
	49, // 63: tendermint.abci.CommitInfo.votes:type_name -> tendermint.abci.VoteInfo
	50, // 64: tendermint.abci.ExtendedCommitInfo.votes:type_name -> tendermint.abci.ExtendedVoteInfo
	44, // 65: tendermint.abci.Event.attributes:type_name -> tendermint.abci.EventAttribute
	43, // 66: tendermint.abci.ExecTxResult.events:type_name -> tendermint.abci.Event
	45, // 67: tendermint.abci.TxResult.result:type_name -> tendermint.abci.ExecTxResult
	56, // 68: tendermint.abci.ValidatorUpdate.pub_key:type_name -> tendermint.crypto.PublicKey
	47, // 69: tendermint.abci.VoteInfo.validator:type_name -> tendermint.abci.Validator
	57, // 70: tendermint.abci.VoteInfo.block_id_flag:type_name -> tendermint.types.BlockIDFlag
	47, // 71: tendermint.abci.ExtendedVoteInfo.validator:type_name -> tendermint.abci.Validator
	57, // 72: tendermint.abci.ExtendedVoteInfo.block_id_flag:type_name -> tendermint.types.BlockIDFlag
	1,  // 73: tendermint.abci.Misbehavior.type:type_name -> tendermint.abci.MisbehaviorType
	47, // 74: tendermint.abci.Misbehavior.validator:type_name -> tendermint.abci.Validator
	53, // 75: tendermint.abci.Misbehavior.time:type_name -> google.protobuf.Timestamp
	7,  // 76: tendermint.abci.ABCI.Echo:input_type -> tendermint.abci.RequestEcho
	8,  // 77: tendermint.abci.ABCI.Flush:input_type -> tendermint.abci.RequestFlush
	9,  // 78: tendermint.abci.ABCI.Info:input_type -> tendermint.abci.RequestInfo
	12, // 79: tendermint.abci.ABCI.CheckTx:input_type -> tendermint.abci.RequestCheckTx
	11, // 80: tendermint.abci.ABCI.Query:input_type -> tendermint.abci.RequestQuery
	13, // 81: tendermint.abci.ABCI.Commit:input_type -> tendermint.abci.RequestCommit
	10, // 82: tendermint.abci.ABCI.InitChain:input_type -> tendermint.abci.RequestInitChain
	14, // 83: tendermint.abci.ABCI.ListSnapshots:input_type -> tendermint.abci.RequestListSnapshots
	15, // 84: tendermint.abci.ABCI.OfferSnapshot:input_type -> tendermint.abci.RequestOfferSnapshot
	16, // 85: tendermint.abci.ABCI.LoadSnapshotChunk:input_type -> tendermint.abci.RequestLoadSnapshotChunk
	17, // 86: tendermint.abci.ABCI.ApplySnapshotChunk:input_type -> tendermint.abci.RequestApplySnapshotChunk
	18, // 87: tendermint.abci.ABCI.PrepareProposal:input_type -> tendermint.abci.RequestPrepareProposal
	19, // 88: tendermint.abci.ABCI.ProcessProposal:input_type -> tendermint.abci.RequestProcessProposal
	20, // 89: tendermint.abci.ABCI.ExtendVote:input_type -> tendermint.abci.RequestExtendVote
	21, // 90: tendermint.abci.ABCI.VerifyVoteExtension:input_type -> tendermint.abci.RequestVerifyVoteExtension
	22, // 91: tendermint.abci.ABCI.FinalizeBlock:input_type -> tendermint.abci.RequestFinalizeBlock
	25, // 92: tendermint.abci.ABCI.Echo:output_type -> tendermint.abci.ResponseEcho
	26, // 93: tendermint.abci.ABCI.Flush:output_type -> tendermint.abci.ResponseFlush
	27, // 94: tendermint.abci.ABCI.Info:output_type -> tendermint.abci.ResponseInfo
	30, // 95: tendermint.abci.ABCI.CheckTx:output_type -> tendermint.abci.ResponseCheckTx
	29, // 96: tendermint.abci.ABCI.Query:output_type -> tendermint.abci.ResponseQuery
	31, // 97: tendermint.abci.ABCI.Commit:output_type -> tendermint.abci.ResponseCommit
	28, // 98: tendermint.abci.ABCI.InitChain:output_type -> tendermint.abci.ResponseInitChain
	32, // 99: tendermint.abci.ABCI.ListSnapshots:output_type -> tendermint.abci.ResponseListSnapshots
	33, // 100: tendermint.abci.ABCI.OfferSnapshot:output_type -> tendermint.abci.ResponseOfferSnapshot
	34, // 101: tendermint.abci.ABCI.LoadSnapshotChunk:output_type -> tendermint.abci.ResponseLoadSnapshotChunk
	35, // 102: tendermint.abci.ABCI.ApplySnapshotChunk:output_type -> tendermint.abci.ResponseApplySnapshotChunk
	36, // 103: tendermint.abci.ABCI.PrepareProposal:output_type -> tendermint.abci.ResponsePrepareProposal
	37, // 104: tendermint.abci.ABCI.ProcessProposal:output_type -> tendermint.abci.ResponseProcessProposal
	38, // 105: tendermint.abci.ABCI.ExtendVote:output_type -> tendermint.abci.ResponseExtendVote
	39, // 106: tendermint.abci.ABCI.VerifyVoteExtension:output_type -> tendermint.abci.ResponseVerifyVoteExtension
	40, // 107: tendermint.abci.ABCI.FinalizeBlock:output_type -> tendermint.abci.ResponseFinalizeBlock
	92, // [92:108] is the sub-list for method output_type
	76, // [76:92] is the sub-list for method input_type
	76, // [76:76] is the sub-list for extension type_name
	76, // [76:76] is the sub-list for extension extendee
	0,  // [0:76] is the sub-list for field type_name
}

func init() { file_tendermint_abci_types_proto_init() }
func file_tendermint_abci_types_proto_init() {
	if File_tendermint_abci_types_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_tendermint_abci_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestEcho); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestFlush); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestInitChain); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestQuery); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestCheckTx); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestCommit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestListSnapshots); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestOfferSnapshot); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestLoadSnapshotChunk); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestApplySnapshotChunk); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestPrepareProposal); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestProcessProposal); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestExtendVote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestVerifyVoteExtension); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RequestFinalizeBlock); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Response); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseException); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseEcho); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseFlush); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseInitChain); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseQuery); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseCheckTx); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseCommit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseListSnapshots); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseOfferSnapshot); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseLoadSnapshotChunk); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseApplySnapshotChunk); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponsePrepareProposal); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseProcessProposal); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseExtendVote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseVerifyVoteExtension); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResponseFinalizeBlock); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExtendedCommitInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Event); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EventAttribute); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecTxResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TxResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[41].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_tendermint_abci_types_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ValidatorUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VoteInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExtendedVoteInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Misbehavior); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_abci_types_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Snapshot); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_tendermint_abci_types_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*Request_Echo)(nil),
		(*Request_Flush)(nil),
		(*Request_Info)(nil),
		(*Request_InitChain)(nil),
		(*Request_Query)(nil),
		(*Request_CheckTx)(nil),
		(*Request_Commit)(nil),
		(*Request_ListSnapshots)(nil),
		(*Request_OfferSnapshot)(nil),
		(*Request_LoadSnapshotChunk)(nil),
		(*Request_ApplySnapshotChunk)(nil),
		(*Request_PrepareProposal)(nil),
		(*Request_ProcessProposal)(nil),
		(*Request_ExtendVote)(nil),
		(*Request_VerifyVoteExtension)(nil),
		(*Request_FinalizeBlock)(nil),
	}
	file_tendermint_abci_types_proto_msgTypes[17].OneofWrappers = []interface{}{
		(*Response_Exception)(nil),
		(*Response_Echo)(nil),
		(*Response_Flush)(nil),
		(*Response_Info)(nil),
		(*Response_InitChain)(nil),
		(*Response_Query)(nil),
		(*Response_CheckTx)(nil),
		(*Response_Commit)(nil),
		(*Response_ListSnapshots)(nil),
		(*Response_OfferSnapshot)(nil),
		(*Response_LoadSnapshotChunk)(nil),
		(*Response_ApplySnapshotChunk)(nil),
		(*Response_PrepareProposal)(nil),
		(*Response_ProcessProposal)(nil),
		(*Response_ExtendVote)(nil),
		(*Response_VerifyVoteExtension)(nil),
		(*Response_FinalizeBlock)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_tendermint_abci_types_proto_rawDesc,
			NumEnums:      6,
			NumMessages:   47,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_tendermint_abci_types_proto_goTypes,
		DependencyIndexes: file_tendermint_abci_types_proto_depIdxs,
		EnumInfos:         file_tendermint_abci_types_proto_enumTypes,
		MessageInfos:      file_tendermint_abci_types_proto_msgTypes,
	}.Build()
	File_tendermint_abci_types_proto = out.File
	file_tendermint_abci_types_proto_rawDesc = nil
	file_tendermint_abci_types_proto_goTypes = nil
	file_tendermint_abci_types_proto_depIdxs = nil
}
