// Code generated by protoc-gen-go. DO NOT EDIT.
// source: message.proto

package rpc

import (
	fmt "fmt"
	entity "github.com/celer-network/goCeler/entity"
	proto "github.com/golang/protobuf/proto"
	any "github.com/golang/protobuf/ptypes/any"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Next Tag: 11
type ErrCode int32

const (
	// reserve 0 so not setting this is not a valid error code
	ErrCode_OK ErrCode = 0
	// not yet authreq/authack
	ErrCode_UNAUTHORIZED ErrCode = 1
	// sig in authreq can't recover claimed my_addr
	ErrCode_INVALID_SIG ErrCode = 2
	// timestamp in req out of allowed range
	ErrCode_INCORRECT_CLOCK ErrCode = 3
	// I'm not your expected peer
	ErrCode_WRONG_PEER ErrCode = 4
	// invalid simplex state sequence number
	ErrCode_INVALID_SEQ_NUM ErrCode = 5
	// forwared the pay before and receiving again, probably a loop.
	ErrCode_PAY_ROUTE_LOOP ErrCode = 6
	// can't find a route to dst.
	ErrCode_NO_ROUTE_TO_DST ErrCode = 7
	// not enough balance
	ErrCode_NOT_ENOUGH_BALANCE ErrCode = 8
	// peer not online
	ErrCode_PEER_NOT_ONLINE ErrCode = 9
	// no specified error code
	ErrCode_MISC_ERROR ErrCode = 10
)

var ErrCode_name = map[int32]string{
	0:  "OK",
	1:  "UNAUTHORIZED",
	2:  "INVALID_SIG",
	3:  "INCORRECT_CLOCK",
	4:  "WRONG_PEER",
	5:  "INVALID_SEQ_NUM",
	6:  "PAY_ROUTE_LOOP",
	7:  "NO_ROUTE_TO_DST",
	8:  "NOT_ENOUGH_BALANCE",
	9:  "PEER_NOT_ONLINE",
	10: "MISC_ERROR",
}

var ErrCode_value = map[string]int32{
	"OK":                 0,
	"UNAUTHORIZED":       1,
	"INVALID_SIG":        2,
	"INCORRECT_CLOCK":    3,
	"WRONG_PEER":         4,
	"INVALID_SEQ_NUM":    5,
	"PAY_ROUTE_LOOP":     6,
	"NO_ROUTE_TO_DST":    7,
	"NOT_ENOUGH_BALANCE": 8,
	"PEER_NOT_ONLINE":    9,
	"MISC_ERROR":         10,
}

func (x ErrCode) String() string {
	return proto.EnumName(ErrCode_name, int32(x))
}

func (ErrCode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{0}
}

// Next Tag: 7
type PaymentSettleReason int32

const (
	PaymentSettleReason_NONE                 PaymentSettleReason = 0
	PaymentSettleReason_PAY_EXPIRED          PaymentSettleReason = 1
	PaymentSettleReason_PAY_REJECTED         PaymentSettleReason = 2
	PaymentSettleReason_PAY_RESOLVED_ONCHAIN PaymentSettleReason = 3
	PaymentSettleReason_PAY_PAID_MAX         PaymentSettleReason = 4
	PaymentSettleReason_PAY_DEST_UNREACHABLE PaymentSettleReason = 5
	PaymentSettleReason_PAY_VOUCHED          PaymentSettleReason = 6
)

var PaymentSettleReason_name = map[int32]string{
	0: "NONE",
	1: "PAY_EXPIRED",
	2: "PAY_REJECTED",
	3: "PAY_RESOLVED_ONCHAIN",
	4: "PAY_PAID_MAX",
	5: "PAY_DEST_UNREACHABLE",
	6: "PAY_VOUCHED",
}

var PaymentSettleReason_value = map[string]int32{
	"NONE":                 0,
	"PAY_EXPIRED":          1,
	"PAY_REJECTED":         2,
	"PAY_RESOLVED_ONCHAIN": 3,
	"PAY_PAID_MAX":         4,
	"PAY_DEST_UNREACHABLE": 5,
	"PAY_VOUCHED":          6,
}

func (x PaymentSettleReason) String() string {
	return proto.EnumName(PaymentSettleReason_name, int32(x))
}

func (PaymentSettleReason) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{1}
}

// Next Tag: 3
type OpenChannelBy int32

const (
	OpenChannelBy_UNDEFINED_OPEN_BY     OpenChannelBy = 0
	OpenChannelBy_OPEN_CHANNEL_PROPOSER OpenChannelBy = 1
	OpenChannelBy_OPEN_CHANNEL_APPROVER OpenChannelBy = 2
)

var OpenChannelBy_name = map[int32]string{
	0: "UNDEFINED_OPEN_BY",
	1: "OPEN_CHANNEL_PROPOSER",
	2: "OPEN_CHANNEL_APPROVER",
}

var OpenChannelBy_value = map[string]int32{
	"UNDEFINED_OPEN_BY":     0,
	"OPEN_CHANNEL_PROPOSER": 1,
	"OPEN_CHANNEL_APPROVER": 2,
}

func (x OpenChannelBy) String() string {
	return proto.EnumName(OpenChannelBy_name, int32(x))
}

func (OpenChannelBy) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{2}
}

// Next Tag: 4
type OpenChannelStatus int32

const (
	OpenChannelStatus_UNDEFINED_OPEN_CHANNEL_STATUS OpenChannelStatus = 0
	// OpenChannel is approved by approver.
	// But no on-chain transaction has been made.
	OpenChannelStatus_OPEN_CHANNEL_APPROVED OpenChannelStatus = 1
	// OpenChannel transaction is submitted on-chain by approver.
	OpenChannelStatus_OPEN_CHANNEL_TX_SUBMITTED OpenChannelStatus = 2
	OpenChannelStatus_OPEN_CHANNEL_TCB_OPENED   OpenChannelStatus = 3
)

var OpenChannelStatus_name = map[int32]string{
	0: "UNDEFINED_OPEN_CHANNEL_STATUS",
	1: "OPEN_CHANNEL_APPROVED",
	2: "OPEN_CHANNEL_TX_SUBMITTED",
	3: "OPEN_CHANNEL_TCB_OPENED",
}

var OpenChannelStatus_value = map[string]int32{
	"UNDEFINED_OPEN_CHANNEL_STATUS": 0,
	"OPEN_CHANNEL_APPROVED":         1,
	"OPEN_CHANNEL_TX_SUBMITTED":     2,
	"OPEN_CHANNEL_TCB_OPENED":       3,
}

func (x OpenChannelStatus) String() string {
	return proto.EnumName(OpenChannelStatus_name, int32(x))
}

func (OpenChannelStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{3}
}

// JoinCelerStatus describes the status of a endpoint in Celer network
// Next Tag: 3
type JoinCelerStatus int32

const (
	// Endpoint has not joined in Celer Network yet,
	// does not have any celer channel with any Osp in Celer Network
	JoinCelerStatus_NOT_JOIN JoinCelerStatus = 0
	// Endpoint has a celer channel with the Osp responding this msg
	JoinCelerStatus_LOCAL JoinCelerStatus = 1
	// Endpoint does not have a celer channel with the Osp responding this msg,
	// but has a celer channel with another remote Osp
	JoinCelerStatus_REMOTE JoinCelerStatus = 2
)

var JoinCelerStatus_name = map[int32]string{
	0: "NOT_JOIN",
	1: "LOCAL",
	2: "REMOTE",
}

var JoinCelerStatus_value = map[string]int32{
	"NOT_JOIN": 0,
	"LOCAL":    1,
	"REMOTE":   2,
}

func (x JoinCelerStatus) String() string {
	return proto.EnumName(JoinCelerStatus_name, int32(x))
}

func (JoinCelerStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{4}
}

// MID is the message identifier, used as map key for unary over stream
// NOTE: all field types must be golang comparable so map[MID] can work
// Auth requester should set its mid to start_mid in AuthAck
type MID struct {
	// tag is string to identify requester to avoid seq conflict
	// for a typical req/resp flow, both req and resp messages have the same tag
	// that identifies requester, and same seq so requester side can correlate
	// resp with req
	Tag string `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"`
	// sender must increment seq for new messages
	Seq                  uint64   `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MID) Reset()         { *m = MID{} }
func (m *MID) String() string { return proto.CompactTextString(m) }
func (*MID) ProtoMessage()    {}
func (*MID) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{0}
}

func (m *MID) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MID.Unmarshal(m, b)
}
func (m *MID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MID.Marshal(b, m, deterministic)
}
func (m *MID) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MID.Merge(m, src)
}
func (m *MID) XXX_Size() int {
	return xxx_messageInfo_MID.Size(m)
}
func (m *MID) XXX_DiscardUnknown() {
	xxx_messageInfo_MID.DiscardUnknown(m)
}

var xxx_messageInfo_MID proto.InternalMessageInfo

func (m *MID) GetTag() string {
	if m != nil {
		return m.Tag
	}
	return ""
}

func (m *MID) GetSeq() uint64 {
	if m != nil {
		return m.Seq
	}
	return 0
}

// Envelope msg for unified bidi-streaming
type CelerMsg struct {
	Mid *MID `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"`
	// if ret_mid is set in received msg, use it as mid in next msg to send
	// this is to support multi-msg exchanges and let both ends be able to correlate
	// their own MID req/resp
	RetMid *MID `protobuf:"bytes,2,opt,name=ret_mid,json=retMid,proto3" json:"ret_mid,omitempty"`
	// bitmask flags for nature of this msg, eg. End2End, First msg in subflow, Last of subflow etc
	Flag uint64 `protobuf:"varint,3,opt,name=flag,proto3" json:"flag,omitempty"`
	// to_addr is only used for end-to-end msg to save relay node looking into payload
	// for hop-by-hop, expected peer addr is already checked in authreq/ack so no need in every msg
	ToAddr []byte `protobuf:"bytes,4,opt,name=to_addr,json=toAddr,proto3" json:"to_addr,omitempty"`
	// Types that are valid to be assigned to Message:
	//	*CelerMsg_Error
	//	*CelerMsg_AuthReq
	//	*CelerMsg_AuthAck
	//	*CelerMsg_CondPayRequest
	//	*CelerMsg_CondPayResponse
	//	*CelerMsg_PaymentSettleProof
	//	*CelerMsg_PaymentSettleRequest
	//	*CelerMsg_PaymentSettleResponse
	//	*CelerMsg_WithdrawRequest
	//	*CelerMsg_WithdrawResponse
	//	*CelerMsg_RoutingRequest
	//	*CelerMsg_CondPayReceipt
	//	*CelerMsg_RevealSecret
	//	*CelerMsg_RevealSecretAck
	//	*CelerMsg_PayResultVouchRequest
	//	*CelerMsg_PayResultVouchResponse
	Message              isCelerMsg_Message `protobuf_oneof:"message"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *CelerMsg) Reset()         { *m = CelerMsg{} }
func (m *CelerMsg) String() string { return proto.CompactTextString(m) }
func (*CelerMsg) ProtoMessage()    {}
func (*CelerMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{1}
}

func (m *CelerMsg) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CelerMsg.Unmarshal(m, b)
}
func (m *CelerMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CelerMsg.Marshal(b, m, deterministic)
}
func (m *CelerMsg) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CelerMsg.Merge(m, src)
}
func (m *CelerMsg) XXX_Size() int {
	return xxx_messageInfo_CelerMsg.Size(m)
}
func (m *CelerMsg) XXX_DiscardUnknown() {
	xxx_messageInfo_CelerMsg.DiscardUnknown(m)
}

var xxx_messageInfo_CelerMsg proto.InternalMessageInfo

func (m *CelerMsg) GetMid() *MID {
	if m != nil {
		return m.Mid
	}
	return nil
}

func (m *CelerMsg) GetRetMid() *MID {
	if m != nil {
		return m.RetMid
	}
	return nil
}

func (m *CelerMsg) GetFlag() uint64 {
	if m != nil {
		return m.Flag
	}
	return 0
}

func (m *CelerMsg) GetToAddr() []byte {
	if m != nil {
		return m.ToAddr
	}
	return nil
}

type isCelerMsg_Message interface {
	isCelerMsg_Message()
}

type CelerMsg_Error struct {
	Error *Error `protobuf:"bytes,6,opt,name=error,proto3,oneof"`
}

type CelerMsg_AuthReq struct {
	AuthReq *AuthReq `protobuf:"bytes,7,opt,name=auth_req,json=authReq,proto3,oneof"`
}

type CelerMsg_AuthAck struct {
	AuthAck *AuthAck `protobuf:"bytes,8,opt,name=auth_ack,json=authAck,proto3,oneof"`
}

type CelerMsg_CondPayRequest struct {
	CondPayRequest *CondPayRequest `protobuf:"bytes,9,opt,name=cond_pay_request,json=condPayRequest,proto3,oneof"`
}

type CelerMsg_CondPayResponse struct {
	CondPayResponse *CondPayResponse `protobuf:"bytes,10,opt,name=cond_pay_response,json=condPayResponse,proto3,oneof"`
}

type CelerMsg_PaymentSettleProof struct {
	PaymentSettleProof *PaymentSettleProof `protobuf:"bytes,11,opt,name=payment_settle_proof,json=paymentSettleProof,proto3,oneof"`
}

type CelerMsg_PaymentSettleRequest struct {
	PaymentSettleRequest *PaymentSettleRequest `protobuf:"bytes,12,opt,name=payment_settle_request,json=paymentSettleRequest,proto3,oneof"`
}

type CelerMsg_PaymentSettleResponse struct {
	PaymentSettleResponse *PaymentSettleResponse `protobuf:"bytes,13,opt,name=payment_settle_response,json=paymentSettleResponse,proto3,oneof"`
}

type CelerMsg_WithdrawRequest struct {
	WithdrawRequest *CooperativeWithdrawRequest `protobuf:"bytes,14,opt,name=withdraw_request,json=withdrawRequest,proto3,oneof"`
}

type CelerMsg_WithdrawResponse struct {
	WithdrawResponse *CooperativeWithdrawResponse `protobuf:"bytes,15,opt,name=withdraw_response,json=withdrawResponse,proto3,oneof"`
}

type CelerMsg_RoutingRequest struct {
	RoutingRequest *RoutingRequest `protobuf:"bytes,16,opt,name=routing_request,json=routingRequest,proto3,oneof"`
}

type CelerMsg_CondPayReceipt struct {
	CondPayReceipt *CondPayReceipt `protobuf:"bytes,31,opt,name=cond_pay_receipt,json=condPayReceipt,proto3,oneof"`
}

type CelerMsg_RevealSecret struct {
	RevealSecret *RevealSecret `protobuf:"bytes,32,opt,name=reveal_secret,json=revealSecret,proto3,oneof"`
}

type CelerMsg_RevealSecretAck struct {
	RevealSecretAck *RevealSecretAck `protobuf:"bytes,33,opt,name=reveal_secret_ack,json=revealSecretAck,proto3,oneof"`
}

type CelerMsg_PayResultVouchRequest struct {
	PayResultVouchRequest *entity.VouchedCondPayResult `protobuf:"bytes,34,opt,name=pay_result_vouch_request,json=payResultVouchRequest,proto3,oneof"`
}

type CelerMsg_PayResultVouchResponse struct {
	PayResultVouchResponse *entity.VouchedCondPayResult `protobuf:"bytes,35,opt,name=pay_result_vouch_response,json=payResultVouchResponse,proto3,oneof"`
}

func (*CelerMsg_Error) isCelerMsg_Message() {}

func (*CelerMsg_AuthReq) isCelerMsg_Message() {}

func (*CelerMsg_AuthAck) isCelerMsg_Message() {}

func (*CelerMsg_CondPayRequest) isCelerMsg_Message() {}

func (*CelerMsg_CondPayResponse) isCelerMsg_Message() {}

func (*CelerMsg_PaymentSettleProof) isCelerMsg_Message() {}

func (*CelerMsg_PaymentSettleRequest) isCelerMsg_Message() {}

func (*CelerMsg_PaymentSettleResponse) isCelerMsg_Message() {}

func (*CelerMsg_WithdrawRequest) isCelerMsg_Message() {}

func (*CelerMsg_WithdrawResponse) isCelerMsg_Message() {}

func (*CelerMsg_RoutingRequest) isCelerMsg_Message() {}

func (*CelerMsg_CondPayReceipt) isCelerMsg_Message() {}

func (*CelerMsg_RevealSecret) isCelerMsg_Message() {}

func (*CelerMsg_RevealSecretAck) isCelerMsg_Message() {}

func (*CelerMsg_PayResultVouchRequest) isCelerMsg_Message() {}

func (*CelerMsg_PayResultVouchResponse) isCelerMsg_Message() {}

func (m *CelerMsg) GetMessage() isCelerMsg_Message {
	if m != nil {
		return m.Message
	}
	return nil
}

func (m *CelerMsg) GetError() *Error {
	if x, ok := m.GetMessage().(*CelerMsg_Error); ok {
		return x.Error
	}
	return nil
}

func (m *CelerMsg) GetAuthReq() *AuthReq {
	if x, ok := m.GetMessage().(*CelerMsg_AuthReq); ok {
		return x.AuthReq
	}
	return nil
}

func (m *CelerMsg) GetAuthAck() *AuthAck {
	if x, ok := m.GetMessage().(*CelerMsg_AuthAck); ok {
		return x.AuthAck
	}
	return nil
}

func (m *CelerMsg) GetCondPayRequest() *CondPayRequest {
	if x, ok := m.GetMessage().(*CelerMsg_CondPayRequest); ok {
		return x.CondPayRequest
	}
	return nil
}

func (m *CelerMsg) GetCondPayResponse() *CondPayResponse {
	if x, ok := m.GetMessage().(*CelerMsg_CondPayResponse); ok {
		return x.CondPayResponse
	}
	return nil
}

func (m *CelerMsg) GetPaymentSettleProof() *PaymentSettleProof {
	if x, ok := m.GetMessage().(*CelerMsg_PaymentSettleProof); ok {
		return x.PaymentSettleProof
	}
	return nil
}

func (m *CelerMsg) GetPaymentSettleRequest() *PaymentSettleRequest {
	if x, ok := m.GetMessage().(*CelerMsg_PaymentSettleRequest); ok {
		return x.PaymentSettleRequest
	}
	return nil
}

func (m *CelerMsg) GetPaymentSettleResponse() *PaymentSettleResponse {
	if x, ok := m.GetMessage().(*CelerMsg_PaymentSettleResponse); ok {
		return x.PaymentSettleResponse
	}
	return nil
}

func (m *CelerMsg) GetWithdrawRequest() *CooperativeWithdrawRequest {
	if x, ok := m.GetMessage().(*CelerMsg_WithdrawRequest); ok {
		return x.WithdrawRequest
	}
	return nil
}

func (m *CelerMsg) GetWithdrawResponse() *CooperativeWithdrawResponse {
	if x, ok := m.GetMessage().(*CelerMsg_WithdrawResponse); ok {
		return x.WithdrawResponse
	}
	return nil
}

func (m *CelerMsg) GetRoutingRequest() *RoutingRequest {
	if x, ok := m.GetMessage().(*CelerMsg_RoutingRequest); ok {
		return x.RoutingRequest
	}
	return nil
}

func (m *CelerMsg) GetCondPayReceipt() *CondPayReceipt {
	if x, ok := m.GetMessage().(*CelerMsg_CondPayReceipt); ok {
		return x.CondPayReceipt
	}
	return nil
}

func (m *CelerMsg) GetRevealSecret() *RevealSecret {
	if x, ok := m.GetMessage().(*CelerMsg_RevealSecret); ok {
		return x.RevealSecret
	}
	return nil
}

func (m *CelerMsg) GetRevealSecretAck() *RevealSecretAck {
	if x, ok := m.GetMessage().(*CelerMsg_RevealSecretAck); ok {
		return x.RevealSecretAck
	}
	return nil
}

func (m *CelerMsg) GetPayResultVouchRequest() *entity.VouchedCondPayResult {
	if x, ok := m.GetMessage().(*CelerMsg_PayResultVouchRequest); ok {
		return x.PayResultVouchRequest
	}
	return nil
}

func (m *CelerMsg) GetPayResultVouchResponse() *entity.VouchedCondPayResult {
	if x, ok := m.GetMessage().(*CelerMsg_PayResultVouchResponse); ok {
		return x.PayResultVouchResponse
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*CelerMsg) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*CelerMsg_Error)(nil),
		(*CelerMsg_AuthReq)(nil),
		(*CelerMsg_AuthAck)(nil),
		(*CelerMsg_CondPayRequest)(nil),
		(*CelerMsg_CondPayResponse)(nil),
		(*CelerMsg_PaymentSettleProof)(nil),
		(*CelerMsg_PaymentSettleRequest)(nil),
		(*CelerMsg_PaymentSettleResponse)(nil),
		(*CelerMsg_WithdrawRequest)(nil),
		(*CelerMsg_WithdrawResponse)(nil),
		(*CelerMsg_RoutingRequest)(nil),
		(*CelerMsg_CondPayReceipt)(nil),
		(*CelerMsg_RevealSecret)(nil),
		(*CelerMsg_RevealSecretAck)(nil),
		(*CelerMsg_PayResultVouchRequest)(nil),
		(*CelerMsg_PayResultVouchResponse)(nil),
	}
}

type Error struct {
	Code   ErrCode `protobuf:"varint,1,opt,name=code,proto3,enum=rpc.ErrCode" json:"code,omitempty"`
	Reason string  `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
	// sequence number (if exists) of the errored message
	Seq                  uint64   `protobuf:"varint,3,opt,name=seq,proto3" json:"seq,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Error) Reset()         { *m = Error{} }
func (m *Error) String() string { return proto.CompactTextString(m) }
func (*Error) ProtoMessage()    {}
func (*Error) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{2}
}

func (m *Error) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Error.Unmarshal(m, b)
}
func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Error.Marshal(b, m, deterministic)
}
func (m *Error) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Error.Merge(m, src)
}
func (m *Error) XXX_Size() int {
	return xxx_messageInfo_Error.Size(m)
}
func (m *Error) XXX_DiscardUnknown() {
	xxx_messageInfo_Error.DiscardUnknown(m)
}

var xxx_messageInfo_Error proto.InternalMessageInfo

func (m *Error) GetCode() ErrCode {
	if m != nil {
		return m.Code
	}
	return ErrCode_OK
}

func (m *Error) GetReason() string {
	if m != nil {
		return m.Reason
	}
	return ""
}

func (m *Error) GetSeq() uint64 {
	if m != nil {
		return m.Seq
	}
	return 0
}

// prove to peer I own this addr
type AuthReq struct {
	MyAddr []byte `protobuf:"bytes,1,opt,name=my_addr,json=myAddr,proto3" json:"my_addr,omitempty"`
	// protect against replay attack
	Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// sig of timestamp field
	MySig      []byte `protobuf:"bytes,3,opt,name=my_sig,json=mySig,proto3" json:"my_sig,omitempty"`
	ExpectPeer []byte `protobuf:"bytes,4,opt,name=expect_peer,json=expectPeer,proto3" json:"expect_peer,omitempty"`
	// whether to require peer proving it owns expect_peer
	MutualAuth bool `protobuf:"varint,5,opt,name=mutual_auth,json=mutualAuth,proto3" json:"mutual_auth,omitempty"`
	// r0.15 doesn't have this field so it's 0
	// r0.16 has 1 to support sync in auth
	ProtocolVersion uint64 `protobuf:"varint,6,opt,name=protocol_version,json=protocolVersion,proto3" json:"protocol_version,omitempty"`
	// client's view of channels. empty if never openchan or recover case
	OpenedChannels       []*ChannelSummary `protobuf:"bytes,7,rep,name=opened_channels,json=openedChannels,proto3" json:"opened_channels,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *AuthReq) Reset()         { *m = AuthReq{} }
func (m *AuthReq) String() string { return proto.CompactTextString(m) }
func (*AuthReq) ProtoMessage()    {}
func (*AuthReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{3}
}

func (m *AuthReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AuthReq.Unmarshal(m, b)
}
func (m *AuthReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AuthReq.Marshal(b, m, deterministic)
}
func (m *AuthReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AuthReq.Merge(m, src)
}
func (m *AuthReq) XXX_Size() int {
	return xxx_messageInfo_AuthReq.Size(m)
}
func (m *AuthReq) XXX_DiscardUnknown() {
	xxx_messageInfo_AuthReq.DiscardUnknown(m)
}

var xxx_messageInfo_AuthReq proto.InternalMessageInfo

func (m *AuthReq) GetMyAddr() []byte {
	if m != nil {
		return m.MyAddr
	}
	return nil
}

func (m *AuthReq) GetTimestamp() uint64 {
	if m != nil {
		return m.Timestamp
	}
	return 0
}

func (m *AuthReq) GetMySig() []byte {
	if m != nil {
		return m.MySig
	}
	return nil
}

func (m *AuthReq) GetExpectPeer() []byte {
	if m != nil {
		return m.ExpectPeer
	}
	return nil
}

func (m *AuthReq) GetMutualAuth() bool {
	if m != nil {
		return m.MutualAuth
	}
	return false
}

func (m *AuthReq) GetProtocolVersion() uint64 {
	if m != nil {
		return m.ProtocolVersion
	}
	return 0
}

func (m *AuthReq) GetOpenedChannels() []*ChannelSummary {
	if m != nil {
		return m.OpenedChannels
	}
	return nil
}

type AuthAck struct {
	// expect requester to set mid to start_mid in next message
	// including the assigned tag
	StartMid *MID `protobuf:"bytes,1,opt,name=start_mid,json=startMid,proto3" json:"start_mid,omitempty"`
	// if req set mutual_auth, return acker's sig of authreq.timestamp
	// we assume requester has context to verify against expect_peer
	MySig []byte `protobuf:"bytes,2,opt,name=my_sig,json=mySig,proto3" json:"my_sig,omitempty"`
	// channels to be syned w/ auth requester
	SyncChannels         []*ChannelInAuth `protobuf:"bytes,3,rep,name=sync_channels,json=syncChannels,proto3" json:"sync_channels,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *AuthAck) Reset()         { *m = AuthAck{} }
func (m *AuthAck) String() string { return proto.CompactTextString(m) }
func (*AuthAck) ProtoMessage()    {}
func (*AuthAck) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{4}
}

func (m *AuthAck) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AuthAck.Unmarshal(m, b)
}
func (m *AuthAck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AuthAck.Marshal(b, m, deterministic)
}
func (m *AuthAck) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AuthAck.Merge(m, src)
}
func (m *AuthAck) XXX_Size() int {
	return xxx_messageInfo_AuthAck.Size(m)
}
func (m *AuthAck) XXX_DiscardUnknown() {
	xxx_messageInfo_AuthAck.DiscardUnknown(m)
}

var xxx_messageInfo_AuthAck proto.InternalMessageInfo

func (m *AuthAck) GetStartMid() *MID {
	if m != nil {
		return m.StartMid
	}
	return nil
}

func (m *AuthAck) GetMySig() []byte {
	if m != nil {
		return m.MySig
	}
	return nil
}

func (m *AuthAck) GetSyncChannels() []*ChannelInAuth {
	if m != nil {
		return m.SyncChannels
	}
	return nil
}

type RevealSecret struct {
	PayId []byte `protobuf:"bytes,1,opt,name=pay_id,json=payId,proto3" json:"pay_id,omitempty"`
	// preimage of the hash
	Secret []byte `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
	// used for cross net pay
	OriginalPayId        []byte   `protobuf:"bytes,3,opt,name=original_pay_id,json=originalPayId,proto3" json:"original_pay_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RevealSecret) Reset()         { *m = RevealSecret{} }
func (m *RevealSecret) String() string { return proto.CompactTextString(m) }
func (*RevealSecret) ProtoMessage()    {}
func (*RevealSecret) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{5}
}

func (m *RevealSecret) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RevealSecret.Unmarshal(m, b)
}
func (m *RevealSecret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RevealSecret.Marshal(b, m, deterministic)
}
func (m *RevealSecret) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RevealSecret.Merge(m, src)
}
func (m *RevealSecret) XXX_Size() int {
	return xxx_messageInfo_RevealSecret.Size(m)
}
func (m *RevealSecret) XXX_DiscardUnknown() {
	xxx_messageInfo_RevealSecret.DiscardUnknown(m)
}

var xxx_messageInfo_RevealSecret proto.InternalMessageInfo

func (m *RevealSecret) GetPayId() []byte {
	if m != nil {
		return m.PayId
	}
	return nil
}

func (m *RevealSecret) GetSecret() []byte {
	if m != nil {
		return m.Secret
	}
	return nil
}

func (m *RevealSecret) GetOriginalPayId() []byte {
	if m != nil {
		return m.OriginalPayId
	}
	return nil
}

type RevealSecretAck struct {
	// include pay_id for avoid preimage->pay reverse lookup
	PayId []byte `protobuf:"bytes,1,opt,name=pay_id,json=payId,proto3" json:"pay_id,omitempty"`
	// pay dest sign secret to avoid spoof
	PayDestSecretSig []byte `protobuf:"bytes,2,opt,name=pay_dest_secret_sig,json=payDestSecretSig,proto3" json:"pay_dest_secret_sig,omitempty"`
	// used for cross net pay
	OriginalPayId        []byte   `protobuf:"bytes,3,opt,name=original_pay_id,json=originalPayId,proto3" json:"original_pay_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RevealSecretAck) Reset()         { *m = RevealSecretAck{} }
func (m *RevealSecretAck) String() string { return proto.CompactTextString(m) }
func (*RevealSecretAck) ProtoMessage()    {}
func (*RevealSecretAck) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{6}
}

func (m *RevealSecretAck) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RevealSecretAck.Unmarshal(m, b)
}
func (m *RevealSecretAck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RevealSecretAck.Marshal(b, m, deterministic)
}
func (m *RevealSecretAck) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RevealSecretAck.Merge(m, src)
}
func (m *RevealSecretAck) XXX_Size() int {
	return xxx_messageInfo_RevealSecretAck.Size(m)
}
func (m *RevealSecretAck) XXX_DiscardUnknown() {
	xxx_messageInfo_RevealSecretAck.DiscardUnknown(m)
}

var xxx_messageInfo_RevealSecretAck proto.InternalMessageInfo

func (m *RevealSecretAck) GetPayId() []byte {
	if m != nil {
		return m.PayId
	}
	return nil
}

func (m *RevealSecretAck) GetPayDestSecretSig() []byte {
	if m != nil {
		return m.PayDestSecretSig
	}
	return nil
}

func (m *RevealSecretAck) GetOriginalPayId() []byte {
	if m != nil {
		return m.OriginalPayId
	}
	return nil
}

type CrossNetPay struct {
	// vars 1-3 are updated by pay src
	SrcNetId    uint64 `protobuf:"varint,1,opt,name=src_net_id,json=srcNetId,proto3" json:"src_net_id,omitempty"`
	DstNetId    uint64 `protobuf:"varint,2,opt,name=dst_net_id,json=dstNetId,proto3" json:"dst_net_id,omitempty"`
	OriginalPay []byte `protobuf:"bytes,3,opt,name=original_pay,json=originalPay,proto3" json:"original_pay,omitempty"`
	// vars 4-7 are updated by bridge OSPs
	Crossing             bool     `protobuf:"varint,4,opt,name=crossing,proto3" json:"crossing,omitempty"`
	BridgeAddr           []byte   `protobuf:"bytes,5,opt,name=bridge_addr,json=bridgeAddr,proto3" json:"bridge_addr,omitempty"`
	BridgeNetId          uint64   `protobuf:"varint,6,opt,name=bridge_net_id,json=bridgeNetId,proto3" json:"bridge_net_id,omitempty"`
	Timeout              uint64   `protobuf:"varint,7,opt,name=timeout,proto3" json:"timeout,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CrossNetPay) Reset()         { *m = CrossNetPay{} }
func (m *CrossNetPay) String() string { return proto.CompactTextString(m) }
func (*CrossNetPay) ProtoMessage()    {}
func (*CrossNetPay) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{7}
}

func (m *CrossNetPay) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CrossNetPay.Unmarshal(m, b)
}
func (m *CrossNetPay) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CrossNetPay.Marshal(b, m, deterministic)
}
func (m *CrossNetPay) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CrossNetPay.Merge(m, src)
}
func (m *CrossNetPay) XXX_Size() int {
	return xxx_messageInfo_CrossNetPay.Size(m)
}
func (m *CrossNetPay) XXX_DiscardUnknown() {
	xxx_messageInfo_CrossNetPay.DiscardUnknown(m)
}

var xxx_messageInfo_CrossNetPay proto.InternalMessageInfo

func (m *CrossNetPay) GetSrcNetId() uint64 {
	if m != nil {
		return m.SrcNetId
	}
	return 0
}

func (m *CrossNetPay) GetDstNetId() uint64 {
	if m != nil {
		return m.DstNetId
	}
	return 0
}

func (m *CrossNetPay) GetOriginalPay() []byte {
	if m != nil {
		return m.OriginalPay
	}
	return nil
}

func (m *CrossNetPay) GetCrossing() bool {
	if m != nil {
		return m.Crossing
	}
	return false
}

func (m *CrossNetPay) GetBridgeAddr() []byte {
	if m != nil {
		return m.BridgeAddr
	}
	return nil
}

func (m *CrossNetPay) GetBridgeNetId() uint64 {
	if m != nil {
		return m.BridgeNetId
	}
	return 0
}

func (m *CrossNetPay) GetTimeout() uint64 {
	if m != nil {
		return m.Timeout
	}
	return 0
}

// CondPayRequest is the first request setting up a pay path.
type CondPayRequest struct {
	// use serialized entity.ConditionalPay to ensure byte-perfect consistency across all platforms
	// and simplify payment info verification especially during on-chain settlement
	CondPay              []byte              `protobuf:"bytes,1,opt,name=cond_pay,json=condPay,proto3" json:"cond_pay,omitempty"`
	StateOnlyPeerFromSig *SignedSimplexState `protobuf:"bytes,2,opt,name=state_only_peer_from_sig,json=stateOnlyPeerFromSig,proto3" json:"state_only_peer_from_sig,omitempty"`
	Note                 *any.Any            `protobuf:"bytes,3,opt,name=note,proto3" json:"note,omitempty"`
	// Sequence num of the previous simplex state that this new state is based on.
	// Useful for failure recover.
	BaseSeq uint64 `protobuf:"varint,4,opt,name=base_seq,json=baseSeq,proto3" json:"base_seq,omitempty"`
	// Optimization: payment between direct peers needs only one roundtrip.
	// A direct payment is one where the source and destination of the payment
	// are directly-connected peers (e.g. client sending a payment to its OSP)
	// and the payment is unconditional.
	DirectPay bool `protobuf:"varint,5,opt,name=direct_pay,json=directPay,proto3" json:"direct_pay,omitempty"`
	// used for cross network payment
	CrossNet             *CrossNetPay `protobuf:"bytes,6,opt,name=cross_net,json=crossNet,proto3" json:"cross_net,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *CondPayRequest) Reset()         { *m = CondPayRequest{} }
func (m *CondPayRequest) String() string { return proto.CompactTextString(m) }
func (*CondPayRequest) ProtoMessage()    {}
func (*CondPayRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{8}
}

func (m *CondPayRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CondPayRequest.Unmarshal(m, b)
}
func (m *CondPayRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CondPayRequest.Marshal(b, m, deterministic)
}
func (m *CondPayRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CondPayRequest.Merge(m, src)
}
func (m *CondPayRequest) XXX_Size() int {
	return xxx_messageInfo_CondPayRequest.Size(m)
}
func (m *CondPayRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CondPayRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CondPayRequest proto.InternalMessageInfo

func (m *CondPayRequest) GetCondPay() []byte {
	if m != nil {
		return m.CondPay
	}
	return nil
}

func (m *CondPayRequest) GetStateOnlyPeerFromSig() *SignedSimplexState {
	if m != nil {
		return m.StateOnlyPeerFromSig
	}
	return nil
}

func (m *CondPayRequest) GetNote() *any.Any {
	if m != nil {
		return m.Note
	}
	return nil
}

func (m *CondPayRequest) GetBaseSeq() uint64 {
	if m != nil {
		return m.BaseSeq
	}
	return 0
}

func (m *CondPayRequest) GetDirectPay() bool {
	if m != nil {
		return m.DirectPay
	}
	return false
}

func (m *CondPayRequest) GetCrossNet() *CrossNetPay {
	if m != nil {
		return m.CrossNet
	}
	return nil
}

// CondPayResponse is returning the signature of the other side in the channel.
type CondPayResponse struct {
	StateCosigned        *SignedSimplexState `protobuf:"bytes,1,opt,name=state_cosigned,json=stateCosigned,proto3" json:"state_cosigned,omitempty"`
	Error                *Error              `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *CondPayResponse) Reset()         { *m = CondPayResponse{} }
func (m *CondPayResponse) String() string { return proto.CompactTextString(m) }
func (*CondPayResponse) ProtoMessage()    {}
func (*CondPayResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{9}
}

func (m *CondPayResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CondPayResponse.Unmarshal(m, b)
}
func (m *CondPayResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CondPayResponse.Marshal(b, m, deterministic)
}
func (m *CondPayResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CondPayResponse.Merge(m, src)
}
func (m *CondPayResponse) XXX_Size() int {
	return xxx_messageInfo_CondPayResponse.Size(m)
}
func (m *CondPayResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_CondPayResponse.DiscardUnknown(m)
}

var xxx_messageInfo_CondPayResponse proto.InternalMessageInfo

func (m *CondPayResponse) GetStateCosigned() *SignedSimplexState {
	if m != nil {
		return m.StateCosigned
	}
	return nil
}

func (m *CondPayResponse) GetError() *Error {
	if m != nil {
		return m.Error
	}
	return nil
}

// Next Tag: 5
type PayHop struct {
	PayId                []byte   `protobuf:"bytes,1,opt,name=pay_id,json=payId,proto3" json:"pay_id,omitempty"`
	PrevHopAddr          []byte   `protobuf:"bytes,2,opt,name=prev_hop_addr,json=prevHopAddr,proto3" json:"prev_hop_addr,omitempty"`
	NextHopAddr          []byte   `protobuf:"bytes,3,opt,name=next_hop_addr,json=nextHopAddr,proto3" json:"next_hop_addr,omitempty"`
	Err                  *Error   `protobuf:"bytes,4,opt,name=err,proto3" json:"err,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PayHop) Reset()         { *m = PayHop{} }
func (m *PayHop) String() string { return proto.CompactTextString(m) }
func (*PayHop) ProtoMessage()    {}
func (*PayHop) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{10}
}

func (m *PayHop) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PayHop.Unmarshal(m, b)
}
func (m *PayHop) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PayHop.Marshal(b, m, deterministic)
}
func (m *PayHop) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PayHop.Merge(m, src)
}
func (m *PayHop) XXX_Size() int {
	return xxx_messageInfo_PayHop.Size(m)
}
func (m *PayHop) XXX_DiscardUnknown() {
	xxx_messageInfo_PayHop.DiscardUnknown(m)
}

var xxx_messageInfo_PayHop proto.InternalMessageInfo

func (m *PayHop) GetPayId() []byte {
	if m != nil {
		return m.PayId
	}
	return nil
}

func (m *PayHop) GetPrevHopAddr() []byte {
	if m != nil {
		return m.PrevHopAddr
	}
	return nil
}

func (m *PayHop) GetNextHopAddr() []byte {
	if m != nil {
		return m.NextHopAddr
	}
	return nil
}

func (m *PayHop) GetErr() *Error {
	if m != nil {
		return m.Err
	}
	return nil
}

// Next Tag: 3
type SignedPayHop struct {
	PayHopBytes          []byte   `protobuf:"bytes,1,opt,name=pay_hop_bytes,json=payHopBytes,proto3" json:"pay_hop_bytes,omitempty"`
	Sig                  []byte   `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SignedPayHop) Reset()         { *m = SignedPayHop{} }
func (m *SignedPayHop) String() string { return proto.CompactTextString(m) }
func (*SignedPayHop) ProtoMessage()    {}
func (*SignedPayHop) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{11}
}

func (m *SignedPayHop) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SignedPayHop.Unmarshal(m, b)
}
func (m *SignedPayHop) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SignedPayHop.Marshal(b, m, deterministic)
}
func (m *SignedPayHop) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SignedPayHop.Merge(m, src)
}
func (m *SignedPayHop) XXX_Size() int {
	return xxx_messageInfo_SignedPayHop.Size(m)
}
func (m *SignedPayHop) XXX_DiscardUnknown() {
	xxx_messageInfo_SignedPayHop.DiscardUnknown(m)
}

var xxx_messageInfo_SignedPayHop proto.InternalMessageInfo

func (m *SignedPayHop) GetPayHopBytes() []byte {
	if m != nil {
		return m.PayHopBytes
	}
	return nil
}

func (m *SignedPayHop) GetSig() []byte {
	if m != nil {
		return m.Sig
	}
	return nil
}

// Next Tag: 2
type PayPath struct {
	Hops                 []*SignedPayHop `protobuf:"bytes,1,rep,name=hops,proto3" json:"hops,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *PayPath) Reset()         { *m = PayPath{} }
func (m *PayPath) String() string { return proto.CompactTextString(m) }
func (*PayPath) ProtoMessage()    {}
func (*PayPath) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{12}
}

func (m *PayPath) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PayPath.Unmarshal(m, b)
}
func (m *PayPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PayPath.Marshal(b, m, deterministic)
}
func (m *PayPath) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PayPath.Merge(m, src)
}
func (m *PayPath) XXX_Size() int {
	return xxx_messageInfo_PayPath.Size(m)
}
func (m *PayPath) XXX_DiscardUnknown() {
	xxx_messageInfo_PayPath.DiscardUnknown(m)
}

var xxx_messageInfo_PayPath proto.InternalMessageInfo

func (m *PayPath) GetHops() []*SignedPayHop {
	if m != nil {
		return m.Hops
	}
	return nil
}

// Next Tag: 5
type SettledPayment struct {
	SettledPayId []byte              `protobuf:"bytes,1,opt,name=settled_pay_id,json=settledPayId,proto3" json:"settled_pay_id,omitempty"`
	Reason       PaymentSettleReason `protobuf:"varint,2,opt,name=reason,proto3,enum=rpc.PaymentSettleReason" json:"reason,omitempty"`
	Amount       []byte              `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"`
	// used in pay settle proof to track path for failed payments
	Path *PayPath `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
	// used for cross net pay
	OriginalPayId        []byte   `protobuf:"bytes,5,opt,name=original_pay_id,json=originalPayId,proto3" json:"original_pay_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SettledPayment) Reset()         { *m = SettledPayment{} }
func (m *SettledPayment) String() string { return proto.CompactTextString(m) }
func (*SettledPayment) ProtoMessage()    {}
func (*SettledPayment) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{13}
}

func (m *SettledPayment) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SettledPayment.Unmarshal(m, b)
}
func (m *SettledPayment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SettledPayment.Marshal(b, m, deterministic)
}
func (m *SettledPayment) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SettledPayment.Merge(m, src)
}
func (m *SettledPayment) XXX_Size() int {
	return xxx_messageInfo_SettledPayment.Size(m)
}
func (m *SettledPayment) XXX_DiscardUnknown() {
	xxx_messageInfo_SettledPayment.DiscardUnknown(m)
}

var xxx_messageInfo_SettledPayment proto.InternalMessageInfo

func (m *SettledPayment) GetSettledPayId() []byte {
	if m != nil {
		return m.SettledPayId
	}
	return nil
}

func (m *SettledPayment) GetReason() PaymentSettleReason {
	if m != nil {
		return m.Reason
	}
	return PaymentSettleReason_NONE
}

func (m *SettledPayment) GetAmount() []byte {
	if m != nil {
		return m.Amount
	}
	return nil
}

func (m *SettledPayment) GetPath() *PayPath {
	if m != nil {
		return m.Path
	}
	return nil
}

func (m *SettledPayment) GetOriginalPayId() []byte {
	if m != nil {
		return m.OriginalPayId
	}
	return nil
}

// PaymentSettleProof provides all condition results to settle a pay.
// Expect after receives this msg, peer will send PaymentSettleRequest
// Next Tag: 3
type PaymentSettleProof struct {
	VouchedCondPayResults []*entity.VouchedCondPayResult `protobuf:"bytes,1,rep,name=vouched_cond_pay_results,json=vouchedCondPayResults,proto3" json:"vouched_cond_pay_results,omitempty"`
	// valid reasons for settled_pays in PaymentSettleProof
	// EXPIRED, REJECTED, RESOLVED_ONCHAIN, DEST_UNREACHABLE
	SettledPays          []*SettledPayment `protobuf:"bytes,2,rep,name=settled_pays,json=settledPays,proto3" json:"settled_pays,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *PaymentSettleProof) Reset()         { *m = PaymentSettleProof{} }
func (m *PaymentSettleProof) String() string { return proto.CompactTextString(m) }
func (*PaymentSettleProof) ProtoMessage()    {}
func (*PaymentSettleProof) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{14}
}

func (m *PaymentSettleProof) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PaymentSettleProof.Unmarshal(m, b)
}
func (m *PaymentSettleProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PaymentSettleProof.Marshal(b, m, deterministic)
}
func (m *PaymentSettleProof) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PaymentSettleProof.Merge(m, src)
}
func (m *PaymentSettleProof) XXX_Size() int {
	return xxx_messageInfo_PaymentSettleProof.Size(m)
}
func (m *PaymentSettleProof) XXX_DiscardUnknown() {
	xxx_messageInfo_PaymentSettleProof.DiscardUnknown(m)
}

var xxx_messageInfo_PaymentSettleProof proto.InternalMessageInfo

func (m *PaymentSettleProof) GetVouchedCondPayResults() []*entity.VouchedCondPayResult {
	if m != nil {
		return m.VouchedCondPayResults
	}
	return nil
}

func (m *PaymentSettleProof) GetSettledPays() []*SettledPayment {
	if m != nil {
		return m.SettledPays
	}
	return nil
}

// When peer_from of a simplex channel wants to settle a pay the updated simplex
// will be sent along with its signature.
type PaymentSettleRequest struct {
	SettledPays          []*SettledPayment   `protobuf:"bytes,1,rep,name=settled_pays,json=settledPays,proto3" json:"settled_pays,omitempty"`
	StateOnlyPeerFromSig *SignedSimplexState `protobuf:"bytes,2,opt,name=state_only_peer_from_sig,json=stateOnlyPeerFromSig,proto3" json:"state_only_peer_from_sig,omitempty"`
	// Sequence num of the previous simplex state that this new state is based on.
	// Useful for failure recover.
	BaseSeq              uint64   `protobuf:"varint,3,opt,name=base_seq,json=baseSeq,proto3" json:"base_seq,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PaymentSettleRequest) Reset()         { *m = PaymentSettleRequest{} }
func (m *PaymentSettleRequest) String() string { return proto.CompactTextString(m) }
func (*PaymentSettleRequest) ProtoMessage()    {}
func (*PaymentSettleRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{15}
}

func (m *PaymentSettleRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PaymentSettleRequest.Unmarshal(m, b)
}
func (m *PaymentSettleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PaymentSettleRequest.Marshal(b, m, deterministic)
}
func (m *PaymentSettleRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PaymentSettleRequest.Merge(m, src)
}
func (m *PaymentSettleRequest) XXX_Size() int {
	return xxx_messageInfo_PaymentSettleRequest.Size(m)
}
func (m *PaymentSettleRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_PaymentSettleRequest.DiscardUnknown(m)
}

var xxx_messageInfo_PaymentSettleRequest proto.InternalMessageInfo

func (m *PaymentSettleRequest) GetSettledPays() []*SettledPayment {
	if m != nil {
		return m.SettledPays
	}
	return nil
}

func (m *PaymentSettleRequest) GetStateOnlyPeerFromSig() *SignedSimplexState {
	if m != nil {
		return m.StateOnlyPeerFromSig
	}
	return nil
}

func (m *PaymentSettleRequest) GetBaseSeq() uint64 {
	if m != nil {
		return m.BaseSeq
	}
	return 0
}

// peer_to of a simplex channel confirms the settlement by providing its sig
// Next Tag: 4
type PaymentSettleResponse struct {
	StateCosigned        *SignedSimplexState `protobuf:"bytes,1,opt,name=state_cosigned,json=stateCosigned,proto3" json:"state_cosigned,omitempty"`
	Error                *Error              `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *PaymentSettleResponse) Reset()         { *m = PaymentSettleResponse{} }
func (m *PaymentSettleResponse) String() string { return proto.CompactTextString(m) }
func (*PaymentSettleResponse) ProtoMessage()    {}
func (*PaymentSettleResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{16}
}

func (m *PaymentSettleResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PaymentSettleResponse.Unmarshal(m, b)
}
func (m *PaymentSettleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PaymentSettleResponse.Marshal(b, m, deterministic)
}
func (m *PaymentSettleResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PaymentSettleResponse.Merge(m, src)
}
func (m *PaymentSettleResponse) XXX_Size() int {
	return xxx_messageInfo_PaymentSettleResponse.Size(m)
}
func (m *PaymentSettleResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_PaymentSettleResponse.DiscardUnknown(m)
}

var xxx_messageInfo_PaymentSettleResponse proto.InternalMessageInfo

func (m *PaymentSettleResponse) GetStateCosigned() *SignedSimplexState {
	if m != nil {
		return m.StateCosigned
	}
	return nil
}

func (m *PaymentSettleResponse) GetError() *Error {
	if m != nil {
		return m.Error
	}
	return nil
}

// OpenChannelRequest when one wants to open a channel with peer.
// Next Tag: 5
type OpenChannelRequest struct {
	// serialized entity.PaymentChannelInitializer
	ChannelInitializer []byte        `protobuf:"bytes,1,opt,name=channel_initializer,json=channelInitializer,proto3" json:"channel_initializer,omitempty"`
	RequesterSig       []byte        `protobuf:"bytes,2,opt,name=requester_sig,json=requesterSig,proto3" json:"requester_sig,omitempty"`
	OpenBy             OpenChannelBy `protobuf:"varint,3,opt,name=open_by,json=openBy,proto3,enum=rpc.OpenChannelBy" json:"open_by,omitempty"`
	// osp_to_osp set to true to indicate the channel is an OSP-OSP channel.
	OspToOsp             bool     `protobuf:"varint,4,opt,name=osp_to_osp,json=ospToOsp,proto3" json:"osp_to_osp,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *OpenChannelRequest) Reset()         { *m = OpenChannelRequest{} }
func (m *OpenChannelRequest) String() string { return proto.CompactTextString(m) }
func (*OpenChannelRequest) ProtoMessage()    {}
func (*OpenChannelRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{17}
}

func (m *OpenChannelRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OpenChannelRequest.Unmarshal(m, b)
}
func (m *OpenChannelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OpenChannelRequest.Marshal(b, m, deterministic)
}
func (m *OpenChannelRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OpenChannelRequest.Merge(m, src)
}
func (m *OpenChannelRequest) XXX_Size() int {
	return xxx_messageInfo_OpenChannelRequest.Size(m)
}
func (m *OpenChannelRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_OpenChannelRequest.DiscardUnknown(m)
}

var xxx_messageInfo_OpenChannelRequest proto.InternalMessageInfo

func (m *OpenChannelRequest) GetChannelInitializer() []byte {
	if m != nil {
		return m.ChannelInitializer
	}
	return nil
}

func (m *OpenChannelRequest) GetRequesterSig() []byte {
	if m != nil {
		return m.RequesterSig
	}
	return nil
}

func (m *OpenChannelRequest) GetOpenBy() OpenChannelBy {
	if m != nil {
		return m.OpenBy
	}
	return OpenChannelBy_UNDEFINED_OPEN_BY
}

func (m *OpenChannelRequest) GetOspToOsp() bool {
	if m != nil {
		return m.OspToOsp
	}
	return false
}

// Next Tag: 6
type OpenChannelResponse struct {
	// serialized entity.PaymentChannelInitializer
	ChannelInitializer   []byte            `protobuf:"bytes,1,opt,name=channel_initializer,json=channelInitializer,proto3" json:"channel_initializer,omitempty"`
	RequesterSig         []byte            `protobuf:"bytes,2,opt,name=requester_sig,json=requesterSig,proto3" json:"requester_sig,omitempty"`
	ApproverSig          []byte            `protobuf:"bytes,3,opt,name=approver_sig,json=approverSig,proto3" json:"approver_sig,omitempty"`
	Status               OpenChannelStatus `protobuf:"varint,4,opt,name=status,proto3,enum=rpc.OpenChannelStatus" json:"status,omitempty"`
	PaymentChannelId     []byte            `protobuf:"bytes,5,opt,name=payment_channel_id,json=paymentChannelId,proto3" json:"payment_channel_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *OpenChannelResponse) Reset()         { *m = OpenChannelResponse{} }
func (m *OpenChannelResponse) String() string { return proto.CompactTextString(m) }
func (*OpenChannelResponse) ProtoMessage()    {}
func (*OpenChannelResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{18}
}

func (m *OpenChannelResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OpenChannelResponse.Unmarshal(m, b)
}
func (m *OpenChannelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OpenChannelResponse.Marshal(b, m, deterministic)
}
func (m *OpenChannelResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OpenChannelResponse.Merge(m, src)
}
func (m *OpenChannelResponse) XXX_Size() int {
	return xxx_messageInfo_OpenChannelResponse.Size(m)
}
func (m *OpenChannelResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_OpenChannelResponse.DiscardUnknown(m)
}

var xxx_messageInfo_OpenChannelResponse proto.InternalMessageInfo

func (m *OpenChannelResponse) GetChannelInitializer() []byte {
	if m != nil {
		return m.ChannelInitializer
	}
	return nil
}

func (m *OpenChannelResponse) GetRequesterSig() []byte {
	if m != nil {
		return m.RequesterSig
	}
	return nil
}

func (m *OpenChannelResponse) GetApproverSig() []byte {
	if m != nil {
		return m.ApproverSig
	}
	return nil
}

func (m *OpenChannelResponse) GetStatus() OpenChannelStatus {
	if m != nil {
		return m.Status
	}
	return OpenChannelStatus_UNDEFINED_OPEN_CHANNEL_STATUS
}

func (m *OpenChannelResponse) GetPaymentChannelId() []byte {
	if m != nil {
		return m.PaymentChannelId
	}
	return nil
}

// Next Tag: 3
type CooperativeWithdrawRequest struct {
	WithdrawInfo         *entity.CooperativeWithdrawInfo `protobuf:"bytes,1,opt,name=withdraw_info,json=withdrawInfo,proto3" json:"withdraw_info,omitempty"`
	RequesterSig         []byte                          `protobuf:"bytes,2,opt,name=requester_sig,json=requesterSig,proto3" json:"requester_sig,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
	XXX_unrecognized     []byte                          `json:"-"`
	XXX_sizecache        int32                           `json:"-"`
}

func (m *CooperativeWithdrawRequest) Reset()         { *m = CooperativeWithdrawRequest{} }
func (m *CooperativeWithdrawRequest) String() string { return proto.CompactTextString(m) }
func (*CooperativeWithdrawRequest) ProtoMessage()    {}
func (*CooperativeWithdrawRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{19}
}

func (m *CooperativeWithdrawRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CooperativeWithdrawRequest.Unmarshal(m, b)
}
func (m *CooperativeWithdrawRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CooperativeWithdrawRequest.Marshal(b, m, deterministic)
}
func (m *CooperativeWithdrawRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CooperativeWithdrawRequest.Merge(m, src)
}
func (m *CooperativeWithdrawRequest) XXX_Size() int {
	return xxx_messageInfo_CooperativeWithdrawRequest.Size(m)
}
func (m *CooperativeWithdrawRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CooperativeWithdrawRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CooperativeWithdrawRequest proto.InternalMessageInfo

func (m *CooperativeWithdrawRequest) GetWithdrawInfo() *entity.CooperativeWithdrawInfo {
	if m != nil {
		return m.WithdrawInfo
	}
	return nil
}

func (m *CooperativeWithdrawRequest) GetRequesterSig() []byte {
	if m != nil {
		return m.RequesterSig
	}
	return nil
}

// Next Tag: 4
type CooperativeWithdrawResponse struct {
	WithdrawInfo         *entity.CooperativeWithdrawInfo `protobuf:"bytes,1,opt,name=withdraw_info,json=withdrawInfo,proto3" json:"withdraw_info,omitempty"`
	RequesterSig         []byte                          `protobuf:"bytes,2,opt,name=requester_sig,json=requesterSig,proto3" json:"requester_sig,omitempty"`
	ApproverSig          []byte                          `protobuf:"bytes,3,opt,name=approver_sig,json=approverSig,proto3" json:"approver_sig,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
	XXX_unrecognized     []byte                          `json:"-"`
	XXX_sizecache        int32                           `json:"-"`
}

func (m *CooperativeWithdrawResponse) Reset()         { *m = CooperativeWithdrawResponse{} }
func (m *CooperativeWithdrawResponse) String() string { return proto.CompactTextString(m) }
func (*CooperativeWithdrawResponse) ProtoMessage()    {}
func (*CooperativeWithdrawResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{20}
}

func (m *CooperativeWithdrawResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CooperativeWithdrawResponse.Unmarshal(m, b)
}
func (m *CooperativeWithdrawResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CooperativeWithdrawResponse.Marshal(b, m, deterministic)
}
func (m *CooperativeWithdrawResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CooperativeWithdrawResponse.Merge(m, src)
}
func (m *CooperativeWithdrawResponse) XXX_Size() int {
	return xxx_messageInfo_CooperativeWithdrawResponse.Size(m)
}
func (m *CooperativeWithdrawResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_CooperativeWithdrawResponse.DiscardUnknown(m)
}

var xxx_messageInfo_CooperativeWithdrawResponse proto.InternalMessageInfo

func (m *CooperativeWithdrawResponse) GetWithdrawInfo() *entity.CooperativeWithdrawInfo {
	if m != nil {
		return m.WithdrawInfo
	}
	return nil
}

func (m *CooperativeWithdrawResponse) GetRequesterSig() []byte {
	if m != nil {
		return m.RequesterSig
	}
	return nil
}

func (m *CooperativeWithdrawResponse) GetApproverSig() []byte {
	if m != nil {
		return m.ApproverSig
	}
	return nil
}

// Next Tag: 5
type CondPayReceipt struct {
	// refer to pay by its id is enough
	PayId []byte `protobuf:"bytes,1,opt,name=pay_id,json=payId,proto3" json:"pay_id,omitempty"`
	// either pay_dest signs payid or pay delegator signs pay id
	PayDestSig      []byte           `protobuf:"bytes,2,opt,name=pay_dest_sig,json=payDestSig,proto3" json:"pay_dest_sig,omitempty"`
	PayDelegatorSig []byte           `protobuf:"bytes,3,opt,name=pay_delegator_sig,json=payDelegatorSig,proto3" json:"pay_delegator_sig,omitempty"`
	DelegationProof *DelegationProof `protobuf:"bytes,4,opt,name=delegation_proof,json=delegationProof,proto3" json:"delegation_proof,omitempty"`
	// used for cross net pay
	OriginalPayId        []byte   `protobuf:"bytes,5,opt,name=original_pay_id,json=originalPayId,proto3" json:"original_pay_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CondPayReceipt) Reset()         { *m = CondPayReceipt{} }
func (m *CondPayReceipt) String() string { return proto.CompactTextString(m) }
func (*CondPayReceipt) ProtoMessage()    {}
func (*CondPayReceipt) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{21}
}

func (m *CondPayReceipt) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CondPayReceipt.Unmarshal(m, b)
}
func (m *CondPayReceipt) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CondPayReceipt.Marshal(b, m, deterministic)
}
func (m *CondPayReceipt) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CondPayReceipt.Merge(m, src)
}
func (m *CondPayReceipt) XXX_Size() int {
	return xxx_messageInfo_CondPayReceipt.Size(m)
}
func (m *CondPayReceipt) XXX_DiscardUnknown() {
	xxx_messageInfo_CondPayReceipt.DiscardUnknown(m)
}

var xxx_messageInfo_CondPayReceipt proto.InternalMessageInfo

func (m *CondPayReceipt) GetPayId() []byte {
	if m != nil {
		return m.PayId
	}
	return nil
}

func (m *CondPayReceipt) GetPayDestSig() []byte {
	if m != nil {
		return m.PayDestSig
	}
	return nil
}

func (m *CondPayReceipt) GetPayDelegatorSig() []byte {
	if m != nil {
		return m.PayDelegatorSig
	}
	return nil
}

func (m *CondPayReceipt) GetDelegationProof() *DelegationProof {
	if m != nil {
		return m.DelegationProof
	}
	return nil
}

func (m *CondPayReceipt) GetOriginalPayId() []byte {
	if m != nil {
		return m.OriginalPayId
	}
	return nil
}

// Next Tag: 4
type SignedSimplexState struct {
	// serialized simplexPaymentChannel message
	SimplexState         []byte   `protobuf:"bytes,1,opt,name=simplex_state,json=simplexState,proto3" json:"simplex_state,omitempty"`
	SigOfPeerFrom        []byte   `protobuf:"bytes,2,opt,name=sig_of_peer_from,json=sigOfPeerFrom,proto3" json:"sig_of_peer_from,omitempty"`
	SigOfPeerTo          []byte   `protobuf:"bytes,3,opt,name=sig_of_peer_to,json=sigOfPeerTo,proto3" json:"sig_of_peer_to,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SignedSimplexState) Reset()         { *m = SignedSimplexState{} }
func (m *SignedSimplexState) String() string { return proto.CompactTextString(m) }
func (*SignedSimplexState) ProtoMessage()    {}
func (*SignedSimplexState) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{22}
}

func (m *SignedSimplexState) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SignedSimplexState.Unmarshal(m, b)
}
func (m *SignedSimplexState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SignedSimplexState.Marshal(b, m, deterministic)
}
func (m *SignedSimplexState) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SignedSimplexState.Merge(m, src)
}
func (m *SignedSimplexState) XXX_Size() int {
	return xxx_messageInfo_SignedSimplexState.Size(m)
}
func (m *SignedSimplexState) XXX_DiscardUnknown() {
	xxx_messageInfo_SignedSimplexState.DiscardUnknown(m)
}

var xxx_messageInfo_SignedSimplexState proto.InternalMessageInfo

func (m *SignedSimplexState) GetSimplexState() []byte {
	if m != nil {
		return m.SimplexState
	}
	return nil
}

func (m *SignedSimplexState) GetSigOfPeerFrom() []byte {
	if m != nil {
		return m.SigOfPeerFrom
	}
	return nil
}

func (m *SignedSimplexState) GetSigOfPeerTo() []byte {
	if m != nil {
		return m.SigOfPeerTo
	}
	return nil
}

// Next Tag: 2
type SignedDuplexState struct {
	// only expect two messages for duplex
	SimplexStates        []*SignedSimplexState `protobuf:"bytes,1,rep,name=simplex_states,json=simplexStates,proto3" json:"simplex_states,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *SignedDuplexState) Reset()         { *m = SignedDuplexState{} }
func (m *SignedDuplexState) String() string { return proto.CompactTextString(m) }
func (*SignedDuplexState) ProtoMessage()    {}
func (*SignedDuplexState) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{23}
}

func (m *SignedDuplexState) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SignedDuplexState.Unmarshal(m, b)
}
func (m *SignedDuplexState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SignedDuplexState.Marshal(b, m, deterministic)
}
func (m *SignedDuplexState) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SignedDuplexState.Merge(m, src)
}
func (m *SignedDuplexState) XXX_Size() int {
	return xxx_messageInfo_SignedDuplexState.Size(m)
}
func (m *SignedDuplexState) XXX_DiscardUnknown() {
	xxx_messageInfo_SignedDuplexState.DiscardUnknown(m)
}

var xxx_messageInfo_SignedDuplexState proto.InternalMessageInfo

func (m *SignedDuplexState) GetSimplexStates() []*SignedSimplexState {
	if m != nil {
		return m.SimplexStates
	}
	return nil
}

type PeerAddress struct {
	Address              string   `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	TokenAddr            string   `protobuf:"bytes,2,opt,name=token_addr,json=tokenAddr,proto3" json:"token_addr,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PeerAddress) Reset()         { *m = PeerAddress{} }
func (m *PeerAddress) String() string { return proto.CompactTextString(m) }
func (*PeerAddress) ProtoMessage()    {}
func (*PeerAddress) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{24}
}

func (m *PeerAddress) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PeerAddress.Unmarshal(m, b)
}
func (m *PeerAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PeerAddress.Marshal(b, m, deterministic)
}
func (m *PeerAddress) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PeerAddress.Merge(m, src)
}
func (m *PeerAddress) XXX_Size() int {
	return xxx_messageInfo_PeerAddress.Size(m)
}
func (m *PeerAddress) XXX_DiscardUnknown() {
	xxx_messageInfo_PeerAddress.DiscardUnknown(m)
}

var xxx_messageInfo_PeerAddress proto.InternalMessageInfo

func (m *PeerAddress) GetAddress() string {
	if m != nil {
		return m.Address
	}
	return ""
}

func (m *PeerAddress) GetTokenAddr() string {
	if m != nil {
		return m.TokenAddr
	}
	return ""
}

// Next Tag: 3
type PeerStatus struct {
	FreeBalance          string          `protobuf:"bytes,1,opt,name=free_balance,json=freeBalance,proto3" json:"free_balance,omitempty"`
	JoinStatus           JoinCelerStatus `protobuf:"varint,2,opt,name=join_status,json=joinStatus,proto3,enum=rpc.JoinCelerStatus" json:"join_status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *PeerStatus) Reset()         { *m = PeerStatus{} }
func (m *PeerStatus) String() string { return proto.CompactTextString(m) }
func (*PeerStatus) ProtoMessage()    {}
func (*PeerStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{25}
}

func (m *PeerStatus) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PeerStatus.Unmarshal(m, b)
}
func (m *PeerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PeerStatus.Marshal(b, m, deterministic)
}
func (m *PeerStatus) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PeerStatus.Merge(m, src)
}
func (m *PeerStatus) XXX_Size() int {
	return xxx_messageInfo_PeerStatus.Size(m)
}
func (m *PeerStatus) XXX_DiscardUnknown() {
	xxx_messageInfo_PeerStatus.DiscardUnknown(m)
}

var xxx_messageInfo_PeerStatus proto.InternalMessageInfo

func (m *PeerStatus) GetFreeBalance() string {
	if m != nil {
		return m.FreeBalance
	}
	return ""
}

func (m *PeerStatus) GetJoinStatus() JoinCelerStatus {
	if m != nil {
		return m.JoinStatus
	}
	return JoinCelerStatus_NOT_JOIN
}

// For Auth handshake and auto recovery
// note with only seq num we lost the ability to sync if client side has higher value.
// but it's ok because after authreq/ack, osp msg queue will re-send un-acked msgs
// Next tag: 5
type ChannelSummary struct {
	ChannelId            []byte   `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	MySeqNum             uint64   `protobuf:"varint,2,opt,name=my_seq_num,json=mySeqNum,proto3" json:"my_seq_num,omitempty"`
	PeerSeqNum           uint64   `protobuf:"varint,3,opt,name=peer_seq_num,json=peerSeqNum,proto3" json:"peer_seq_num,omitempty"`
	LedgerAddr           []byte   `protobuf:"bytes,4,opt,name=ledger_addr,json=ledgerAddr,proto3" json:"ledger_addr,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChannelSummary) Reset()         { *m = ChannelSummary{} }
func (m *ChannelSummary) String() string { return proto.CompactTextString(m) }
func (*ChannelSummary) ProtoMessage()    {}
func (*ChannelSummary) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{26}
}

func (m *ChannelSummary) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChannelSummary.Unmarshal(m, b)
}
func (m *ChannelSummary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChannelSummary.Marshal(b, m, deterministic)
}
func (m *ChannelSummary) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChannelSummary.Merge(m, src)
}
func (m *ChannelSummary) XXX_Size() int {
	return xxx_messageInfo_ChannelSummary.Size(m)
}
func (m *ChannelSummary) XXX_DiscardUnknown() {
	xxx_messageInfo_ChannelSummary.DiscardUnknown(m)
}

var xxx_messageInfo_ChannelSummary proto.InternalMessageInfo

func (m *ChannelSummary) GetChannelId() []byte {
	if m != nil {
		return m.ChannelId
	}
	return nil
}

func (m *ChannelSummary) GetMySeqNum() uint64 {
	if m != nil {
		return m.MySeqNum
	}
	return 0
}

func (m *ChannelSummary) GetPeerSeqNum() uint64 {
	if m != nil {
		return m.PeerSeqNum
	}
	return 0
}

func (m *ChannelSummary) GetLedgerAddr() []byte {
	if m != nil {
		return m.LedgerAddr
	}
	return nil
}

// In AuthAck if need to sync channels
// Next tag: 9
type ChannelInAuth struct {
	Cid []byte `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
	// Channel state defined in goCeler channel-fsm.go.
	ChannelState int64 `protobuf:"varint,2,opt,name=channel_state,json=channelState,proto3" json:"channel_state,omitempty"`
	// open channel response for case of TCB.
	OpenChannelResponse *OpenChannelResponse `protobuf:"bytes,3,opt,name=open_channel_response,json=openChannelResponse,proto3" json:"open_channel_response,omitempty"`
	// cosigned simplex belong to auth ack node
	AuthackSimplex *SignedSimplexState `protobuf:"bytes,4,opt,name=authack_simplex,json=authackSimplex,proto3" json:"authack_simplex,omitempty"`
	// pending pays in authack_simplex
	AuthackPays []*PayInAuthAck `protobuf:"bytes,5,rep,name=authack_pays,json=authackPays,proto3" json:"authack_pays,omitempty"`
	// cosigned simplex belong to auth requester
	AuthreqSimplex *SignedSimplexState `protobuf:"bytes,6,opt,name=authreq_simplex,json=authreqSimplex,proto3" json:"authreq_simplex,omitempty"`
	// pending pays in authreq_simplex
	AuthreqPays []*PayInAuthAck `protobuf:"bytes,7,rep,name=authreq_pays,json=authreqPays,proto3" json:"authreq_pays,omitempty"`
	// ledger address that the channel is operating on.
	LedgerAddr           []byte   `protobuf:"bytes,8,opt,name=ledger_addr,json=ledgerAddr,proto3" json:"ledger_addr,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChannelInAuth) Reset()         { *m = ChannelInAuth{} }
func (m *ChannelInAuth) String() string { return proto.CompactTextString(m) }
func (*ChannelInAuth) ProtoMessage()    {}
func (*ChannelInAuth) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{27}
}

func (m *ChannelInAuth) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChannelInAuth.Unmarshal(m, b)
}
func (m *ChannelInAuth) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChannelInAuth.Marshal(b, m, deterministic)
}
func (m *ChannelInAuth) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChannelInAuth.Merge(m, src)
}
func (m *ChannelInAuth) XXX_Size() int {
	return xxx_messageInfo_ChannelInAuth.Size(m)
}
func (m *ChannelInAuth) XXX_DiscardUnknown() {
	xxx_messageInfo_ChannelInAuth.DiscardUnknown(m)
}

var xxx_messageInfo_ChannelInAuth proto.InternalMessageInfo

func (m *ChannelInAuth) GetCid() []byte {
	if m != nil {
		return m.Cid
	}
	return nil
}

func (m *ChannelInAuth) GetChannelState() int64 {
	if m != nil {
		return m.ChannelState
	}
	return 0
}

func (m *ChannelInAuth) GetOpenChannelResponse() *OpenChannelResponse {
	if m != nil {
		return m.OpenChannelResponse
	}
	return nil
}

func (m *ChannelInAuth) GetAuthackSimplex() *SignedSimplexState {
	if m != nil {
		return m.AuthackSimplex
	}
	return nil
}

func (m *ChannelInAuth) GetAuthackPays() []*PayInAuthAck {
	if m != nil {
		return m.AuthackPays
	}
	return nil
}

func (m *ChannelInAuth) GetAuthreqSimplex() *SignedSimplexState {
	if m != nil {
		return m.AuthreqSimplex
	}
	return nil
}

func (m *ChannelInAuth) GetAuthreqPays() []*PayInAuthAck {
	if m != nil {
		return m.AuthreqPays
	}
	return nil
}

func (m *ChannelInAuth) GetLedgerAddr() []byte {
	if m != nil {
		return m.LedgerAddr
	}
	return nil
}

type PayInAuthAck struct {
	Pay  []byte   `protobuf:"bytes,1,opt,name=pay,proto3" json:"pay,omitempty"`
	Note *any.Any `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"`
	// pay state, from instate or outstate depending on which simplex
	State                int64    `protobuf:"varint,3,opt,name=state,proto3" json:"state,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PayInAuthAck) Reset()         { *m = PayInAuthAck{} }
func (m *PayInAuthAck) String() string { return proto.CompactTextString(m) }
func (*PayInAuthAck) ProtoMessage()    {}
func (*PayInAuthAck) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{28}
}

func (m *PayInAuthAck) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PayInAuthAck.Unmarshal(m, b)
}
func (m *PayInAuthAck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PayInAuthAck.Marshal(b, m, deterministic)
}
func (m *PayInAuthAck) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PayInAuthAck.Merge(m, src)
}
func (m *PayInAuthAck) XXX_Size() int {
	return xxx_messageInfo_PayInAuthAck.Size(m)
}
func (m *PayInAuthAck) XXX_DiscardUnknown() {
	xxx_messageInfo_PayInAuthAck.DiscardUnknown(m)
}

var xxx_messageInfo_PayInAuthAck proto.InternalMessageInfo

func (m *PayInAuthAck) GetPay() []byte {
	if m != nil {
		return m.Pay
	}
	return nil
}

func (m *PayInAuthAck) GetNote() *any.Any {
	if m != nil {
		return m.Note
	}
	return nil
}

func (m *PayInAuthAck) GetState() int64 {
	if m != nil {
		return m.State
	}
	return 0
}

// Next tag: 5
type DelegationDescription struct {
	// address of delegator
	Delegator []byte `protobuf:"bytes,1,opt,name=delegator,proto3" json:"delegator,omitempty"`
	// address of delegatee
	Delegatee         []byte `protobuf:"bytes,2,opt,name=delegatee,proto3" json:"delegatee,omitempty"`
	ExpiresAfterBlock int64  `protobuf:"varint,3,opt,name=expires_after_block,json=expiresAfterBlock,proto3" json:"expires_after_block,omitempty"`
	// token addresses to be delegated
	TokenToDelegate      [][]byte `protobuf:"bytes,4,rep,name=token_to_delegate,json=tokenToDelegate,proto3" json:"token_to_delegate,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DelegationDescription) Reset()         { *m = DelegationDescription{} }
func (m *DelegationDescription) String() string { return proto.CompactTextString(m) }
func (*DelegationDescription) ProtoMessage()    {}
func (*DelegationDescription) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{29}
}

func (m *DelegationDescription) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DelegationDescription.Unmarshal(m, b)
}
func (m *DelegationDescription) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DelegationDescription.Marshal(b, m, deterministic)
}
func (m *DelegationDescription) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DelegationDescription.Merge(m, src)
}
func (m *DelegationDescription) XXX_Size() int {
	return xxx_messageInfo_DelegationDescription.Size(m)
}
func (m *DelegationDescription) XXX_DiscardUnknown() {
	xxx_messageInfo_DelegationDescription.DiscardUnknown(m)
}

var xxx_messageInfo_DelegationDescription proto.InternalMessageInfo

func (m *DelegationDescription) GetDelegator() []byte {
	if m != nil {
		return m.Delegator
	}
	return nil
}

func (m *DelegationDescription) GetDelegatee() []byte {
	if m != nil {
		return m.Delegatee
	}
	return nil
}

func (m *DelegationDescription) GetExpiresAfterBlock() int64 {
	if m != nil {
		return m.ExpiresAfterBlock
	}
	return 0
}

func (m *DelegationDescription) GetTokenToDelegate() [][]byte {
	if m != nil {
		return m.TokenToDelegate
	}
	return nil
}

// Next tag: 4
type DelegationProof struct {
	// Serialized DelegationDescription.
	DelegationDescriptionBytes []byte `protobuf:"bytes,1,opt,name=delegation_description_bytes,json=delegationDescriptionBytes,proto3" json:"delegation_description_bytes,omitempty"`
	// signature of delegation_description_bytes signed by signer.
	Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
	// addresses of signer. Should be same to "delegator" in DelegationDescription.
	Signer               []byte   `protobuf:"bytes,3,opt,name=signer,proto3" json:"signer,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DelegationProof) Reset()         { *m = DelegationProof{} }
func (m *DelegationProof) String() string { return proto.CompactTextString(m) }
func (*DelegationProof) ProtoMessage()    {}
func (*DelegationProof) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{30}
}

func (m *DelegationProof) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DelegationProof.Unmarshal(m, b)
}
func (m *DelegationProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DelegationProof.Marshal(b, m, deterministic)
}
func (m *DelegationProof) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DelegationProof.Merge(m, src)
}
func (m *DelegationProof) XXX_Size() int {
	return xxx_messageInfo_DelegationProof.Size(m)
}
func (m *DelegationProof) XXX_DiscardUnknown() {
	xxx_messageInfo_DelegationProof.DiscardUnknown(m)
}

var xxx_messageInfo_DelegationProof proto.InternalMessageInfo

func (m *DelegationProof) GetDelegationDescriptionBytes() []byte {
	if m != nil {
		return m.DelegationDescriptionBytes
	}
	return nil
}

func (m *DelegationProof) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

func (m *DelegationProof) GetSigner() []byte {
	if m != nil {
		return m.Signer
	}
	return nil
}

// Next tag: 2
type DelegationRequest struct {
	Proof                *DelegationProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *DelegationRequest) Reset()         { *m = DelegationRequest{} }
func (m *DelegationRequest) String() string { return proto.CompactTextString(m) }
func (*DelegationRequest) ProtoMessage()    {}
func (*DelegationRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{31}
}

func (m *DelegationRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DelegationRequest.Unmarshal(m, b)
}
func (m *DelegationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DelegationRequest.Marshal(b, m, deterministic)
}
func (m *DelegationRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DelegationRequest.Merge(m, src)
}
func (m *DelegationRequest) XXX_Size() int {
	return xxx_messageInfo_DelegationRequest.Size(m)
}
func (m *DelegationRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DelegationRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DelegationRequest proto.InternalMessageInfo

func (m *DelegationRequest) GetProof() *DelegationProof {
	if m != nil {
		return m.Proof
	}
	return nil
}

// Next tag: 2
type DelegationResponse struct {
	Error                string   `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DelegationResponse) Reset()         { *m = DelegationResponse{} }
func (m *DelegationResponse) String() string { return proto.CompactTextString(m) }
func (*DelegationResponse) ProtoMessage()    {}
func (*DelegationResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{32}
}

func (m *DelegationResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DelegationResponse.Unmarshal(m, b)
}
func (m *DelegationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DelegationResponse.Marshal(b, m, deterministic)
}
func (m *DelegationResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DelegationResponse.Merge(m, src)
}
func (m *DelegationResponse) XXX_Size() int {
	return xxx_messageInfo_DelegationResponse.Size(m)
}
func (m *DelegationResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DelegationResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DelegationResponse proto.InternalMessageInfo

func (m *DelegationResponse) GetError() string {
	if m != nil {
		return m.Error
	}
	return ""
}

// Next tag: 2
type QueryDelegationRequest struct {
	// delegatee to query delegation.
	Delegatee            []byte   `protobuf:"bytes,1,opt,name=delegatee,proto3" json:"delegatee,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QueryDelegationRequest) Reset()         { *m = QueryDelegationRequest{} }
func (m *QueryDelegationRequest) String() string { return proto.CompactTextString(m) }
func (*QueryDelegationRequest) ProtoMessage()    {}
func (*QueryDelegationRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{33}
}

func (m *QueryDelegationRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QueryDelegationRequest.Unmarshal(m, b)
}
func (m *QueryDelegationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QueryDelegationRequest.Marshal(b, m, deterministic)
}
func (m *QueryDelegationRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QueryDelegationRequest.Merge(m, src)
}
func (m *QueryDelegationRequest) XXX_Size() int {
	return xxx_messageInfo_QueryDelegationRequest.Size(m)
}
func (m *QueryDelegationRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_QueryDelegationRequest.DiscardUnknown(m)
}

var xxx_messageInfo_QueryDelegationRequest proto.InternalMessageInfo

func (m *QueryDelegationRequest) GetDelegatee() []byte {
	if m != nil {
		return m.Delegatee
	}
	return nil
}

// Next tag: 2
type QueryDelegationResponse struct {
	// DelegationProof stored by celer node.
	Proof                *DelegationProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *QueryDelegationResponse) Reset()         { *m = QueryDelegationResponse{} }
func (m *QueryDelegationResponse) String() string { return proto.CompactTextString(m) }
func (*QueryDelegationResponse) ProtoMessage()    {}
func (*QueryDelegationResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{34}
}

func (m *QueryDelegationResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QueryDelegationResponse.Unmarshal(m, b)
}
func (m *QueryDelegationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QueryDelegationResponse.Marshal(b, m, deterministic)
}
func (m *QueryDelegationResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QueryDelegationResponse.Merge(m, src)
}
func (m *QueryDelegationResponse) XXX_Size() int {
	return xxx_messageInfo_QueryDelegationResponse.Size(m)
}
func (m *QueryDelegationResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_QueryDelegationResponse.DiscardUnknown(m)
}

var xxx_messageInfo_QueryDelegationResponse proto.InternalMessageInfo

func (m *QueryDelegationResponse) GetProof() *DelegationProof {
	if m != nil {
		return m.Proof
	}
	return nil
}

// Next tag: 3
type MigrateChannelRequest struct {
	// Serialized entity.ChannelMigrationInfo
	ChannelMigrationInfo []byte `protobuf:"bytes,1,opt,name=channel_migration_info,json=channelMigrationInfo,proto3" json:"channel_migration_info,omitempty"`
	// Signature of channel_migration_info signed by request sender
	RequesterSig         []byte   `protobuf:"bytes,2,opt,name=requester_sig,json=requesterSig,proto3" json:"requester_sig,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MigrateChannelRequest) Reset()         { *m = MigrateChannelRequest{} }
func (m *MigrateChannelRequest) String() string { return proto.CompactTextString(m) }
func (*MigrateChannelRequest) ProtoMessage()    {}
func (*MigrateChannelRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{35}
}

func (m *MigrateChannelRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MigrateChannelRequest.Unmarshal(m, b)
}
func (m *MigrateChannelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MigrateChannelRequest.Marshal(b, m, deterministic)
}
func (m *MigrateChannelRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MigrateChannelRequest.Merge(m, src)
}
func (m *MigrateChannelRequest) XXX_Size() int {
	return xxx_messageInfo_MigrateChannelRequest.Size(m)
}
func (m *MigrateChannelRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_MigrateChannelRequest.DiscardUnknown(m)
}

var xxx_messageInfo_MigrateChannelRequest proto.InternalMessageInfo

func (m *MigrateChannelRequest) GetChannelMigrationInfo() []byte {
	if m != nil {
		return m.ChannelMigrationInfo
	}
	return nil
}

func (m *MigrateChannelRequest) GetRequesterSig() []byte {
	if m != nil {
		return m.RequesterSig
	}
	return nil
}

// Next tag: 2
type MigrateChannelResponse struct {
	// Signature of channel_migration_info signed by request approver
	ApproverSig          []byte   `protobuf:"bytes,1,opt,name=approver_sig,json=approverSig,proto3" json:"approver_sig,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MigrateChannelResponse) Reset()         { *m = MigrateChannelResponse{} }
func (m *MigrateChannelResponse) String() string { return proto.CompactTextString(m) }
func (*MigrateChannelResponse) ProtoMessage()    {}
func (*MigrateChannelResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{36}
}

func (m *MigrateChannelResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MigrateChannelResponse.Unmarshal(m, b)
}
func (m *MigrateChannelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MigrateChannelResponse.Marshal(b, m, deterministic)
}
func (m *MigrateChannelResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MigrateChannelResponse.Merge(m, src)
}
func (m *MigrateChannelResponse) XXX_Size() int {
	return xxx_messageInfo_MigrateChannelResponse.Size(m)
}
func (m *MigrateChannelResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_MigrateChannelResponse.DiscardUnknown(m)
}

var xxx_messageInfo_MigrateChannelResponse proto.InternalMessageInfo

func (m *MigrateChannelResponse) GetApproverSig() []byte {
	if m != nil {
		return m.ApproverSig
	}
	return nil
}

// Next tag: 7
type GetPayHistoryRequest struct {
	// request pay history of peer.
	Peer string `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"`
	// request pay history before certain timestamp.
	BeforeTs int64 `protobuf:"varint,2,opt,name=before_ts,json=beforeTs,proto3" json:"before_ts,omitempty"`
	// max result in the response.
	ItemsPerPage int32 `protobuf:"varint,3,opt,name=items_per_page,json=itemsPerPage,proto3" json:"items_per_page,omitempty"`
	// signature to verify peer.
	TsSig []byte `protobuf:"bytes,4,opt,name=ts_sig,json=tsSig,proto3" json:"ts_sig,omitempty"`
	Ts    uint64 `protobuf:"varint,5,opt,name=ts,proto3" json:"ts,omitempty"`
	// if result has pays that have payIDs equal to before_ts, only return those that have higher pay ids than smallest_pay_id.
	SmallestPayId        string   `protobuf:"bytes,6,opt,name=smallest_pay_id,json=smallestPayId,proto3" json:"smallest_pay_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetPayHistoryRequest) Reset()         { *m = GetPayHistoryRequest{} }
func (m *GetPayHistoryRequest) String() string { return proto.CompactTextString(m) }
func (*GetPayHistoryRequest) ProtoMessage()    {}
func (*GetPayHistoryRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{37}
}

func (m *GetPayHistoryRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetPayHistoryRequest.Unmarshal(m, b)
}
func (m *GetPayHistoryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetPayHistoryRequest.Marshal(b, m, deterministic)
}
func (m *GetPayHistoryRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetPayHistoryRequest.Merge(m, src)
}
func (m *GetPayHistoryRequest) XXX_Size() int {
	return xxx_messageInfo_GetPayHistoryRequest.Size(m)
}
func (m *GetPayHistoryRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetPayHistoryRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetPayHistoryRequest proto.InternalMessageInfo

func (m *GetPayHistoryRequest) GetPeer() string {
	if m != nil {
		return m.Peer
	}
	return ""
}

func (m *GetPayHistoryRequest) GetBeforeTs() int64 {
	if m != nil {
		return m.BeforeTs
	}
	return 0
}

func (m *GetPayHistoryRequest) GetItemsPerPage() int32 {
	if m != nil {
		return m.ItemsPerPage
	}
	return 0
}

func (m *GetPayHistoryRequest) GetTsSig() []byte {
	if m != nil {
		return m.TsSig
	}
	return nil
}

func (m *GetPayHistoryRequest) GetTs() uint64 {
	if m != nil {
		return m.Ts
	}
	return 0
}

func (m *GetPayHistoryRequest) GetSmallestPayId() string {
	if m != nil {
		return m.SmallestPayId
	}
	return ""
}

// Next tag: 8
type OneHistoricalPay struct {
	// pay destination
	Dst string `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"`
	// token address used by the pay.
	Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
	// amount of the payment
	Amt string `protobuf:"bytes,3,opt,name=amt,proto3" json:"amt,omitempty"`
	// pay status defined at https://github.com/celer-network/goCeler-oss/blob/v0.16.7/common/structs/types.go#L43-L52.
	State int64 `protobuf:"varint,4,opt,name=state,proto3" json:"state,omitempty"`
	// pay id
	PayId string `protobuf:"bytes,5,opt,name=pay_id,json=payId,proto3" json:"pay_id,omitempty"`
	// pay creation timestamp
	CreateTs int64 `protobuf:"varint,6,opt,name=create_ts,json=createTs,proto3" json:"create_ts,omitempty"`
	// pay source
	Src                  string   `protobuf:"bytes,7,opt,name=src,proto3" json:"src,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *OneHistoricalPay) Reset()         { *m = OneHistoricalPay{} }
func (m *OneHistoricalPay) String() string { return proto.CompactTextString(m) }
func (*OneHistoricalPay) ProtoMessage()    {}
func (*OneHistoricalPay) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{38}
}

func (m *OneHistoricalPay) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OneHistoricalPay.Unmarshal(m, b)
}
func (m *OneHistoricalPay) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OneHistoricalPay.Marshal(b, m, deterministic)
}
func (m *OneHistoricalPay) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OneHistoricalPay.Merge(m, src)
}
func (m *OneHistoricalPay) XXX_Size() int {
	return xxx_messageInfo_OneHistoricalPay.Size(m)
}
func (m *OneHistoricalPay) XXX_DiscardUnknown() {
	xxx_messageInfo_OneHistoricalPay.DiscardUnknown(m)
}

var xxx_messageInfo_OneHistoricalPay proto.InternalMessageInfo

func (m *OneHistoricalPay) GetDst() string {
	if m != nil {
		return m.Dst
	}
	return ""
}

func (m *OneHistoricalPay) GetToken() string {
	if m != nil {
		return m.Token
	}
	return ""
}

func (m *OneHistoricalPay) GetAmt() string {
	if m != nil {
		return m.Amt
	}
	return ""
}

func (m *OneHistoricalPay) GetState() int64 {
	if m != nil {
		return m.State
	}
	return 0
}

func (m *OneHistoricalPay) GetPayId() string {
	if m != nil {
		return m.PayId
	}
	return ""
}

func (m *OneHistoricalPay) GetCreateTs() int64 {
	if m != nil {
		return m.CreateTs
	}
	return 0
}

func (m *OneHistoricalPay) GetSrc() string {
	if m != nil {
		return m.Src
	}
	return ""
}

// Next tag: 2
type GetPayHistoryResponse struct {
	Pays                 []*OneHistoricalPay `protobuf:"bytes,1,rep,name=pays,proto3" json:"pays,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *GetPayHistoryResponse) Reset()         { *m = GetPayHistoryResponse{} }
func (m *GetPayHistoryResponse) String() string { return proto.CompactTextString(m) }
func (*GetPayHistoryResponse) ProtoMessage()    {}
func (*GetPayHistoryResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{39}
}

func (m *GetPayHistoryResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetPayHistoryResponse.Unmarshal(m, b)
}
func (m *GetPayHistoryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetPayHistoryResponse.Marshal(b, m, deterministic)
}
func (m *GetPayHistoryResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetPayHistoryResponse.Merge(m, src)
}
func (m *GetPayHistoryResponse) XXX_Size() int {
	return xxx_messageInfo_GetPayHistoryResponse.Size(m)
}
func (m *GetPayHistoryResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_GetPayHistoryResponse.DiscardUnknown(m)
}

var xxx_messageInfo_GetPayHistoryResponse proto.InternalMessageInfo

func (m *GetPayHistoryResponse) GetPays() []*OneHistoricalPay {
	if m != nil {
		return m.Pays
	}
	return nil
}

// Next tag: 3
type ChannelRoutingInfo struct {
	// channel identifier
	Cid string `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
	// channel liquidity amount
	Balance              string   `protobuf:"bytes,2,opt,name=balance,proto3" json:"balance,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChannelRoutingInfo) Reset()         { *m = ChannelRoutingInfo{} }
func (m *ChannelRoutingInfo) String() string { return proto.CompactTextString(m) }
func (*ChannelRoutingInfo) ProtoMessage()    {}
func (*ChannelRoutingInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{40}
}

func (m *ChannelRoutingInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChannelRoutingInfo.Unmarshal(m, b)
}
func (m *ChannelRoutingInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChannelRoutingInfo.Marshal(b, m, deterministic)
}
func (m *ChannelRoutingInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChannelRoutingInfo.Merge(m, src)
}
func (m *ChannelRoutingInfo) XXX_Size() int {
	return xxx_messageInfo_ChannelRoutingInfo.Size(m)
}
func (m *ChannelRoutingInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_ChannelRoutingInfo.DiscardUnknown(m)
}

var xxx_messageInfo_ChannelRoutingInfo proto.InternalMessageInfo

func (m *ChannelRoutingInfo) GetCid() string {
	if m != nil {
		return m.Cid
	}
	return ""
}

func (m *ChannelRoutingInfo) GetBalance() string {
	if m != nil {
		return m.Balance
	}
	return ""
}

// Next tag: 5
type RoutingUpdate struct {
	// origin source OSP for this information.
	Origin string `protobuf:"bytes,1,opt,name=origin,proto3" json:"origin,omitempty"`
	// timestamp of this information at the origin.
	Ts uint64 `protobuf:"varint,2,opt,name=ts,proto3" json:"ts,omitempty"`
	// channel information
	Channels []*ChannelRoutingInfo `protobuf:"bytes,3,rep,name=channels,proto3" json:"channels,omitempty"`
	// routing protocol version number
	ProtoVersion         uint64   `protobuf:"varint,4,opt,name=proto_version,json=protoVersion,proto3" json:"proto_version,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RoutingUpdate) Reset()         { *m = RoutingUpdate{} }
func (m *RoutingUpdate) String() string { return proto.CompactTextString(m) }
func (*RoutingUpdate) ProtoMessage()    {}
func (*RoutingUpdate) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{41}
}

func (m *RoutingUpdate) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RoutingUpdate.Unmarshal(m, b)
}
func (m *RoutingUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RoutingUpdate.Marshal(b, m, deterministic)
}
func (m *RoutingUpdate) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RoutingUpdate.Merge(m, src)
}
func (m *RoutingUpdate) XXX_Size() int {
	return xxx_messageInfo_RoutingUpdate.Size(m)
}
func (m *RoutingUpdate) XXX_DiscardUnknown() {
	xxx_messageInfo_RoutingUpdate.DiscardUnknown(m)
}

var xxx_messageInfo_RoutingUpdate proto.InternalMessageInfo

func (m *RoutingUpdate) GetOrigin() string {
	if m != nil {
		return m.Origin
	}
	return ""
}

func (m *RoutingUpdate) GetTs() uint64 {
	if m != nil {
		return m.Ts
	}
	return 0
}

func (m *RoutingUpdate) GetChannels() []*ChannelRoutingInfo {
	if m != nil {
		return m.Channels
	}
	return nil
}

func (m *RoutingUpdate) GetProtoVersion() uint64 {
	if m != nil {
		return m.ProtoVersion
	}
	return 0
}

// Next tag: 4
type SignedRoutingUpdate struct {
	// serialized RoutingUpdate
	Update []byte `protobuf:"bytes,1,opt,name=update,proto3" json:"update,omitempty"`
	// sig of serialized RoutingUpdate by origin
	Sig []byte `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"`
	// time to live: decreasing hop count to stop the broadcast.
	Ttl                  uint64   `protobuf:"varint,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SignedRoutingUpdate) Reset()         { *m = SignedRoutingUpdate{} }
func (m *SignedRoutingUpdate) String() string { return proto.CompactTextString(m) }
func (*SignedRoutingUpdate) ProtoMessage()    {}
func (*SignedRoutingUpdate) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{42}
}

func (m *SignedRoutingUpdate) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SignedRoutingUpdate.Unmarshal(m, b)
}
func (m *SignedRoutingUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SignedRoutingUpdate.Marshal(b, m, deterministic)
}
func (m *SignedRoutingUpdate) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SignedRoutingUpdate.Merge(m, src)
}
func (m *SignedRoutingUpdate) XXX_Size() int {
	return xxx_messageInfo_SignedRoutingUpdate.Size(m)
}
func (m *SignedRoutingUpdate) XXX_DiscardUnknown() {
	xxx_messageInfo_SignedRoutingUpdate.DiscardUnknown(m)
}

var xxx_messageInfo_SignedRoutingUpdate proto.InternalMessageInfo

func (m *SignedRoutingUpdate) GetUpdate() []byte {
	if m != nil {
		return m.Update
	}
	return nil
}

func (m *SignedRoutingUpdate) GetSig() []byte {
	if m != nil {
		return m.Sig
	}
	return nil
}

func (m *SignedRoutingUpdate) GetTtl() uint64 {
	if m != nil {
		return m.Ttl
	}
	return 0
}

// Next tag: 3
type RoutingRequest struct {
	// list of routing updates
	Updates []*SignedRoutingUpdate `protobuf:"bytes,1,rep,name=updates,proto3" json:"updates,omitempty"`
	// OSP that sent (propagated) this information.
	Sender               string   `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RoutingRequest) Reset()         { *m = RoutingRequest{} }
func (m *RoutingRequest) String() string { return proto.CompactTextString(m) }
func (*RoutingRequest) ProtoMessage()    {}
func (*RoutingRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_33c57e4bae7b9afd, []int{43}
}

func (m *RoutingRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RoutingRequest.Unmarshal(m, b)
}
func (m *RoutingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RoutingRequest.Marshal(b, m, deterministic)
}
func (m *RoutingRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RoutingRequest.Merge(m, src)
}
func (m *RoutingRequest) XXX_Size() int {
	return xxx_messageInfo_RoutingRequest.Size(m)
}
func (m *RoutingRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_RoutingRequest.DiscardUnknown(m)
}

var xxx_messageInfo_RoutingRequest proto.InternalMessageInfo

func (m *RoutingRequest) GetUpdates() []*SignedRoutingUpdate {
	if m != nil {
		return m.Updates
	}
	return nil
}

func (m *RoutingRequest) GetSender() string {
	if m != nil {
		return m.Sender
	}
	return ""
}

func init() {
	proto.RegisterEnum("rpc.ErrCode", ErrCode_name, ErrCode_value)
	proto.RegisterEnum("rpc.PaymentSettleReason", PaymentSettleReason_name, PaymentSettleReason_value)
	proto.RegisterEnum("rpc.OpenChannelBy", OpenChannelBy_name, OpenChannelBy_value)
	proto.RegisterEnum("rpc.OpenChannelStatus", OpenChannelStatus_name, OpenChannelStatus_value)
	proto.RegisterEnum("rpc.JoinCelerStatus", JoinCelerStatus_name, JoinCelerStatus_value)
	proto.RegisterType((*MID)(nil), "rpc.MID")
	proto.RegisterType((*CelerMsg)(nil), "rpc.CelerMsg")
	proto.RegisterType((*Error)(nil), "rpc.Error")
	proto.RegisterType((*AuthReq)(nil), "rpc.AuthReq")
	proto.RegisterType((*AuthAck)(nil), "rpc.AuthAck")
	proto.RegisterType((*RevealSecret)(nil), "rpc.RevealSecret")
	proto.RegisterType((*RevealSecretAck)(nil), "rpc.RevealSecretAck")
	proto.RegisterType((*CrossNetPay)(nil), "rpc.CrossNetPay")
	proto.RegisterType((*CondPayRequest)(nil), "rpc.CondPayRequest")
	proto.RegisterType((*CondPayResponse)(nil), "rpc.CondPayResponse")
	proto.RegisterType((*PayHop)(nil), "rpc.PayHop")
	proto.RegisterType((*SignedPayHop)(nil), "rpc.SignedPayHop")
	proto.RegisterType((*PayPath)(nil), "rpc.PayPath")
	proto.RegisterType((*SettledPayment)(nil), "rpc.SettledPayment")
	proto.RegisterType((*PaymentSettleProof)(nil), "rpc.PaymentSettleProof")
	proto.RegisterType((*PaymentSettleRequest)(nil), "rpc.PaymentSettleRequest")
	proto.RegisterType((*PaymentSettleResponse)(nil), "rpc.PaymentSettleResponse")
	proto.RegisterType((*OpenChannelRequest)(nil), "rpc.OpenChannelRequest")
	proto.RegisterType((*OpenChannelResponse)(nil), "rpc.OpenChannelResponse")
	proto.RegisterType((*CooperativeWithdrawRequest)(nil), "rpc.CooperativeWithdrawRequest")
	proto.RegisterType((*CooperativeWithdrawResponse)(nil), "rpc.CooperativeWithdrawResponse")
	proto.RegisterType((*CondPayReceipt)(nil), "rpc.CondPayReceipt")
	proto.RegisterType((*SignedSimplexState)(nil), "rpc.SignedSimplexState")
	proto.RegisterType((*SignedDuplexState)(nil), "rpc.SignedDuplexState")
	proto.RegisterType((*PeerAddress)(nil), "rpc.PeerAddress")
	proto.RegisterType((*PeerStatus)(nil), "rpc.PeerStatus")
	proto.RegisterType((*ChannelSummary)(nil), "rpc.ChannelSummary")
	proto.RegisterType((*ChannelInAuth)(nil), "rpc.ChannelInAuth")
	proto.RegisterType((*PayInAuthAck)(nil), "rpc.PayInAuthAck")
	proto.RegisterType((*DelegationDescription)(nil), "rpc.DelegationDescription")
	proto.RegisterType((*DelegationProof)(nil), "rpc.DelegationProof")
	proto.RegisterType((*DelegationRequest)(nil), "rpc.DelegationRequest")
	proto.RegisterType((*DelegationResponse)(nil), "rpc.DelegationResponse")
	proto.RegisterType((*QueryDelegationRequest)(nil), "rpc.QueryDelegationRequest")
	proto.RegisterType((*QueryDelegationResponse)(nil), "rpc.QueryDelegationResponse")
	proto.RegisterType((*MigrateChannelRequest)(nil), "rpc.MigrateChannelRequest")
	proto.RegisterType((*MigrateChannelResponse)(nil), "rpc.MigrateChannelResponse")
	proto.RegisterType((*GetPayHistoryRequest)(nil), "rpc.GetPayHistoryRequest")
	proto.RegisterType((*OneHistoricalPay)(nil), "rpc.OneHistoricalPay")
	proto.RegisterType((*GetPayHistoryResponse)(nil), "rpc.GetPayHistoryResponse")
	proto.RegisterType((*ChannelRoutingInfo)(nil), "rpc.ChannelRoutingInfo")
	proto.RegisterType((*RoutingUpdate)(nil), "rpc.RoutingUpdate")
	proto.RegisterType((*SignedRoutingUpdate)(nil), "rpc.SignedRoutingUpdate")
	proto.RegisterType((*RoutingRequest)(nil), "rpc.RoutingRequest")
}

func init() { proto.RegisterFile("message.proto", fileDescriptor_33c57e4bae7b9afd) }

var fileDescriptor_33c57e4bae7b9afd = []byte{
	// 3130 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x39, 0x4d, 0x6f, 0x23, 0x47,
	0x76, 0x6a, 0x7e, 0xf3, 0x89, 0x22, 0x5b, 0xa5, 0x8f, 0xe1, 0x7c, 0x18, 0xa3, 0x69, 0xdb, 0xc9,
	0x8c, 0x12, 0x6b, 0x8c, 0xb1, 0xe3, 0x04, 0x48, 0x60, 0x9b, 0x22, 0xdb, 0x23, 0xda, 0x12, 0x9b,
	0x53, 0xa4, 0xc6, 0x1f, 0x30, 0xd0, 0x69, 0x75, 0x97, 0xa8, 0xce, 0x90, 0xdd, 0xad, 0xee, 0xa2,
	0x66, 0x98, 0x4b, 0x82, 0x00, 0x81, 0x91, 0x43, 0x90, 0xe4, 0x98, 0x73, 0x10, 0x20, 0x40, 0x0e,
	0x7b, 0xda, 0xcb, 0x62, 0x7f, 0xc0, 0x62, 0xcf, 0x7b, 0xde, 0xeb, 0x5e, 0xf6, 0x47, 0x2c, 0xea,
	0xab, 0xd9, 0xa4, 0xa8, 0x59, 0x2d, 0xe0, 0xdd, 0x13, 0xbb, 0xde, 0x7b, 0xf5, 0xde, 0xab, 0x57,
	0xef, 0xb3, 0x08, 0x1b, 0x13, 0x92, 0x24, 0xce, 0x88, 0x1c, 0x44, 0x71, 0x48, 0x43, 0x94, 0x8f,
	0x23, 0xf7, 0x5e, 0x8d, 0x04, 0xd4, 0xa7, 0x33, 0x01, 0xba, 0x77, 0x77, 0x14, 0x86, 0xa3, 0x31,
	0x79, 0xca, 0x57, 0x67, 0xd3, 0xf3, 0xa7, 0x4e, 0x20, 0x51, 0xc6, 0x13, 0xc8, 0x9f, 0x74, 0x3b,
	0x48, 0x87, 0x3c, 0x75, 0x46, 0x4d, 0x6d, 0x4f, 0x7b, 0x5c, 0xc5, 0xec, 0x93, 0x41, 0x12, 0x72,
	0xd9, 0xcc, 0xed, 0x69, 0x8f, 0x0b, 0x98, 0x7d, 0x1a, 0xbf, 0xa8, 0x42, 0xa5, 0x4d, 0xc6, 0x24,
	0x3e, 0x49, 0x46, 0xe8, 0x1e, 0xe4, 0x27, 0xbe, 0xc7, 0x37, 0xac, 0x3f, 0xab, 0x1c, 0xc4, 0x91,
	0x7b, 0x70, 0xd2, 0xed, 0x60, 0x06, 0x44, 0x8f, 0xa0, 0x1c, 0x13, 0x6a, 0x33, 0x7c, 0x6e, 0x09,
	0x5f, 0x8a, 0x09, 0x3d, 0xf1, 0x3d, 0x84, 0xa0, 0x70, 0x3e, 0x76, 0x46, 0xcd, 0x3c, 0x67, 0xcf,
	0xbf, 0xd1, 0x1d, 0x28, 0xd3, 0xd0, 0x76, 0x3c, 0x2f, 0x6e, 0x16, 0xf6, 0xb4, 0xc7, 0x35, 0x5c,
	0xa2, 0x61, 0xcb, 0xf3, 0x62, 0x64, 0x40, 0x91, 0xc4, 0x71, 0x18, 0x37, 0x4b, 0x9c, 0x1b, 0x70,
	0x6e, 0x26, 0x83, 0x1c, 0xad, 0x61, 0x81, 0x42, 0x4f, 0xa0, 0xe2, 0x4c, 0xe9, 0x85, 0x1d, 0x93,
	0xcb, 0x66, 0x99, 0x93, 0xd5, 0x38, 0x59, 0x6b, 0x4a, 0x2f, 0x30, 0xb9, 0x3c, 0x5a, 0xc3, 0x65,
	0x47, 0x7c, 0xa6, 0xa4, 0x8e, 0xfb, 0xaa, 0x59, 0x59, 0x22, 0x6d, 0xb9, 0xaf, 0x14, 0x69, 0xcb,
	0x7d, 0x85, 0x3e, 0x03, 0xdd, 0x0d, 0x03, 0xcf, 0x8e, 0x9c, 0x19, 0xe3, 0x3c, 0x25, 0x09, 0x6d,
	0x56, 0xf9, 0x96, 0x2d, 0xbe, 0xa5, 0x1d, 0x06, 0x5e, 0xdf, 0x99, 0x61, 0x81, 0x3a, 0x5a, 0xc3,
	0x75, 0x77, 0x01, 0x82, 0x0e, 0x61, 0x33, 0xc3, 0x20, 0x89, 0xc2, 0x20, 0x21, 0x4d, 0xe0, 0x1c,
	0xb6, 0x17, 0x39, 0x08, 0xdc, 0xd1, 0x1a, 0x6e, 0xb8, 0x8b, 0x20, 0xf4, 0x15, 0x6c, 0x47, 0xce,
	0x6c, 0x42, 0x02, 0x6a, 0x27, 0x84, 0xd2, 0x31, 0xb1, 0xa3, 0x38, 0x0c, 0xcf, 0x9b, 0xeb, 0x9c,
	0xcd, 0x1d, 0xce, 0xa6, 0x2f, 0x08, 0x06, 0x1c, 0xdf, 0x67, 0xe8, 0xa3, 0x35, 0x8c, 0xa2, 0x6b,
	0x50, 0xf4, 0x02, 0x76, 0x97, 0x98, 0xa9, 0x73, 0xd5, 0x38, 0xbb, 0xbb, 0xd7, 0xd9, 0xcd, 0x4f,
	0xb7, 0x1d, 0xad, 0x80, 0xa3, 0x21, 0xdc, 0xb9, 0xc6, 0x52, 0x9e, 0x74, 0x83, 0xf3, 0xbc, 0xb7,
	0x8a, 0x67, 0x7a, 0xde, 0x9d, 0x68, 0x15, 0x02, 0x1d, 0x83, 0xfe, 0xda, 0xa7, 0x17, 0x5e, 0xec,
	0xbc, 0x4e, 0x55, 0xac, 0x73, 0x76, 0x0f, 0xa5, 0xe1, 0xc2, 0x88, 0xc4, 0x0e, 0xf5, 0xaf, 0xc8,
	0xd7, 0x92, 0x6e, 0xae, 0x68, 0xe3, 0xf5, 0x22, 0x08, 0x59, 0xb0, 0x99, 0xe1, 0x26, 0xb5, 0x6b,
	0x70, 0x76, 0x7b, 0x37, 0xb3, 0x4b, 0x75, 0xd4, 0x5f, 0x2f, 0xc1, 0xd0, 0xa7, 0xd0, 0x88, 0xc3,
	0x29, 0xf5, 0x83, 0x51, 0xaa, 0x9d, 0x9e, 0x71, 0x0c, 0x2c, 0x70, 0x19, 0xc7, 0x88, 0x17, 0x20,
	0x4b, 0x9e, 0xe5, 0x12, 0x3f, 0xa2, 0xcd, 0x87, 0xab, 0x3c, 0x8b, 0xa3, 0x16, 0x3c, 0x8b, 0x43,
	0xd0, 0xdf, 0xc0, 0x46, 0x4c, 0xae, 0x88, 0x33, 0xb6, 0x13, 0xe2, 0xc6, 0x84, 0x36, 0xf7, 0xf8,
	0xee, 0x4d, 0x21, 0x9e, 0x63, 0x06, 0x1c, 0x71, 0xb4, 0x86, 0x6b, 0x71, 0x66, 0xcd, 0x7c, 0x72,
	0x61, 0x27, 0x0f, 0x84, 0x47, 0x19, 0x9f, 0xcc, 0xee, 0x16, 0x01, 0xd1, 0x88, 0x17, 0x41, 0xe8,
	0x6b, 0x68, 0x4a, 0x97, 0x9e, 0x8e, 0xa9, 0x7d, 0x15, 0x4e, 0xdd, 0x8b, 0xd4, 0x0e, 0x06, 0x67,
	0xf5, 0xe0, 0x40, 0xa6, 0xa0, 0x97, 0x0c, 0x49, 0xbc, 0xb9, 0xa3, 0x4f, 0xc7, 0x54, 0x5e, 0xbb,
	0x58, 0x70, 0x02, 0x65, 0x97, 0x6f, 0xe1, 0xee, 0x0a, 0xc6, 0xf2, 0xc2, 0xde, 0xbd, 0x15, 0xe7,
	0xdd, 0x65, 0xce, 0x62, 0xf7, 0x61, 0x15, 0xca, 0x32, 0x53, 0x1a, 0x03, 0x28, 0xf2, 0xfc, 0x81,
	0xf6, 0xa0, 0xe0, 0x86, 0x1e, 0xe1, 0x79, 0xac, 0x2e, 0xf3, 0x80, 0x19, 0xc7, 0xed, 0xd0, 0x23,
	0x98, 0x63, 0xd0, 0x2e, 0x94, 0x62, 0xe2, 0x24, 0x61, 0xc0, 0x73, 0x59, 0x15, 0xcb, 0x95, 0xca,
	0x8f, 0xf9, 0x79, 0x7e, 0xfc, 0x97, 0x1c, 0x94, 0x65, 0xba, 0x61, 0xb9, 0x6c, 0x32, 0x13, 0xb9,
	0x4c, 0x13, 0xb9, 0x6c, 0x32, 0xe3, 0xb9, 0xec, 0x01, 0x54, 0xa9, 0x3f, 0x21, 0x09, 0x75, 0x26,
	0x91, 0x4c, 0xae, 0x73, 0x00, 0xda, 0x81, 0xd2, 0x64, 0x66, 0x27, 0xbe, 0x48, 0x8c, 0x35, 0x5c,
	0x9c, 0xcc, 0x06, 0xfe, 0x08, 0x3d, 0x84, 0x75, 0xf2, 0x26, 0x22, 0x2e, 0xb5, 0x23, 0x42, 0x54,
	0x76, 0x04, 0x01, 0xea, 0x13, 0x12, 0x33, 0x82, 0xc9, 0x94, 0x4e, 0x9d, 0xb1, 0xcd, 0x32, 0x57,
	0xb3, 0xb8, 0xa7, 0x3d, 0xae, 0x60, 0x10, 0x20, 0xa6, 0x12, 0x7a, 0x02, 0x3a, 0xcf, 0xf7, 0x6e,
	0x38, 0xb6, 0xaf, 0x48, 0x9c, 0xf8, 0x61, 0xc0, 0xb3, 0x69, 0x01, 0x37, 0x14, 0xfc, 0xa5, 0x00,
	0xa3, 0xbf, 0x83, 0x46, 0x18, 0x91, 0x80, 0x78, 0xb6, 0x7b, 0xe1, 0x04, 0x01, 0x19, 0x27, 0xcd,
	0xf2, 0x5e, 0x7e, 0xee, 0x98, 0x02, 0x38, 0x98, 0x4e, 0x26, 0x4e, 0x3c, 0xc3, 0x75, 0x41, 0x2b,
	0xa1, 0x89, 0xf1, 0xcf, 0x9a, 0x30, 0x02, 0x73, 0x92, 0xf7, 0xa1, 0x9a, 0x50, 0x27, 0x16, 0x95,
	0x60, 0xb9, 0x52, 0x54, 0x38, 0x8a, 0xd5, 0x82, 0xf9, 0xa1, 0x73, 0xd9, 0x43, 0xff, 0x35, 0x6c,
	0x24, 0xb3, 0xc0, 0x9d, 0x6b, 0x91, 0xe7, 0x5a, 0xa0, 0xac, 0x16, 0xdd, 0x80, 0x1b, 0xbc, 0xc6,
	0x08, 0x53, 0x15, 0x08, 0xd4, 0xb2, 0x1e, 0xcc, 0xf8, 0x33, 0x97, 0x92, 0x3a, 0xd4, 0x70, 0x31,
	0x72, 0x66, 0x5d, 0x8f, 0x5d, 0xac, 0x8c, 0x1c, 0x21, 0x56, 0xae, 0xd0, 0x9f, 0x41, 0x23, 0x8c,
	0xfd, 0x91, 0x1f, 0x38, 0x63, 0x5b, 0xee, 0x13, 0x97, 0xb1, 0xa1, 0xc0, 0x7d, 0xb6, 0xdf, 0xf8,
	0x27, 0x68, 0x2c, 0x05, 0xca, 0x4d, 0x92, 0x3e, 0x80, 0x2d, 0x06, 0xf6, 0x48, 0x42, 0x55, 0xc8,
	0xcd, 0x4f, 0xab, 0x47, 0xce, 0xac, 0x43, 0x12, 0x2a, 0xb8, 0xb0, 0x83, 0xdf, 0x56, 0x81, 0xdf,
	0x68, 0xb0, 0xde, 0x8e, 0xc3, 0x24, 0xe9, 0x11, 0xda, 0x77, 0x66, 0xe8, 0x01, 0x40, 0x12, 0xbb,
	0x76, 0x40, 0xa8, 0xd2, 0xa0, 0x80, 0x2b, 0x49, 0xec, 0xf6, 0x08, 0xed, 0x7a, 0x0c, 0xeb, 0x25,
	0x54, 0x61, 0x85, 0xe7, 0x55, 0xbc, 0x84, 0x0a, 0xec, 0x23, 0xa8, 0x65, 0x65, 0x4a, 0x81, 0xeb,
	0x19, 0x81, 0xe8, 0x1e, 0x54, 0x5c, 0x26, 0xcd, 0x0f, 0x46, 0xdc, 0x03, 0x2b, 0x38, 0x5d, 0x33,
	0xff, 0x3b, 0x8b, 0x7d, 0x6f, 0x44, 0x84, 0xcb, 0x17, 0x85, 0x83, 0x0a, 0x90, 0x2c, 0xe1, 0x1b,
	0x92, 0x40, 0x2a, 0x20, 0x9c, 0x4f, 0xee, 0x12, 0x3a, 0x34, 0xa1, 0xcc, 0x22, 0x21, 0x9c, 0x52,
	0x5e, 0xc1, 0x0b, 0x58, 0x2d, 0x8d, 0xff, 0xc8, 0x41, 0x7d, 0xb1, 0xd4, 0xa2, 0xbb, 0x50, 0x51,
	0xf9, 0x53, 0x1a, 0xbb, 0x2c, 0x13, 0x24, 0xb2, 0xa0, 0x99, 0x50, 0x87, 0x12, 0x3b, 0x0c, 0xc6,
	0x33, 0x1e, 0x31, 0xf6, 0x79, 0x1c, 0x4e, 0x52, 0x9b, 0xab, 0x9a, 0x39, 0xf0, 0x47, 0x01, 0xf1,
	0x06, 0xfe, 0x24, 0x1a, 0x93, 0x37, 0x03, 0xb6, 0x03, 0x6f, 0xf3, 0x8d, 0x56, 0x30, 0x9e, 0xb1,
	0xb0, 0xfa, 0x22, 0x0e, 0x27, 0xec, 0x42, 0x1e, 0x43, 0x21, 0x08, 0x29, 0xe1, 0x46, 0x61, 0x39,
	0x52, 0x74, 0x53, 0x07, 0xaa, 0x9b, 0x3a, 0x68, 0x05, 0x33, 0xcc, 0x29, 0x98, 0x56, 0x67, 0x4e,
	0x42, 0x6c, 0x96, 0x19, 0x0a, 0xe2, 0x0c, 0x6c, 0x3d, 0x20, 0x97, 0xe8, 0x1d, 0x00, 0xcf, 0x8f,
	0x79, 0x0c, 0x3b, 0x33, 0x19, 0xa1, 0x55, 0x01, 0x61, 0x4a, 0x7f, 0x00, 0x55, 0x6e, 0x4d, 0x66,
	0x1f, 0xd9, 0xe7, 0xe8, 0xc2, 0xd3, 0xe7, 0x37, 0x2c, 0x0d, 0xde, 0x23, 0xd4, 0x48, 0xa0, 0xb1,
	0xd4, 0x39, 0xa0, 0x4f, 0xa1, 0x2e, 0x8e, 0xed, 0x86, 0x09, 0x3f, 0x99, 0x0c, 0xb9, 0x1b, 0x0f,
	0xbb, 0xc1, 0xc9, 0xdb, 0x92, 0x1a, 0xed, 0xa9, 0x2e, 0x2b, 0xb7, 0xdc, 0x65, 0xc9, 0x1e, 0xcb,
	0xf8, 0x57, 0x0d, 0x4a, 0x7d, 0x67, 0x76, 0x14, 0x46, 0x37, 0x79, 0xba, 0x01, 0x1b, 0x51, 0x4c,
	0xae, 0xec, 0x8b, 0x30, 0x12, 0x9e, 0x20, 0x7c, 0x7c, 0x9d, 0x01, 0x8f, 0xc2, 0x48, 0xb9, 0x42,
	0x40, 0xde, 0xd0, 0x39, 0x8d, 0xf4, 0x35, 0x06, 0x54, 0x34, 0x0f, 0x20, 0x4f, 0x62, 0x91, 0xe8,
	0x16, 0x35, 0x61, 0x60, 0xa3, 0x03, 0x35, 0x71, 0x1c, 0xa9, 0x0c, 0x93, 0xea, 0xcc, 0x38, 0xc3,
	0xb3, 0x19, 0x25, 0x89, 0xd4, 0x69, 0x3d, 0xe2, 0xe8, 0x43, 0x06, 0xe2, 0xe9, 0x3a, 0x8d, 0x39,
	0xf6, 0x69, 0x7c, 0x08, 0xe5, 0xbe, 0x33, 0xeb, 0x3b, 0xf4, 0x02, 0xbd, 0x0f, 0x85, 0x8b, 0x30,
	0x62, 0xfb, 0xf2, 0x69, 0x09, 0xcd, 0x4a, 0xc0, 0x1c, 0x6d, 0xfc, 0x52, 0x83, 0xba, 0xe8, 0x52,
	0x3c, 0xd9, 0xcc, 0xa0, 0xf7, 0xa0, 0x2e, 0x7a, 0x1e, 0xcf, 0x5e, 0xb0, 0x47, 0x2d, 0x49, 0xe9,
	0xba, 0x1e, 0xfa, 0x70, 0xa1, 0x86, 0xd4, 0x9f, 0x35, 0x57, 0x35, 0x44, 0x0c, 0x9f, 0x56, 0x97,
	0x5d, 0x28, 0x39, 0x93, 0x70, 0x1a, 0x50, 0x69, 0x1d, 0xb9, 0x62, 0xf5, 0x2a, 0x72, 0xe8, 0x85,
	0xb4, 0x4c, 0x4d, 0xf1, 0x61, 0xa7, 0xc0, 0x1c, 0xb3, 0x2a, 0x7b, 0x14, 0x57, 0x65, 0x8f, 0xff,
	0xd1, 0x00, 0x5d, 0xef, 0x1a, 0xd1, 0x29, 0x34, 0xaf, 0x44, 0x59, 0xb5, 0xb3, 0x8d, 0xeb, 0x74,
	0x4c, 0x95, 0x79, 0xde, 0x5a, 0x7e, 0xf1, 0xce, 0xd5, 0x0a, 0x68, 0x82, 0x3e, 0x81, 0x5a, 0xc6,
	0x4e, 0x49, 0x33, 0x97, 0xa9, 0x28, 0x8b, 0x26, 0xc5, 0xeb, 0x73, 0xd3, 0x25, 0xc6, 0xcf, 0x34,
	0xd8, 0x5e, 0xd5, 0x8c, 0x5e, 0x63, 0xa8, 0xdd, 0x8e, 0xe1, 0x8f, 0x9f, 0x1c, 0xb2, 0x21, 0x9f,
	0x5f, 0x08, 0x79, 0x63, 0x06, 0x3b, 0x2b, 0x9b, 0xde, 0x1f, 0x2f, 0x54, 0xf3, 0x37, 0x85, 0xea,
	0x4f, 0x35, 0x40, 0x56, 0x44, 0x02, 0x59, 0x14, 0x95, 0xd5, 0x9e, 0xc2, 0x96, 0x2c, 0xa7, 0xb6,
	0x1f, 0xf8, 0xd4, 0x77, 0xc6, 0xfe, 0x3f, 0x12, 0xd5, 0xa2, 0x20, 0x57, 0x15, 0xd5, 0x14, 0x83,
	0xde, 0x65, 0x5d, 0x26, 0xdf, 0x4b, 0xe2, 0x4c, 0xd1, 0xaa, 0xa5, 0x40, 0x66, 0x82, 0xbf, 0x80,
	0x32, 0xeb, 0x02, 0xec, 0x33, 0x51, 0x37, 0xea, 0xb2, 0x46, 0x67, 0xe4, 0x1f, 0xce, 0x70, 0x89,
	0x91, 0x1c, 0xf2, 0x2a, 0x15, 0x26, 0x91, 0x4d, 0x43, 0x3b, 0x4c, 0x22, 0x55, 0x48, 0xc2, 0x24,
	0x1a, 0x86, 0x56, 0x12, 0x19, 0xbf, 0xd5, 0x60, 0x6b, 0x41, 0x6f, 0x69, 0xb1, 0x3f, 0x8e, 0xe2,
	0x8f, 0xa0, 0xe6, 0x44, 0x51, 0x1c, 0x5e, 0x49, 0x1a, 0x99, 0x89, 0x14, 0x8c, 0x91, 0x1c, 0x40,
	0x89, 0xd9, 0x7e, 0x9a, 0x70, 0x55, 0xeb, 0xcf, 0x76, 0x97, 0x8f, 0x36, 0xe0, 0x58, 0x2c, 0xa9,
	0xd0, 0x5f, 0x82, 0x9a, 0xba, 0xec, 0x54, 0x61, 0x15, 0x81, 0xba, 0xc4, 0xa8, 0xe6, 0xc5, 0x33,
	0x7e, 0xd0, 0xe0, 0xde, 0xcd, 0x83, 0x0c, 0xea, 0xc0, 0x46, 0x3a, 0xb5, 0xf8, 0xc1, 0x79, 0x28,
	0xdd, 0xe4, 0xa1, 0x8a, 0xc0, 0x15, 0x5b, 0xbb, 0xc1, 0x79, 0x88, 0x6b, 0xaf, 0x33, 0xab, 0x5b,
	0x99, 0xc2, 0xf8, 0x7f, 0x0d, 0xee, 0xbf, 0x65, 0x06, 0xfa, 0x13, 0xaa, 0x72, 0x8b, 0x5b, 0x31,
	0x7e, 0xad, 0x65, 0x1a, 0x02, 0x31, 0x0f, 0xdd, 0x50, 0x91, 0xf6, 0xa0, 0x36, 0xef, 0xbd, 0x52,
	0x81, 0xa0, 0x9a, 0x2e, 0x7f, 0x84, 0xf6, 0x61, 0x53, 0x50, 0x8c, 0xc9, 0xc8, 0xa1, 0x61, 0x56,
	0x66, 0x83, 0x93, 0x49, 0x38, 0xa3, 0xfd, 0x0c, 0x74, 0x49, 0xe7, 0x87, 0x81, 0x1c, 0xc3, 0x0b,
	0x99, 0xc9, 0xa9, 0x93, 0x22, 0x79, 0x36, 0xc5, 0x0d, 0x6f, 0x11, 0x70, 0xeb, 0xec, 0xfc, 0x83,
	0x06, 0xe8, 0x7a, 0x1e, 0x60, 0xf6, 0x4b, 0xc4, 0xda, 0xe6, 0x19, 0x21, 0xad, 0x36, 0x59, 0xa2,
	0x3f, 0x07, 0x3d, 0xf1, 0x47, 0x76, 0x78, 0x3e, 0x4f, 0x6f, 0xf2, 0xd8, 0x1b, 0x89, 0x3f, 0xb2,
	0xce, 0x55, 0xf6, 0x42, 0xef, 0x42, 0x3d, 0x4b, 0x48, 0x43, 0x65, 0xea, 0x94, 0x6c, 0x18, 0x1a,
	0x03, 0xd8, 0x14, 0x8a, 0x74, 0xa6, 0x73, 0x11, 0x2c, 0x81, 0x65, 0xf5, 0x50, 0xf9, 0xf7, 0x2d,
	0x09, 0x2c, 0xb3, 0x4a, 0x8c, 0x2f, 0x60, 0x9d, 0xb1, 0x67, 0xb5, 0x9e, 0x24, 0x09, 0xeb, 0xfc,
	0x1c, 0xf1, 0x29, 0x5f, 0xa0, 0xd4, 0x92, 0x75, 0x4d, 0x34, 0x7c, 0x45, 0x82, 0x79, 0x37, 0x51,
	0xc5, 0x55, 0x0e, 0x61, 0x7b, 0x8d, 0x73, 0x00, 0xc6, 0x47, 0xc4, 0x20, 0x73, 0x9c, 0xf3, 0x98,
	0x10, 0xfb, 0xcc, 0x19, 0x3b, 0x81, 0x4b, 0x24, 0xaf, 0x75, 0x06, 0x3b, 0x14, 0x20, 0xf4, 0x57,
	0xb0, 0xfe, 0x0f, 0xa1, 0x1f, 0xd8, 0x32, 0xa6, 0x45, 0x39, 0x16, 0x77, 0xf7, 0x65, 0xe8, 0x07,
	0xfc, 0x79, 0x4b, 0x46, 0x34, 0x30, 0x42, 0xf1, 0x6d, 0xfc, 0x27, 0xf3, 0xb7, 0x85, 0xc1, 0x87,
	0x69, 0x96, 0x09, 0x70, 0x71, 0x0f, 0x55, 0x95, 0x88, 0x78, 0xbb, 0xcd, 0x86, 0x1a, 0x72, 0x69,
	0x07, 0xd3, 0x89, 0x6a, 0xb7, 0x27, 0xb3, 0x01, 0xb9, 0xec, 0x4d, 0x27, 0xdc, 0x2b, 0x99, 0xc9,
	0x15, 0x5e, 0x14, 0x0e, 0x60, 0x30, 0x49, 0xf1, 0x10, 0xd6, 0xc7, 0xc4, 0x1b, 0x91, 0x38, 0xfb,
	0x20, 0x06, 0x02, 0xc4, 0x8f, 0xfe, 0xbf, 0x79, 0xd8, 0x58, 0x98, 0x82, 0x58, 0x8b, 0xe3, 0xa6,
	0xaa, 0xb0, 0x4f, 0xe6, 0x2e, 0x4a, 0x47, 0xe1, 0x2e, 0x4c, 0x8f, 0x3c, 0xae, 0xb9, 0xf3, 0xd4,
	0x45, 0xd0, 0x31, 0xec, 0xf0, 0xec, 0xad, 0x28, 0xd3, 0x69, 0x5b, 0x14, 0x97, 0xe6, 0x72, 0xc2,
	0x53, 0x29, 0x01, 0x6f, 0x85, 0x2b, 0x12, 0xf5, 0xe7, 0xd0, 0x60, 0x23, 0xa8, 0xe3, 0xbe, 0xb2,
	0xe5, 0x95, 0xcb, 0x00, 0xb9, 0xd1, 0x35, 0xea, 0x92, 0x5e, 0x02, 0xd1, 0xc7, 0x50, 0x53, 0x1c,
	0x78, 0x65, 0x2f, 0x66, 0x9a, 0x32, 0x16, 0x1c, 0x81, 0x1c, 0x2f, 0xf1, 0xba, 0x24, 0xe3, 0x75,
	0x5d, 0xca, 0x8d, 0xc9, 0x65, 0x2a, 0xb7, 0x74, 0x0b, 0xb9, 0x31, 0xb9, 0x5c, 0x92, 0xcb, 0x38,
	0x70, 0xb9, 0xe5, 0xb7, 0xca, 0x8d, 0xc9, 0x25, 0x97, 0xbb, 0x74, 0x4f, 0x95, 0x6b, 0xf7, 0xf4,
	0xf7, 0x50, 0xcb, 0xee, 0x66, 0xb7, 0x34, 0x9f, 0x59, 0xd8, 0x67, 0x3a, 0x5e, 0xe4, 0x7e, 0xef,
	0x78, 0xb1, 0x0d, 0x45, 0x71, 0x8f, 0x79, 0x7e, 0x8f, 0x62, 0x61, 0xfc, 0x44, 0x83, 0x9d, 0x79,
	0xe2, 0xe9, 0x90, 0xc4, 0x8d, 0xfd, 0x88, 0x7d, 0xa2, 0x07, 0x50, 0x4d, 0xd3, 0x9a, 0x72, 0xd1,
	0x14, 0x90, 0xc1, 0x12, 0x22, 0x13, 0xc4, 0x1c, 0x80, 0x0e, 0x60, 0x8b, 0xbc, 0x89, 0xfc, 0x98,
	0x24, 0xb6, 0x73, 0xce, 0xd2, 0xf5, 0xd9, 0x38, 0x74, 0x5f, 0x49, 0xc9, 0x9b, 0x12, 0xd5, 0x62,
	0x98, 0x43, 0x86, 0x60, 0x69, 0x54, 0x44, 0x2a, 0x0d, 0x55, 0x2e, 0x25, 0xcd, 0xc2, 0x5e, 0x9e,
	0xa5, 0x51, 0x8e, 0x18, 0x86, 0x52, 0x49, 0x62, 0xfc, 0x9b, 0x06, 0x8d, 0xa5, 0x54, 0x89, 0x3e,
	0x87, 0x07, 0x99, 0xd4, 0xea, 0xcd, 0x4f, 0xb1, 0xd0, 0xd3, 0xdf, 0xf3, 0x56, 0x1d, 0x54, 0xb4,
	0xf8, 0x0f, 0xa0, 0xca, 0xfa, 0x23, 0x87, 0x4e, 0xe3, 0xf4, 0x3c, 0x29, 0x80, 0x8f, 0xfb, 0xcc,
	0x09, 0xd4, 0xbc, 0x21, 0x57, 0xc6, 0x67, 0xb0, 0x39, 0x57, 0x45, 0x15, 0xde, 0x7d, 0x28, 0x8a,
	0xe4, 0xae, 0xbd, 0x25, 0xb9, 0x0b, 0x12, 0x63, 0x1f, 0x50, 0x96, 0x81, 0x8c, 0x83, 0x6d, 0xd5,
	0xa2, 0x89, 0x24, 0x24, 0xdb, 0xb2, 0x4f, 0x60, 0xf7, 0xc5, 0x94, 0xc4, 0xb3, 0xeb, 0x12, 0x17,
	0x2e, 0x43, 0x5b, 0xba, 0x0c, 0xc3, 0x84, 0x3b, 0xd7, 0xf6, 0x49, 0x41, 0x7f, 0x88, 0xaa, 0x31,
	0xec, 0x9c, 0xf8, 0xa3, 0x98, 0xb5, 0x92, 0x8b, 0x7d, 0xe1, 0xc7, 0xb0, 0xab, 0xc2, 0x7f, 0xc2,
	0x09, 0x98, 0xdd, 0xd3, 0x32, 0x5f, 0xc3, 0xdb, 0x12, 0x7b, 0xa2, 0x90, 0xb7, 0x6f, 0x2c, 0xfe,
	0x16, 0x76, 0x97, 0x65, 0x4a, 0xcd, 0x97, 0xeb, 0xbc, 0x76, 0xbd, 0xce, 0xff, 0x5c, 0x83, 0xed,
	0xe7, 0x7c, 0xf6, 0x3d, 0xf2, 0x13, 0x1a, 0xc6, 0xe9, 0xf8, 0x8f, 0xa0, 0xc0, 0x9f, 0xc2, 0x84,
	0x75, 0xf9, 0x37, 0xba, 0x0f, 0xd5, 0x33, 0x72, 0x1e, 0xc6, 0xc4, 0xa6, 0x89, 0xcc, 0x74, 0x15,
	0x01, 0x18, 0x26, 0x6c, 0x50, 0xf3, 0x29, 0x99, 0x24, 0x76, 0x44, 0x62, 0x3b, 0x72, 0x46, 0x22,
	0x86, 0x8a, 0xb8, 0xc6, 0xa1, 0x7d, 0x12, 0xf7, 0x9d, 0x11, 0x61, 0x4d, 0x04, 0x4d, 0xb8, 0x32,
	0x22, 0xe1, 0x16, 0x69, 0xc2, 0xca, 0x7e, 0x1d, 0x72, 0x34, 0xe1, 0x85, 0xba, 0x80, 0x73, 0x34,
	0x61, 0x55, 0x3c, 0x99, 0x38, 0xe3, 0x31, 0x6b, 0x2a, 0x64, 0x15, 0x2f, 0x71, 0x45, 0x36, 0x14,
	0x58, 0x54, 0xf1, 0xff, 0xd3, 0x40, 0xb7, 0x02, 0x22, 0x74, 0xf7, 0x5d, 0xf1, 0x8e, 0xa2, 0x43,
	0xde, 0x4b, 0xa8, 0xfa, 0xab, 0xc5, 0x4b, 0x28, 0xf3, 0x15, 0x1e, 0x21, 0xb2, 0xbe, 0x89, 0x05,
	0xa3, 0x73, 0x26, 0x62, 0xfe, 0xab, 0x62, 0xf6, 0x39, 0x0f, 0xff, 0x42, 0x26, 0xfc, 0x33, 0x8d,
	0x4f, 0x51, 0x6c, 0x17, 0x8d, 0xcf, 0x7d, 0xa8, 0xba, 0x31, 0x61, 0x43, 0x06, 0x4d, 0xb8, 0x76,
	0x79, 0x5c, 0x11, 0x80, 0xa1, 0x98, 0x86, 0x63, 0x97, 0x3f, 0xb3, 0x54, 0x31, 0xfb, 0x34, 0x0e,
	0x61, 0x67, 0xc9, 0xd0, 0xf2, 0x96, 0x9e, 0xb0, 0x89, 0x33, 0x1d, 0xb0, 0x76, 0x44, 0x35, 0x58,
	0x3a, 0x13, 0xe6, 0x24, 0xc6, 0xe7, 0x80, 0xd4, 0x1d, 0x8b, 0xc7, 0x6e, 0xee, 0x25, 0x99, 0xb2,
	0x54, 0x15, 0x65, 0xa9, 0x09, 0x65, 0x55, 0xa2, 0xc5, 0x89, 0xd5, 0xd2, 0xf8, 0x2f, 0x0d, 0x36,
	0xe4, 0xde, 0xd3, 0xc8, 0x63, 0xa7, 0xdb, 0x85, 0x92, 0xe8, 0x8c, 0x24, 0x03, 0xb9, 0x92, 0x57,
	0x92, 0x4b, 0xaf, 0xe4, 0x23, 0xa8, 0x2c, 0x3d, 0x14, 0xde, 0xc9, 0x3e, 0x14, 0x66, 0x14, 0xc2,
	0x29, 0x21, 0x73, 0x60, 0x9e, 0x65, 0xd3, 0x27, 0x51, 0xf1, 0x66, 0x53, 0xe3, 0x40, 0xf9, 0x1e,
	0x6a, 0xbc, 0x80, 0x2d, 0x51, 0x3d, 0xae, 0x29, 0x36, 0xe5, 0x5f, 0xea, 0x81, 0x57, 0xac, 0xae,
	0x3f, 0x34, 0xf0, 0xff, 0xd6, 0xe8, 0x58, 0xbd, 0x14, 0x53, 0x3a, 0x36, 0xbe, 0x87, 0xfa, 0xe2,
	0x1f, 0x04, 0xe8, 0x19, 0x94, 0xc5, 0x7e, 0x65, 0xe8, 0x66, 0xa6, 0x6c, 0x2d, 0x08, 0xc6, 0x8a,
	0x50, 0x3c, 0x60, 0x06, 0x1e, 0x51, 0x7d, 0x91, 0x5c, 0xed, 0xff, 0x4a, 0x83, 0xb2, 0x7c, 0xc3,
	0x46, 0x25, 0xc8, 0x59, 0x5f, 0xe9, 0x6b, 0x48, 0x87, 0xda, 0x69, 0xaf, 0x75, 0x3a, 0x3c, 0xb2,
	0x70, 0xf7, 0x3b, 0xb3, 0xa3, 0x6b, 0xa8, 0x01, 0xeb, 0xdd, 0xde, 0xcb, 0xd6, 0x71, 0xb7, 0x63,
	0x0f, 0xba, 0xcf, 0xf5, 0x1c, 0xda, 0x82, 0x46, 0xb7, 0xd7, 0xb6, 0x30, 0x36, 0xdb, 0x43, 0xbb,
	0x7d, 0x6c, 0xb5, 0xbf, 0xd2, 0xf3, 0xa8, 0x0e, 0xf0, 0x35, 0xb6, 0x7a, 0xcf, 0xed, 0xbe, 0x69,
	0x62, 0xbd, 0x20, 0x88, 0xe4, 0x2e, 0xf3, 0x85, 0xdd, 0x3b, 0x3d, 0xd1, 0x8b, 0x08, 0x41, 0xbd,
	0xdf, 0xfa, 0xd6, 0xc6, 0xd6, 0xe9, 0xd0, 0xb4, 0x8f, 0x2d, 0xab, 0xaf, 0x97, 0x18, 0x61, 0xcf,
	0x92, 0xa0, 0xa1, 0x65, 0x77, 0x06, 0x43, 0xbd, 0x8c, 0x76, 0x01, 0xf5, 0xac, 0xa1, 0x6d, 0xf6,
	0xac, 0xd3, 0xe7, 0x47, 0xf6, 0x61, 0xeb, 0xb8, 0xd5, 0x6b, 0x9b, 0x7a, 0x85, 0x11, 0x33, 0xfe,
	0x36, 0x43, 0x5a, 0xbd, 0xe3, 0x6e, 0xcf, 0xd4, 0xab, 0x4c, 0xf4, 0x49, 0x77, 0xd0, 0xb6, 0x4d,
	0x8c, 0x2d, 0xac, 0xc3, 0xfe, 0x7f, 0x6b, 0xb0, 0xb5, 0xe2, 0xc9, 0x04, 0x55, 0xa0, 0xd0, 0xb3,
	0x7a, 0xa6, 0xbe, 0xc6, 0x8e, 0xc4, 0xf4, 0x30, 0xbf, 0xe9, 0x77, 0x31, 0x3f, 0xa3, 0x0e, 0x35,
	0xae, 0x98, 0xf9, 0xa5, 0xd9, 0x1e, 0x9a, 0x1d, 0x3d, 0x87, 0x9a, 0xb0, 0x2d, 0x20, 0x03, 0xeb,
	0xf8, 0xa5, 0xd9, 0xb1, 0xad, 0x5e, 0xfb, 0xa8, 0xd5, 0xed, 0xe9, 0x79, 0x45, 0xdb, 0x6f, 0x75,
	0x3b, 0xf6, 0x49, 0xeb, 0x1b, 0xbd, 0xa0, 0x68, 0x3b, 0xe6, 0x60, 0x68, 0x9f, 0xf6, 0xb0, 0xd9,
	0x6a, 0x1f, 0xb5, 0x0e, 0x8f, 0x4d, 0xbd, 0xa8, 0x04, 0xbd, 0xb4, 0x4e, 0xdb, 0x47, 0x66, 0x47,
	0x2f, 0xed, 0x7f, 0x0f, 0x1b, 0x0b, 0xd3, 0x2e, 0xda, 0x81, 0xcd, 0xd3, 0x5e, 0xc7, 0xfc, 0xa2,
	0xdb, 0x63, 0x42, 0xfa, 0x66, 0xcf, 0x3e, 0xfc, 0x56, 0x5f, 0x43, 0x77, 0x61, 0x87, 0x2f, 0xda,
	0x47, 0xad, 0x5e, 0xcf, 0x3c, 0xb6, 0xfb, 0xd8, 0xea, 0x5b, 0x03, 0x13, 0xeb, 0xda, 0x35, 0x54,
	0xab, 0xdf, 0xc7, 0xd6, 0x4b, 0x13, 0xeb, 0xb9, 0xfd, 0x7f, 0xd7, 0x60, 0xf3, 0xda, 0xc4, 0x89,
	0x1e, 0xc1, 0x3b, 0x4b, 0x22, 0xd4, 0xd6, 0xc1, 0xb0, 0x35, 0x3c, 0x1d, 0xac, 0x10, 0x27, 0x79,
	0x32, 0xd3, 0xbc, 0x03, 0x77, 0x17, 0x50, 0xc3, 0x6f, 0xec, 0xc1, 0xe9, 0xe1, 0x49, 0x77, 0x28,
	0xec, 0x74, 0x1f, 0xee, 0x2c, 0xa2, 0xdb, 0x87, 0x5c, 0x86, 0xd9, 0xd1, 0xf3, 0xfb, 0x9f, 0x40,
	0x63, 0xa9, 0x59, 0x46, 0x35, 0xa8, 0xb0, 0xcb, 0xfb, 0xd2, 0xea, 0xf6, 0xf4, 0x35, 0x54, 0x85,
	0xe2, 0xb1, 0xd5, 0x6e, 0x1d, 0xeb, 0x1a, 0x02, 0x28, 0x61, 0xf3, 0xc4, 0x1a, 0x9a, 0x7a, 0xee,
	0xf0, 0x05, 0xdc, 0x0d, 0x08, 0x7d, 0x1d, 0xc6, 0xaf, 0x0e, 0x5c, 0xb6, 0xf7, 0x60, 0x14, 0x8a,
	0xdf, 0x49, 0x32, 0x3a, 0xac, 0x9d, 0x88, 0xff, 0x66, 0xfa, 0x2c, 0xf6, 0xfa, 0xda, 0x77, 0xef,
	0x8d, 0x7c, 0x7a, 0x31, 0x3d, 0x3b, 0x70, 0xc3, 0xc9, 0x53, 0x4e, 0xf5, 0x81, 0xdc, 0xfb, 0x74,
	0x14, 0x72, 0xc9, 0x4f, 0xe3, 0xc8, 0x3d, 0x2b, 0xf1, 0x50, 0xfd, 0xe8, 0x77, 0x01, 0x00, 0x00,
	0xff, 0xff, 0x91, 0x67, 0xe9, 0x9f, 0x04, 0x1f, 0x00, 0x00,
}
