github.com/decred/dcrlnd@v0.7.6/lnrpc/routerrpc/router.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // versions:
     3  // 	protoc-gen-go v1.31.0
     4  // 	protoc        v3.4.0
     5  // source: routerrpc/router.proto
     6  
     7  package routerrpc
     8  
     9  import (
    10  	context "context"
    11  	lnrpc "github.com/decred/dcrlnd/lnrpc"
    12  	grpc "google.golang.org/grpc"
    13  	codes "google.golang.org/grpc/codes"
    14  	status "google.golang.org/grpc/status"
    15  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    16  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    17  	reflect "reflect"
    18  	sync "sync"
    19  )
    20  
    21  const (
    22  	// Verify that this generated code is sufficiently up-to-date.
    23  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    24  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    25  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    26  )
    27  
    28  type FailureDetail int32
    29  
    30  const (
    31  	FailureDetail_UNKNOWN                 FailureDetail = 0
    32  	FailureDetail_NO_DETAIL               FailureDetail = 1
    33  	FailureDetail_ONION_DECODE            FailureDetail = 2
    34  	FailureDetail_LINK_NOT_ELIGIBLE       FailureDetail = 3
    35  	FailureDetail_ON_CHAIN_TIMEOUT        FailureDetail = 4
    36  	FailureDetail_HTLC_EXCEEDS_MAX        FailureDetail = 5
    37  	FailureDetail_INSUFFICIENT_BALANCE    FailureDetail = 6
    38  	FailureDetail_INCOMPLETE_FORWARD      FailureDetail = 7
    39  	FailureDetail_HTLC_ADD_FAILED         FailureDetail = 8
    40  	FailureDetail_FORWARDS_DISABLED       FailureDetail = 9
    41  	FailureDetail_INVOICE_CANCELED        FailureDetail = 10
    42  	FailureDetail_INVOICE_UNDERPAID       FailureDetail = 11
    43  	FailureDetail_INVOICE_EXPIRY_TOO_SOON FailureDetail = 12
    44  	FailureDetail_INVOICE_NOT_OPEN        FailureDetail = 13
    45  	FailureDetail_MPP_INVOICE_TIMEOUT     FailureDetail = 14
    46  	FailureDetail_ADDRESS_MISMATCH        FailureDetail = 15
    47  	FailureDetail_SET_TOTAL_MISMATCH      FailureDetail = 16
    48  	FailureDetail_SET_TOTAL_TOO_LOW       FailureDetail = 17
    49  	FailureDetail_SET_OVERPAID            FailureDetail = 18
    50  	FailureDetail_UNKNOWN_INVOICE         FailureDetail = 19
    51  	FailureDetail_INVALID_KEYSEND         FailureDetail = 20
    52  	FailureDetail_MPP_IN_PROGRESS         FailureDetail = 21
    53  	FailureDetail_CIRCULAR_ROUTE          FailureDetail = 22
    54  )
    55  
    56  // Enum value maps for FailureDetail.
    57  var (
    58  	FailureDetail_name = map[int32]string{
    59  		0:  "UNKNOWN",
    60  		1:  "NO_DETAIL",
    61  		2:  "ONION_DECODE",
    62  		3:  "LINK_NOT_ELIGIBLE",
    63  		4:  "ON_CHAIN_TIMEOUT",
    64  		5:  "HTLC_EXCEEDS_MAX",
    65  		6:  "INSUFFICIENT_BALANCE",
    66  		7:  "INCOMPLETE_FORWARD",
    67  		8:  "HTLC_ADD_FAILED",
    68  		9:  "FORWARDS_DISABLED",
    69  		10: "INVOICE_CANCELED",
    70  		11: "INVOICE_UNDERPAID",
    71  		12: "INVOICE_EXPIRY_TOO_SOON",
    72  		13: "INVOICE_NOT_OPEN",
    73  		14: "MPP_INVOICE_TIMEOUT",
    74  		15: "ADDRESS_MISMATCH",
    75  		16: "SET_TOTAL_MISMATCH",
    76  		17: "SET_TOTAL_TOO_LOW",
    77  		18: "SET_OVERPAID",
    78  		19: "UNKNOWN_INVOICE",
    79  		20: "INVALID_KEYSEND",
    80  		21: "MPP_IN_PROGRESS",
    81  		22: "CIRCULAR_ROUTE",
    82  	}
    83  	FailureDetail_value = map[string]int32{
    84  		"UNKNOWN":                 0,
    85  		"NO_DETAIL":               1,
    86  		"ONION_DECODE":            2,
    87  		"LINK_NOT_ELIGIBLE":       3,
    88  		"ON_CHAIN_TIMEOUT":        4,
    89  		"HTLC_EXCEEDS_MAX":        5,
    90  		"INSUFFICIENT_BALANCE":    6,
    91  		"INCOMPLETE_FORWARD":      7,
    92  		"HTLC_ADD_FAILED":         8,
    93  		"FORWARDS_DISABLED":       9,
    94  		"INVOICE_CANCELED":        10,
    95  		"INVOICE_UNDERPAID":       11,
    96  		"INVOICE_EXPIRY_TOO_SOON": 12,
    97  		"INVOICE_NOT_OPEN":        13,
    98  		"MPP_INVOICE_TIMEOUT":     14,
    99  		"ADDRESS_MISMATCH":        15,
   100  		"SET_TOTAL_MISMATCH":      16,
   101  		"SET_TOTAL_TOO_LOW":       17,
   102  		"SET_OVERPAID":            18,
   103  		"UNKNOWN_INVOICE":         19,
   104  		"INVALID_KEYSEND":         20,
   105  		"MPP_IN_PROGRESS":         21,
   106  		"CIRCULAR_ROUTE":          22,
   107  	}
   108  )
   109  
   110  func (x FailureDetail) Enum() *FailureDetail {
   111  	p := new(FailureDetail)
   112  	*p = x
   113  	return p
   114  }
   115  
   116  func (x FailureDetail) String() string {
   117  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   118  }
   119  
   120  func (FailureDetail) Descriptor() protoreflect.EnumDescriptor {
   121  	return file_routerrpc_router_proto_enumTypes[0].Descriptor()
   122  }
   123  
   124  func (FailureDetail) Type() protoreflect.EnumType {
   125  	return &file_routerrpc_router_proto_enumTypes[0]
   126  }
   127  
   128  func (x FailureDetail) Number() protoreflect.EnumNumber {
   129  	return protoreflect.EnumNumber(x)
   130  }
   131  
   132  // Deprecated: Use FailureDetail.Descriptor instead.
   133  func (FailureDetail) EnumDescriptor() ([]byte, []int) {
   134  	return file_routerrpc_router_proto_rawDescGZIP(), []int{0}
   135  }
   136  
   137  type PaymentState int32
   138  
   139  const (
   140  	// Payment is still in flight.
   141  	PaymentState_IN_FLIGHT PaymentState = 0
   142  	// Payment completed successfully.
   143  	PaymentState_SUCCEEDED PaymentState = 1
   144  	// There are more routes to try, but the payment timeout was exceeded.
   145  	PaymentState_FAILED_TIMEOUT PaymentState = 2
   146  	// All possible routes were tried and failed permanently. Or were no
   147  	// routes to the destination at all.
   148  	PaymentState_FAILED_NO_ROUTE PaymentState = 3
   149  	// A non-recoverable error has occured.
   150  	PaymentState_FAILED_ERROR PaymentState = 4
   151  	// Payment details incorrect (unknown hash, invalid amt or
   152  	// invalid final cltv delta)
   153  	PaymentState_FAILED_INCORRECT_PAYMENT_DETAILS PaymentState = 5
   154  	// Insufficient local balance.
   155  	PaymentState_FAILED_INSUFFICIENT_BALANCE PaymentState = 6
   156  )
   157  
   158  // Enum value maps for PaymentState.
   159  var (
   160  	PaymentState_name = map[int32]string{
   161  		0: "IN_FLIGHT",
   162  		1: "SUCCEEDED",
   163  		2: "FAILED_TIMEOUT",
   164  		3: "FAILED_NO_ROUTE",
   165  		4: "FAILED_ERROR",
   166  		5: "FAILED_INCORRECT_PAYMENT_DETAILS",
   167  		6: "FAILED_INSUFFICIENT_BALANCE",
   168  	}
   169  	PaymentState_value = map[string]int32{
   170  		"IN_FLIGHT":                        0,
   171  		"SUCCEEDED":                        1,
   172  		"FAILED_TIMEOUT":                   2,
   173  		"FAILED_NO_ROUTE":                  3,
   174  		"FAILED_ERROR":                     4,
   175  		"FAILED_INCORRECT_PAYMENT_DETAILS": 5,
   176  		"FAILED_INSUFFICIENT_BALANCE":      6,
   177  	}
   178  )
   179  
   180  func (x PaymentState) Enum() *PaymentState {
   181  	p := new(PaymentState)
   182  	*p = x
   183  	return p
   184  }
   185  
   186  func (x PaymentState) String() string {
   187  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   188  }
   189  
   190  func (PaymentState) Descriptor() protoreflect.EnumDescriptor {
   191  	return file_routerrpc_router_proto_enumTypes[1].Descriptor()
   192  }
   193  
   194  func (PaymentState) Type() protoreflect.EnumType {
   195  	return &file_routerrpc_router_proto_enumTypes[1]
   196  }
   197  
   198  func (x PaymentState) Number() protoreflect.EnumNumber {
   199  	return protoreflect.EnumNumber(x)
   200  }
   201  
   202  // Deprecated: Use PaymentState.Descriptor instead.
   203  func (PaymentState) EnumDescriptor() ([]byte, []int) {
   204  	return file_routerrpc_router_proto_rawDescGZIP(), []int{1}
   205  }
   206  
   207  type ResolveHoldForwardAction int32
   208  
   209  const (
   210  	ResolveHoldForwardAction_SETTLE ResolveHoldForwardAction = 0
   211  	ResolveHoldForwardAction_FAIL   ResolveHoldForwardAction = 1
   212  	ResolveHoldForwardAction_RESUME ResolveHoldForwardAction = 2
   213  )
   214  
   215  // Enum value maps for ResolveHoldForwardAction.
   216  var (
   217  	ResolveHoldForwardAction_name = map[int32]string{
   218  		0: "SETTLE",
   219  		1: "FAIL",
   220  		2: "RESUME",
   221  	}
   222  	ResolveHoldForwardAction_value = map[string]int32{
   223  		"SETTLE": 0,
   224  		"FAIL":   1,
   225  		"RESUME": 2,
   226  	}
   227  )
   228  
   229  func (x ResolveHoldForwardAction) Enum() *ResolveHoldForwardAction {
   230  	p := new(ResolveHoldForwardAction)
   231  	*p = x
   232  	return p
   233  }
   234  
   235  func (x ResolveHoldForwardAction) String() string {
   236  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   237  }
   238  
   239  func (ResolveHoldForwardAction) Descriptor() protoreflect.EnumDescriptor {
   240  	return file_routerrpc_router_proto_enumTypes[2].Descriptor()
   241  }
   242  
   243  func (ResolveHoldForwardAction) Type() protoreflect.EnumType {
   244  	return &file_routerrpc_router_proto_enumTypes[2]
   245  }
   246  
   247  func (x ResolveHoldForwardAction) Number() protoreflect.EnumNumber {
   248  	return protoreflect.EnumNumber(x)
   249  }
   250  
   251  // Deprecated: Use ResolveHoldForwardAction.Descriptor instead.
   252  func (ResolveHoldForwardAction) EnumDescriptor() ([]byte, []int) {
   253  	return file_routerrpc_router_proto_rawDescGZIP(), []int{2}
   254  }
   255  
   256  type ChanStatusAction int32
   257  
   258  const (
   259  	ChanStatusAction_ENABLE  ChanStatusAction = 0
   260  	ChanStatusAction_DISABLE ChanStatusAction = 1
   261  	ChanStatusAction_AUTO    ChanStatusAction = 2
   262  )
   263  
   264  // Enum value maps for ChanStatusAction.
   265  var (
   266  	ChanStatusAction_name = map[int32]string{
   267  		0: "ENABLE",
   268  		1: "DISABLE",
   269  		2: "AUTO",
   270  	}
   271  	ChanStatusAction_value = map[string]int32{
   272  		"ENABLE":  0,
   273  		"DISABLE": 1,
   274  		"AUTO":    2,
   275  	}
   276  )
   277  
   278  func (x ChanStatusAction) Enum() *ChanStatusAction {
   279  	p := new(ChanStatusAction)
   280  	*p = x
   281  	return p
   282  }
   283  
   284  func (x ChanStatusAction) String() string {
   285  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   286  }
   287  
   288  func (ChanStatusAction) Descriptor() protoreflect.EnumDescriptor {
   289  	return file_routerrpc_router_proto_enumTypes[3].Descriptor()
   290  }
   291  
   292  func (ChanStatusAction) Type() protoreflect.EnumType {
   293  	return &file_routerrpc_router_proto_enumTypes[3]
   294  }
   295  
   296  func (x ChanStatusAction) Number() protoreflect.EnumNumber {
   297  	return protoreflect.EnumNumber(x)
   298  }
   299  
   300  // Deprecated: Use ChanStatusAction.Descriptor instead.
   301  func (ChanStatusAction) EnumDescriptor() ([]byte, []int) {
   302  	return file_routerrpc_router_proto_rawDescGZIP(), []int{3}
   303  }
   304  
   305  type HtlcEvent_EventType int32
   306  
   307  const (
   308  	HtlcEvent_UNKNOWN HtlcEvent_EventType = 0
   309  	HtlcEvent_SEND    HtlcEvent_EventType = 1
   310  	HtlcEvent_RECEIVE HtlcEvent_EventType = 2
   311  	HtlcEvent_FORWARD HtlcEvent_EventType = 3
   312  )
   313  
   314  // Enum value maps for HtlcEvent_EventType.
   315  var (
   316  	HtlcEvent_EventType_name = map[int32]string{
   317  		0: "UNKNOWN",
   318  		1: "SEND",
   319  		2: "RECEIVE",
   320  		3: "FORWARD",
   321  	}
   322  	HtlcEvent_EventType_value = map[string]int32{
   323  		"UNKNOWN": 0,
   324  		"SEND":    1,
   325  		"RECEIVE": 2,
   326  		"FORWARD": 3,
   327  	}
   328  )
   329  
   330  func (x HtlcEvent_EventType) Enum() *HtlcEvent_EventType {
   331  	p := new(HtlcEvent_EventType)
   332  	*p = x
   333  	return p
   334  }
   335  
   336  func (x HtlcEvent_EventType) String() string {
   337  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   338  }
   339  
   340  func (HtlcEvent_EventType) Descriptor() protoreflect.EnumDescriptor {
   341  	return file_routerrpc_router_proto_enumTypes[4].Descriptor()
   342  }
   343  
   344  func (HtlcEvent_EventType) Type() protoreflect.EnumType {
   345  	return &file_routerrpc_router_proto_enumTypes[4]
   346  }
   347  
   348  func (x HtlcEvent_EventType) Number() protoreflect.EnumNumber {
   349  	return protoreflect.EnumNumber(x)
   350  }
   351  
   352  // Deprecated: Use HtlcEvent_EventType.Descriptor instead.
   353  func (HtlcEvent_EventType) EnumDescriptor() ([]byte, []int) {
   354  	return file_routerrpc_router_proto_rawDescGZIP(), []int{24, 0}
   355  }
   356  
   357  type SendPaymentRequest struct {
   358  	state         protoimpl.MessageState
   359  	sizeCache     protoimpl.SizeCache
   360  	unknownFields protoimpl.UnknownFields
   361  
   362  	// The identity pubkey of the payment recipient
   363  	Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
   364  	// Number of atoms to send.
   365  	//
   366  	// The fields amt and amt_m_atoms are mutually exclusive.
   367  	Amt int64 `protobuf:"varint,2,opt,name=amt,proto3" json:"amt,omitempty"`
   368  	// Number of milliatoms to send.
   369  	//
   370  	// The fields amt and amt_m_atoms are mutually exclusive.
   371  	AmtMAtoms int64 `protobuf:"varint,12,opt,name=amt_m_atoms,json=amtMAtoms,proto3" json:"amt_m_atoms,omitempty"`
   372  	// The hash to use within the payment's HTLC
   373  	PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
   374  	// The CLTV delta from the current height that should be used to set the
   375  	// timelock for the final hop.
   376  	FinalCltvDelta int32 `protobuf:"varint,4,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
   377  	// An optional payment addr to be included within the last hop of the route.
   378  	PaymentAddr []byte `protobuf:"bytes,20,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,omitempty"`
   379  	// A bare-bones invoice for a payment within the Lightning Network.  With the
   380  	// details of the invoice, the sender has all the data necessary to send a
   381  	// payment to the recipient. The amount in the payment request may be zero. In
   382  	// that case it is required to set the amt field as well. If no payment request
   383  	// is specified, the following fields are required: dest, amt and payment_hash.
   384  	PaymentRequest string `protobuf:"bytes,5,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"`
   385  	// An upper limit on the amount of time we should spend when attempting to
   386  	// fulfill the payment. This is expressed in seconds. If we cannot make a
   387  	// successful payment within this time frame, an error will be returned.
   388  	// This field must be non-zero.
   389  	TimeoutSeconds int32 `protobuf:"varint,6,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"`
   390  	// The maximum number of atoms that will be paid as a fee of the payment.
   391  	// If this field is left to the default value of 0, only zero-fee routes will
   392  	// be considered. This usually means single hop routes connecting directly to
   393  	// the destination. To send the payment without a fee limit, use max int here.
   394  	//
   395  	// The fields fee_limit_sat and fee_limit_msat are mutually exclusive.
   396  	FeeLimitAtoms int64 `protobuf:"varint,7,opt,name=fee_limit_atoms,json=feeLimitAtoms,proto3" json:"fee_limit_atoms,omitempty"`
   397  	// The maximum number of milliatoms that will be paid as a fee of the
   398  	// payment. If this field is left to the default value of 0, only zero-fee
   399  	// routes will be considered. This usually means single hop routes connecting
   400  	// directly to the destination. To send the payment without a fee limit, use
   401  	// max int here.
   402  	//
   403  	// The fields fee_limit_atoms and fee_limit_m_atoms are mutually exclusive.
   404  	FeeLimitMAtoms int64 `protobuf:"varint,13,opt,name=fee_limit_m_atoms,json=feeLimitMAtoms,proto3" json:"fee_limit_m_atoms,omitempty"`
   405  	// Deprecated, use outgoing_chan_ids. The channel id of the channel that must
   406  	// be taken to the first hop. If zero, any channel may be used (unless
   407  	// outgoing_chan_ids are set).
   408  	//
   409  	// Deprecated: Marked as deprecated in routerrpc/router.proto.
   410  	OutgoingChanId uint64 `protobuf:"varint,8,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
   411  	// The channel ids of the channels are allowed for the first hop. If empty,
   412  	// any channel may be used.
   413  	OutgoingChanIds []uint64 `protobuf:"varint,19,rep,packed,name=outgoing_chan_ids,json=outgoingChanIds,proto3" json:"outgoing_chan_ids,omitempty"`
   414  	// The pubkey of the last hop of the route. If empty, any hop may be used.
   415  	LastHopPubkey []byte `protobuf:"bytes,14,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"`
   416  	// An optional maximum total time lock for the route. This should not exceed
   417  	// lnd's `--max-cltv-expiry` setting. If zero, then the value of
   418  	// `--max-cltv-expiry` is enforced.
   419  	CltvLimit int32 `protobuf:"varint,9,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,omitempty"`
   420  	// Optional route hints to reach the destination through private channels.
   421  	RouteHints []*lnrpc.RouteHint `protobuf:"bytes,10,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"`
   422  	// An optional field that can be used to pass an arbitrary set of TLV records
   423  	// to a peer which understands the new records. This can be used to pass
   424  	// application specific data during the payment attempt. Record types are
   425  	// required to be in the custom range >= 65536. When using REST, the values
   426  	// must be encoded as base64.
   427  	DestCustomRecords map[uint64][]byte `protobuf:"bytes,11,rep,name=dest_custom_records,json=destCustomRecords,proto3" json:"dest_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   428  	// If set, circular payments to self are permitted.
   429  	AllowSelfPayment bool `protobuf:"varint,15,opt,name=allow_self_payment,json=allowSelfPayment,proto3" json:"allow_self_payment,omitempty"`
   430  	// Features assumed to be supported by the final node. All transitive feature
   431  	// dependencies must also be set properly. For a given feature bit pair, either
   432  	// optional or remote may be set, but not both. If this field is nil or empty,
   433  	// the router will try to load destination features from the graph as a
   434  	// fallback.
   435  	DestFeatures []lnrpc.FeatureBit `protobuf:"varint,16,rep,packed,name=dest_features,json=destFeatures,proto3,enum=lnrpc.FeatureBit" json:"dest_features,omitempty"`
   436  	// The maximum number of partial payments that may be use to complete the full
   437  	// amount.
   438  	MaxParts uint32 `protobuf:"varint,17,opt,name=max_parts,json=maxParts,proto3" json:"max_parts,omitempty"`
   439  	// If set, only the final payment update is streamed back. Intermediate updates
   440  	// that show which htlcs are still in flight are suppressed.
   441  	NoInflightUpdates bool `protobuf:"varint,18,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"`
   442  	// The largest payment split that should be attempted when making a payment if
   443  	// splitting is necessary. Setting this value will effectively cause lnd to
   444  	// split more aggressively, vs only when it thinks it needs to. Note that this
   445  	// value is in milli-atoms.
   446  	MaxShardSizeMatoms uint64 `protobuf:"varint,21,opt,name=max_shard_size_matoms,json=maxShardSizeMatoms,proto3" json:"max_shard_size_matoms,omitempty"`
   447  	// If set, an AMP-payment will be attempted.
   448  	Amp bool `protobuf:"varint,22,opt,name=amp,proto3" json:"amp,omitempty"`
   449  }
   450  
   451  func (x *SendPaymentRequest) Reset() {
   452  	*x = SendPaymentRequest{}
   453  	if protoimpl.UnsafeEnabled {
   454  		mi := &file_routerrpc_router_proto_msgTypes[0]
   455  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   456  		ms.StoreMessageInfo(mi)
   457  	}
   458  }
   459  
   460  func (x *SendPaymentRequest) String() string {
   461  	return protoimpl.X.MessageStringOf(x)
   462  }
   463  
   464  func (*SendPaymentRequest) ProtoMessage() {}
   465  
   466  func (x *SendPaymentRequest) ProtoReflect() protoreflect.Message {
   467  	mi := &file_routerrpc_router_proto_msgTypes[0]
   468  	if protoimpl.UnsafeEnabled && x != nil {
   469  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   470  		if ms.LoadMessageInfo() == nil {
   471  			ms.StoreMessageInfo(mi)
   472  		}
   473  		return ms
   474  	}
   475  	return mi.MessageOf(x)
   476  }
   477  
   478  // Deprecated: Use SendPaymentRequest.ProtoReflect.Descriptor instead.
   479  func (*SendPaymentRequest) Descriptor() ([]byte, []int) {
   480  	return file_routerrpc_router_proto_rawDescGZIP(), []int{0}
   481  }
   482  
   483  func (x *SendPaymentRequest) GetDest() []byte {
   484  	if x != nil {
   485  		return x.Dest
   486  	}
   487  	return nil
   488  }
   489  
   490  func (x *SendPaymentRequest) GetAmt() int64 {
   491  	if x != nil {
   492  		return x.Amt
   493  	}
   494  	return 0
   495  }
   496  
   497  func (x *SendPaymentRequest) GetAmtMAtoms() int64 {
   498  	if x != nil {
   499  		return x.AmtMAtoms
   500  	}
   501  	return 0
   502  }
   503  
   504  func (x *SendPaymentRequest) GetPaymentHash() []byte {
   505  	if x != nil {
   506  		return x.PaymentHash
   507  	}
   508  	return nil
   509  }
   510  
   511  func (x *SendPaymentRequest) GetFinalCltvDelta() int32 {
   512  	if x != nil {
   513  		return x.FinalCltvDelta
   514  	}
   515  	return 0
   516  }
   517  
   518  func (x *SendPaymentRequest) GetPaymentAddr() []byte {
   519  	if x != nil {
   520  		return x.PaymentAddr
   521  	}
   522  	return nil
   523  }
   524  
   525  func (x *SendPaymentRequest) GetPaymentRequest() string {
   526  	if x != nil {
   527  		return x.PaymentRequest
   528  	}
   529  	return ""
   530  }
   531  
   532  func (x *SendPaymentRequest) GetTimeoutSeconds() int32 {
   533  	if x != nil {
   534  		return x.TimeoutSeconds
   535  	}
   536  	return 0
   537  }
   538  
   539  func (x *SendPaymentRequest) GetFeeLimitAtoms() int64 {
   540  	if x != nil {
   541  		return x.FeeLimitAtoms
   542  	}
   543  	return 0
   544  }
   545  
   546  func (x *SendPaymentRequest) GetFeeLimitMAtoms() int64 {
   547  	if x != nil {
   548  		return x.FeeLimitMAtoms
   549  	}
   550  	return 0
   551  }
   552  
   553  // Deprecated: Marked as deprecated in routerrpc/router.proto.
   554  func (x *SendPaymentRequest) GetOutgoingChanId() uint64 {
   555  	if x != nil {
   556  		return x.OutgoingChanId
   557  	}
   558  	return 0
   559  }
   560  
   561  func (x *SendPaymentRequest) GetOutgoingChanIds() []uint64 {
   562  	if x != nil {
   563  		return x.OutgoingChanIds
   564  	}
   565  	return nil
   566  }
   567  
   568  func (x *SendPaymentRequest) GetLastHopPubkey() []byte {
   569  	if x != nil {
   570  		return x.LastHopPubkey
   571  	}
   572  	return nil
   573  }
   574  
   575  func (x *SendPaymentRequest) GetCltvLimit() int32 {
   576  	if x != nil {
   577  		return x.CltvLimit
   578  	}
   579  	return 0
   580  }
   581  
   582  func (x *SendPaymentRequest) GetRouteHints() []*lnrpc.RouteHint {
   583  	if x != nil {
   584  		return x.RouteHints
   585  	}
   586  	return nil
   587  }
   588  
   589  func (x *SendPaymentRequest) GetDestCustomRecords() map[uint64][]byte {
   590  	if x != nil {
   591  		return x.DestCustomRecords
   592  	}
   593  	return nil
   594  }
   595  
   596  func (x *SendPaymentRequest) GetAllowSelfPayment() bool {
   597  	if x != nil {
   598  		return x.AllowSelfPayment
   599  	}
   600  	return false
   601  }
   602  
   603  func (x *SendPaymentRequest) GetDestFeatures() []lnrpc.FeatureBit {
   604  	if x != nil {
   605  		return x.DestFeatures
   606  	}
   607  	return nil
   608  }
   609  
   610  func (x *SendPaymentRequest) GetMaxParts() uint32 {
   611  	if x != nil {
   612  		return x.MaxParts
   613  	}
   614  	return 0
   615  }
   616  
   617  func (x *SendPaymentRequest) GetNoInflightUpdates() bool {
   618  	if x != nil {
   619  		return x.NoInflightUpdates
   620  	}
   621  	return false
   622  }
   623  
   624  func (x *SendPaymentRequest) GetMaxShardSizeMatoms() uint64 {
   625  	if x != nil {
   626  		return x.MaxShardSizeMatoms
   627  	}
   628  	return 0
   629  }
   630  
   631  func (x *SendPaymentRequest) GetAmp() bool {
   632  	if x != nil {
   633  		return x.Amp
   634  	}
   635  	return false
   636  }
   637  
   638  type TrackPaymentRequest struct {
   639  	state         protoimpl.MessageState
   640  	sizeCache     protoimpl.SizeCache
   641  	unknownFields protoimpl.UnknownFields
   642  
   643  	// The hash of the payment to look up.
   644  	PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
   645  	// If set, only the final payment update is streamed back. Intermediate updates
   646  	// that show which htlcs are still in flight are suppressed.
   647  	NoInflightUpdates bool `protobuf:"varint,2,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"`
   648  }
   649  
   650  func (x *TrackPaymentRequest) Reset() {
   651  	*x = TrackPaymentRequest{}
   652  	if protoimpl.UnsafeEnabled {
   653  		mi := &file_routerrpc_router_proto_msgTypes[1]
   654  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   655  		ms.StoreMessageInfo(mi)
   656  	}
   657  }
   658  
   659  func (x *TrackPaymentRequest) String() string {
   660  	return protoimpl.X.MessageStringOf(x)
   661  }
   662  
   663  func (*TrackPaymentRequest) ProtoMessage() {}
   664  
   665  func (x *TrackPaymentRequest) ProtoReflect() protoreflect.Message {
   666  	mi := &file_routerrpc_router_proto_msgTypes[1]
   667  	if protoimpl.UnsafeEnabled && x != nil {
   668  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   669  		if ms.LoadMessageInfo() == nil {
   670  			ms.StoreMessageInfo(mi)
   671  		}
   672  		return ms
   673  	}
   674  	return mi.MessageOf(x)
   675  }
   676  
   677  // Deprecated: Use TrackPaymentRequest.ProtoReflect.Descriptor instead.
   678  func (*TrackPaymentRequest) Descriptor() ([]byte, []int) {
   679  	return file_routerrpc_router_proto_rawDescGZIP(), []int{1}
   680  }
   681  
   682  func (x *TrackPaymentRequest) GetPaymentHash() []byte {
   683  	if x != nil {
   684  		return x.PaymentHash
   685  	}
   686  	return nil
   687  }
   688  
   689  func (x *TrackPaymentRequest) GetNoInflightUpdates() bool {
   690  	if x != nil {
   691  		return x.NoInflightUpdates
   692  	}
   693  	return false
   694  }
   695  
   696  type RouteFeeRequest struct {
   697  	state         protoimpl.MessageState
   698  	sizeCache     protoimpl.SizeCache
   699  	unknownFields protoimpl.UnknownFields
   700  
   701  	// The destination once wishes to obtain a routing fee quote to.
   702  	Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
   703  	// The amount one wishes to send to the target destination.
   704  	AmtAtoms int64 `protobuf:"varint,2,opt,name=amt_atoms,json=amtAtoms,proto3" json:"amt_atoms,omitempty"`
   705  }
   706  
   707  func (x *RouteFeeRequest) Reset() {
   708  	*x = RouteFeeRequest{}
   709  	if protoimpl.UnsafeEnabled {
   710  		mi := &file_routerrpc_router_proto_msgTypes[2]
   711  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   712  		ms.StoreMessageInfo(mi)
   713  	}
   714  }
   715  
   716  func (x *RouteFeeRequest) String() string {
   717  	return protoimpl.X.MessageStringOf(x)
   718  }
   719  
   720  func (*RouteFeeRequest) ProtoMessage() {}
   721  
   722  func (x *RouteFeeRequest) ProtoReflect() protoreflect.Message {
   723  	mi := &file_routerrpc_router_proto_msgTypes[2]
   724  	if protoimpl.UnsafeEnabled && x != nil {
   725  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   726  		if ms.LoadMessageInfo() == nil {
   727  			ms.StoreMessageInfo(mi)
   728  		}
   729  		return ms
   730  	}
   731  	return mi.MessageOf(x)
   732  }
   733  
   734  // Deprecated: Use RouteFeeRequest.ProtoReflect.Descriptor instead.
   735  func (*RouteFeeRequest) Descriptor() ([]byte, []int) {
   736  	return file_routerrpc_router_proto_rawDescGZIP(), []int{2}
   737  }
   738  
   739  func (x *RouteFeeRequest) GetDest() []byte {
   740  	if x != nil {
   741  		return x.Dest
   742  	}
   743  	return nil
   744  }
   745  
   746  func (x *RouteFeeRequest) GetAmtAtoms() int64 {
   747  	if x != nil {
   748  		return x.AmtAtoms
   749  	}
   750  	return 0
   751  }
   752  
   753  type RouteFeeResponse struct {
   754  	state         protoimpl.MessageState
   755  	sizeCache     protoimpl.SizeCache
   756  	unknownFields protoimpl.UnknownFields
   757  
   758  	// A lower bound of the estimated fee to the target destination within the
   759  	// network, expressed in milli-satoshis.
   760  	RoutingFeeMatoms int64 `protobuf:"varint,1,opt,name=routing_fee_matoms,json=routingFeeMatoms,proto3" json:"routing_fee_matoms,omitempty"`
   761  	// An estimate of the worst case time delay that can occur. Note that callers
   762  	// will still need to factor in the final CLTV delta of the last hop into this
   763  	// value.
   764  	TimeLockDelay int64 `protobuf:"varint,2,opt,name=time_lock_delay,json=timeLockDelay,proto3" json:"time_lock_delay,omitempty"`
   765  }
   766  
   767  func (x *RouteFeeResponse) Reset() {
   768  	*x = RouteFeeResponse{}
   769  	if protoimpl.UnsafeEnabled {
   770  		mi := &file_routerrpc_router_proto_msgTypes[3]
   771  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   772  		ms.StoreMessageInfo(mi)
   773  	}
   774  }
   775  
   776  func (x *RouteFeeResponse) String() string {
   777  	return protoimpl.X.MessageStringOf(x)
   778  }
   779  
   780  func (*RouteFeeResponse) ProtoMessage() {}
   781  
   782  func (x *RouteFeeResponse) ProtoReflect() protoreflect.Message {
   783  	mi := &file_routerrpc_router_proto_msgTypes[3]
   784  	if protoimpl.UnsafeEnabled && x != nil {
   785  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   786  		if ms.LoadMessageInfo() == nil {
   787  			ms.StoreMessageInfo(mi)
   788  		}
   789  		return ms
   790  	}
   791  	return mi.MessageOf(x)
   792  }
   793  
   794  // Deprecated: Use RouteFeeResponse.ProtoReflect.Descriptor instead.
   795  func (*RouteFeeResponse) Descriptor() ([]byte, []int) {
   796  	return file_routerrpc_router_proto_rawDescGZIP(), []int{3}
   797  }
   798  
   799  func (x *RouteFeeResponse) GetRoutingFeeMatoms() int64 {
   800  	if x != nil {
   801  		return x.RoutingFeeMatoms
   802  	}
   803  	return 0
   804  }
   805  
   806  func (x *RouteFeeResponse) GetTimeLockDelay() int64 {
   807  	if x != nil {
   808  		return x.TimeLockDelay
   809  	}
   810  	return 0
   811  }
   812  
   813  type SendToRouteRequest struct {
   814  	state         protoimpl.MessageState
   815  	sizeCache     protoimpl.SizeCache
   816  	unknownFields protoimpl.UnknownFields
   817  
   818  	// The payment hash to use for the HTLC.
   819  	PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
   820  	// Route that should be used to attempt to complete the payment.
   821  	Route *lnrpc.Route `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
   822  }
   823  
   824  func (x *SendToRouteRequest) Reset() {
   825  	*x = SendToRouteRequest{}
   826  	if protoimpl.UnsafeEnabled {
   827  		mi := &file_routerrpc_router_proto_msgTypes[4]
   828  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   829  		ms.StoreMessageInfo(mi)
   830  	}
   831  }
   832  
   833  func (x *SendToRouteRequest) String() string {
   834  	return protoimpl.X.MessageStringOf(x)
   835  }
   836  
   837  func (*SendToRouteRequest) ProtoMessage() {}
   838  
   839  func (x *SendToRouteRequest) ProtoReflect() protoreflect.Message {
   840  	mi := &file_routerrpc_router_proto_msgTypes[4]
   841  	if protoimpl.UnsafeEnabled && x != nil {
   842  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   843  		if ms.LoadMessageInfo() == nil {
   844  			ms.StoreMessageInfo(mi)
   845  		}
   846  		return ms
   847  	}
   848  	return mi.MessageOf(x)
   849  }
   850  
   851  // Deprecated: Use SendToRouteRequest.ProtoReflect.Descriptor instead.
   852  func (*SendToRouteRequest) Descriptor() ([]byte, []int) {
   853  	return file_routerrpc_router_proto_rawDescGZIP(), []int{4}
   854  }
   855  
   856  func (x *SendToRouteRequest) GetPaymentHash() []byte {
   857  	if x != nil {
   858  		return x.PaymentHash
   859  	}
   860  	return nil
   861  }
   862  
   863  func (x *SendToRouteRequest) GetRoute() *lnrpc.Route {
   864  	if x != nil {
   865  		return x.Route
   866  	}
   867  	return nil
   868  }
   869  
   870  type SendToRouteResponse struct {
   871  	state         protoimpl.MessageState
   872  	sizeCache     protoimpl.SizeCache
   873  	unknownFields protoimpl.UnknownFields
   874  
   875  	// The preimage obtained by making the payment.
   876  	Preimage []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"`
   877  	// The failure message in case the payment failed.
   878  	Failure *lnrpc.Failure `protobuf:"bytes,2,opt,name=failure,proto3" json:"failure,omitempty"`
   879  }
   880  
   881  func (x *SendToRouteResponse) Reset() {
   882  	*x = SendToRouteResponse{}
   883  	if protoimpl.UnsafeEnabled {
   884  		mi := &file_routerrpc_router_proto_msgTypes[5]
   885  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   886  		ms.StoreMessageInfo(mi)
   887  	}
   888  }
   889  
   890  func (x *SendToRouteResponse) String() string {
   891  	return protoimpl.X.MessageStringOf(x)
   892  }
   893  
   894  func (*SendToRouteResponse) ProtoMessage() {}
   895  
   896  func (x *SendToRouteResponse) ProtoReflect() protoreflect.Message {
   897  	mi := &file_routerrpc_router_proto_msgTypes[5]
   898  	if protoimpl.UnsafeEnabled && x != nil {
   899  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   900  		if ms.LoadMessageInfo() == nil {
   901  			ms.StoreMessageInfo(mi)
   902  		}
   903  		return ms
   904  	}
   905  	return mi.MessageOf(x)
   906  }
   907  
   908  // Deprecated: Use SendToRouteResponse.ProtoReflect.Descriptor instead.
   909  func (*SendToRouteResponse) Descriptor() ([]byte, []int) {
   910  	return file_routerrpc_router_proto_rawDescGZIP(), []int{5}
   911  }
   912  
   913  func (x *SendToRouteResponse) GetPreimage() []byte {
   914  	if x != nil {
   915  		return x.Preimage
   916  	}
   917  	return nil
   918  }
   919  
   920  func (x *SendToRouteResponse) GetFailure() *lnrpc.Failure {
   921  	if x != nil {
   922  		return x.Failure
   923  	}
   924  	return nil
   925  }
   926  
   927  type ResetMissionControlRequest struct {
   928  	state         protoimpl.MessageState
   929  	sizeCache     protoimpl.SizeCache
   930  	unknownFields protoimpl.UnknownFields
   931  }
   932  
   933  func (x *ResetMissionControlRequest) Reset() {
   934  	*x = ResetMissionControlRequest{}
   935  	if protoimpl.UnsafeEnabled {
   936  		mi := &file_routerrpc_router_proto_msgTypes[6]
   937  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   938  		ms.StoreMessageInfo(mi)
   939  	}
   940  }
   941  
   942  func (x *ResetMissionControlRequest) String() string {
   943  	return protoimpl.X.MessageStringOf(x)
   944  }
   945  
   946  func (*ResetMissionControlRequest) ProtoMessage() {}
   947  
   948  func (x *ResetMissionControlRequest) ProtoReflect() protoreflect.Message {
   949  	mi := &file_routerrpc_router_proto_msgTypes[6]
   950  	if protoimpl.UnsafeEnabled && x != nil {
   951  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   952  		if ms.LoadMessageInfo() == nil {
   953  			ms.StoreMessageInfo(mi)
   954  		}
   955  		return ms
   956  	}
   957  	return mi.MessageOf(x)
   958  }
   959  
   960  // Deprecated: Use ResetMissionControlRequest.ProtoReflect.Descriptor instead.
   961  func (*ResetMissionControlRequest) Descriptor() ([]byte, []int) {
   962  	return file_routerrpc_router_proto_rawDescGZIP(), []int{6}
   963  }
   964  
   965  type ResetMissionControlResponse struct {
   966  	state         protoimpl.MessageState
   967  	sizeCache     protoimpl.SizeCache
   968  	unknownFields protoimpl.UnknownFields
   969  }
   970  
   971  func (x *ResetMissionControlResponse) Reset() {
   972  	*x = ResetMissionControlResponse{}
   973  	if protoimpl.UnsafeEnabled {
   974  		mi := &file_routerrpc_router_proto_msgTypes[7]
   975  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   976  		ms.StoreMessageInfo(mi)
   977  	}
   978  }
   979  
   980  func (x *ResetMissionControlResponse) String() string {
   981  	return protoimpl.X.MessageStringOf(x)
   982  }
   983  
   984  func (*ResetMissionControlResponse) ProtoMessage() {}
   985  
   986  func (x *ResetMissionControlResponse) ProtoReflect() protoreflect.Message {
   987  	mi := &file_routerrpc_router_proto_msgTypes[7]
   988  	if protoimpl.UnsafeEnabled && x != nil {
   989  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   990  		if ms.LoadMessageInfo() == nil {
   991  			ms.StoreMessageInfo(mi)
   992  		}
   993  		return ms
   994  	}
   995  	return mi.MessageOf(x)
   996  }
   997  
   998  // Deprecated: Use ResetMissionControlResponse.ProtoReflect.Descriptor instead.
   999  func (*ResetMissionControlResponse) Descriptor() ([]byte, []int) {
  1000  	return file_routerrpc_router_proto_rawDescGZIP(), []int{7}
  1001  }
  1002  
  1003  type QueryMissionControlRequest struct {
  1004  	state         protoimpl.MessageState
  1005  	sizeCache     protoimpl.SizeCache
  1006  	unknownFields protoimpl.UnknownFields
  1007  }
  1008  
  1009  func (x *QueryMissionControlRequest) Reset() {
  1010  	*x = QueryMissionControlRequest{}
  1011  	if protoimpl.UnsafeEnabled {
  1012  		mi := &file_routerrpc_router_proto_msgTypes[8]
  1013  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1014  		ms.StoreMessageInfo(mi)
  1015  	}
  1016  }
  1017  
  1018  func (x *QueryMissionControlRequest) String() string {
  1019  	return protoimpl.X.MessageStringOf(x)
  1020  }
  1021  
  1022  func (*QueryMissionControlRequest) ProtoMessage() {}
  1023  
  1024  func (x *QueryMissionControlRequest) ProtoReflect() protoreflect.Message {
  1025  	mi := &file_routerrpc_router_proto_msgTypes[8]
  1026  	if protoimpl.UnsafeEnabled && x != nil {
  1027  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1028  		if ms.LoadMessageInfo() == nil {
  1029  			ms.StoreMessageInfo(mi)
  1030  		}
  1031  		return ms
  1032  	}
  1033  	return mi.MessageOf(x)
  1034  }
  1035  
  1036  // Deprecated: Use QueryMissionControlRequest.ProtoReflect.Descriptor instead.
  1037  func (*QueryMissionControlRequest) Descriptor() ([]byte, []int) {
  1038  	return file_routerrpc_router_proto_rawDescGZIP(), []int{8}
  1039  }
  1040  
  1041  // QueryMissionControlResponse contains mission control state.
  1042  type QueryMissionControlResponse struct {
  1043  	state         protoimpl.MessageState
  1044  	sizeCache     protoimpl.SizeCache
  1045  	unknownFields protoimpl.UnknownFields
  1046  
  1047  	// Node pair-level mission control state.
  1048  	Pairs []*PairHistory `protobuf:"bytes,2,rep,name=pairs,proto3" json:"pairs,omitempty"`
  1049  }
  1050  
  1051  func (x *QueryMissionControlResponse) Reset() {
  1052  	*x = QueryMissionControlResponse{}
  1053  	if protoimpl.UnsafeEnabled {
  1054  		mi := &file_routerrpc_router_proto_msgTypes[9]
  1055  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1056  		ms.StoreMessageInfo(mi)
  1057  	}
  1058  }
  1059  
  1060  func (x *QueryMissionControlResponse) String() string {
  1061  	return protoimpl.X.MessageStringOf(x)
  1062  }
  1063  
  1064  func (*QueryMissionControlResponse) ProtoMessage() {}
  1065  
  1066  func (x *QueryMissionControlResponse) ProtoReflect() protoreflect.Message {
  1067  	mi := &file_routerrpc_router_proto_msgTypes[9]
  1068  	if protoimpl.UnsafeEnabled && x != nil {
  1069  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1070  		if ms.LoadMessageInfo() == nil {
  1071  			ms.StoreMessageInfo(mi)
  1072  		}
  1073  		return ms
  1074  	}
  1075  	return mi.MessageOf(x)
  1076  }
  1077  
  1078  // Deprecated: Use QueryMissionControlResponse.ProtoReflect.Descriptor instead.
  1079  func (*QueryMissionControlResponse) Descriptor() ([]byte, []int) {
  1080  	return file_routerrpc_router_proto_rawDescGZIP(), []int{9}
  1081  }
  1082  
  1083  func (x *QueryMissionControlResponse) GetPairs() []*PairHistory {
  1084  	if x != nil {
  1085  		return x.Pairs
  1086  	}
  1087  	return nil
  1088  }
  1089  
  1090  type XImportMissionControlRequest struct {
  1091  	state         protoimpl.MessageState
  1092  	sizeCache     protoimpl.SizeCache
  1093  	unknownFields protoimpl.UnknownFields
  1094  
  1095  	// Node pair-level mission control state to be imported.
  1096  	Pairs []*PairHistory `protobuf:"bytes,1,rep,name=pairs,proto3" json:"pairs,omitempty"`
  1097  	// Whether to force override MC pair history. Note that even with force
  1098  	// override the failure pair is imported before the success pair and both
  1099  	// still clamp existing failure/success amounts.
  1100  	Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
  1101  }
  1102  
  1103  func (x *XImportMissionControlRequest) Reset() {
  1104  	*x = XImportMissionControlRequest{}
  1105  	if protoimpl.UnsafeEnabled {
  1106  		mi := &file_routerrpc_router_proto_msgTypes[10]
  1107  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1108  		ms.StoreMessageInfo(mi)
  1109  	}
  1110  }
  1111  
  1112  func (x *XImportMissionControlRequest) String() string {
  1113  	return protoimpl.X.MessageStringOf(x)
  1114  }
  1115  
  1116  func (*XImportMissionControlRequest) ProtoMessage() {}
  1117  
  1118  func (x *XImportMissionControlRequest) ProtoReflect() protoreflect.Message {
  1119  	mi := &file_routerrpc_router_proto_msgTypes[10]
  1120  	if protoimpl.UnsafeEnabled && x != nil {
  1121  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1122  		if ms.LoadMessageInfo() == nil {
  1123  			ms.StoreMessageInfo(mi)
  1124  		}
  1125  		return ms
  1126  	}
  1127  	return mi.MessageOf(x)
  1128  }
  1129  
  1130  // Deprecated: Use XImportMissionControlRequest.ProtoReflect.Descriptor instead.
  1131  func (*XImportMissionControlRequest) Descriptor() ([]byte, []int) {
  1132  	return file_routerrpc_router_proto_rawDescGZIP(), []int{10}
  1133  }
  1134  
  1135  func (x *XImportMissionControlRequest) GetPairs() []*PairHistory {
  1136  	if x != nil {
  1137  		return x.Pairs
  1138  	}
  1139  	return nil
  1140  }
  1141  
  1142  func (x *XImportMissionControlRequest) GetForce() bool {
  1143  	if x != nil {
  1144  		return x.Force
  1145  	}
  1146  	return false
  1147  }
  1148  
  1149  type XImportMissionControlResponse struct {
  1150  	state         protoimpl.MessageState
  1151  	sizeCache     protoimpl.SizeCache
  1152  	unknownFields protoimpl.UnknownFields
  1153  }
  1154  
  1155  func (x *XImportMissionControlResponse) Reset() {
  1156  	*x = XImportMissionControlResponse{}
  1157  	if protoimpl.UnsafeEnabled {
  1158  		mi := &file_routerrpc_router_proto_msgTypes[11]
  1159  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1160  		ms.StoreMessageInfo(mi)
  1161  	}
  1162  }
  1163  
  1164  func (x *XImportMissionControlResponse) String() string {
  1165  	return protoimpl.X.MessageStringOf(x)
  1166  }
  1167  
  1168  func (*XImportMissionControlResponse) ProtoMessage() {}
  1169  
  1170  func (x *XImportMissionControlResponse) ProtoReflect() protoreflect.Message {
  1171  	mi := &file_routerrpc_router_proto_msgTypes[11]
  1172  	if protoimpl.UnsafeEnabled && x != nil {
  1173  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1174  		if ms.LoadMessageInfo() == nil {
  1175  			ms.StoreMessageInfo(mi)
  1176  		}
  1177  		return ms
  1178  	}
  1179  	return mi.MessageOf(x)
  1180  }
  1181  
  1182  // Deprecated: Use XImportMissionControlResponse.ProtoReflect.Descriptor instead.
  1183  func (*XImportMissionControlResponse) Descriptor() ([]byte, []int) {
  1184  	return file_routerrpc_router_proto_rawDescGZIP(), []int{11}
  1185  }
  1186  
  1187  // PairHistory contains the mission control state for a particular node pair.
  1188  type PairHistory struct {
  1189  	state         protoimpl.MessageState
  1190  	sizeCache     protoimpl.SizeCache
  1191  	unknownFields protoimpl.UnknownFields
  1192  
  1193  	// The source node pubkey of the pair.
  1194  	NodeFrom []byte `protobuf:"bytes,1,opt,name=node_from,json=nodeFrom,proto3" json:"node_from,omitempty"`
  1195  	// The destination node pubkey of the pair.
  1196  	NodeTo  []byte    `protobuf:"bytes,2,opt,name=node_to,json=nodeTo,proto3" json:"node_to,omitempty"`
  1197  	History *PairData `protobuf:"bytes,7,opt,name=history,proto3" json:"history,omitempty"`
  1198  }
  1199  
  1200  func (x *PairHistory) Reset() {
  1201  	*x = PairHistory{}
  1202  	if protoimpl.UnsafeEnabled {
  1203  		mi := &file_routerrpc_router_proto_msgTypes[12]
  1204  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1205  		ms.StoreMessageInfo(mi)
  1206  	}
  1207  }
  1208  
  1209  func (x *PairHistory) String() string {
  1210  	return protoimpl.X.MessageStringOf(x)
  1211  }
  1212  
  1213  func (*PairHistory) ProtoMessage() {}
  1214  
  1215  func (x *PairHistory) ProtoReflect() protoreflect.Message {
  1216  	mi := &file_routerrpc_router_proto_msgTypes[12]
  1217  	if protoimpl.UnsafeEnabled && x != nil {
  1218  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1219  		if ms.LoadMessageInfo() == nil {
  1220  			ms.StoreMessageInfo(mi)
  1221  		}
  1222  		return ms
  1223  	}
  1224  	return mi.MessageOf(x)
  1225  }
  1226  
  1227  // Deprecated: Use PairHistory.ProtoReflect.Descriptor instead.
  1228  func (*PairHistory) Descriptor() ([]byte, []int) {
  1229  	return file_routerrpc_router_proto_rawDescGZIP(), []int{12}
  1230  }
  1231  
  1232  func (x *PairHistory) GetNodeFrom() []byte {
  1233  	if x != nil {
  1234  		return x.NodeFrom
  1235  	}
  1236  	return nil
  1237  }
  1238  
  1239  func (x *PairHistory) GetNodeTo() []byte {
  1240  	if x != nil {
  1241  		return x.NodeTo
  1242  	}
  1243  	return nil
  1244  }
  1245  
  1246  func (x *PairHistory) GetHistory() *PairData {
  1247  	if x != nil {
  1248  		return x.History
  1249  	}
  1250  	return nil
  1251  }
  1252  
  1253  type PairData struct {
  1254  	state         protoimpl.MessageState
  1255  	sizeCache     protoimpl.SizeCache
  1256  	unknownFields protoimpl.UnknownFields
  1257  
  1258  	// Time of last failure.
  1259  	FailTime int64 `protobuf:"varint,1,opt,name=fail_time,json=failTime,proto3" json:"fail_time,omitempty"`
  1260  	// Lowest amount that failed to forward rounded to whole atoms. This may be
  1261  	// set to zero if the failure is independent of amount.
  1262  	FailAmtAtoms int64 `protobuf:"varint,2,opt,name=fail_amt_atoms,json=failAmtAtoms,proto3" json:"fail_amt_atoms,omitempty"`
  1263  	// Lowest amount that failed to forward in milliatoms. This may be
  1264  	// set to zero if the failure is independent of amount.
  1265  	FailAmtMAtoms int64 `protobuf:"varint,4,opt,name=fail_amt_m_atoms,json=failAmtMAtoms,proto3" json:"fail_amt_m_atoms,omitempty"`
  1266  	// Time of last success.
  1267  	SuccessTime int64 `protobuf:"varint,5,opt,name=success_time,json=successTime,proto3" json:"success_time,omitempty"`
  1268  	// Highest amount that we could successfully forward rounded to whole
  1269  	// atoms.
  1270  	SuccessAmtAtoms int64 `protobuf:"varint,6,opt,name=success_amt_atoms,json=successAmtAtoms,proto3" json:"success_amt_atoms,omitempty"`
  1271  	// Highest amount that we could successfully forward in milliatoms.
  1272  	SuccessAmtMAtoms int64 `protobuf:"varint,7,opt,name=success_amt_m_atoms,json=successAmtMAtoms,proto3" json:"success_amt_m_atoms,omitempty"`
  1273  }
  1274  
  1275  func (x *PairData) Reset() {
  1276  	*x = PairData{}
  1277  	if protoimpl.UnsafeEnabled {
  1278  		mi := &file_routerrpc_router_proto_msgTypes[13]
  1279  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1280  		ms.StoreMessageInfo(mi)
  1281  	}
  1282  }
  1283  
  1284  func (x *PairData) String() string {
  1285  	return protoimpl.X.MessageStringOf(x)
  1286  }
  1287  
  1288  func (*PairData) ProtoMessage() {}
  1289  
  1290  func (x *PairData) ProtoReflect() protoreflect.Message {
  1291  	mi := &file_routerrpc_router_proto_msgTypes[13]
  1292  	if protoimpl.UnsafeEnabled && x != nil {
  1293  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1294  		if ms.LoadMessageInfo() == nil {
  1295  			ms.StoreMessageInfo(mi)
  1296  		}
  1297  		return ms
  1298  	}
  1299  	return mi.MessageOf(x)
  1300  }
  1301  
  1302  // Deprecated: Use PairData.ProtoReflect.Descriptor instead.
  1303  func (*PairData) Descriptor() ([]byte, []int) {
  1304  	return file_routerrpc_router_proto_rawDescGZIP(), []int{13}
  1305  }
  1306  
  1307  func (x *PairData) GetFailTime() int64 {
  1308  	if x != nil {
  1309  		return x.FailTime
  1310  	}
  1311  	return 0
  1312  }
  1313  
  1314  func (x *PairData) GetFailAmtAtoms() int64 {
  1315  	if x != nil {
  1316  		return x.FailAmtAtoms
  1317  	}
  1318  	return 0
  1319  }
  1320  
  1321  func (x *PairData) GetFailAmtMAtoms() int64 {
  1322  	if x != nil {
  1323  		return x.FailAmtMAtoms
  1324  	}
  1325  	return 0
  1326  }
  1327  
  1328  func (x *PairData) GetSuccessTime() int64 {
  1329  	if x != nil {
  1330  		return x.SuccessTime
  1331  	}
  1332  	return 0
  1333  }
  1334  
  1335  func (x *PairData) GetSuccessAmtAtoms() int64 {
  1336  	if x != nil {
  1337  		return x.SuccessAmtAtoms
  1338  	}
  1339  	return 0
  1340  }
  1341  
  1342  func (x *PairData) GetSuccessAmtMAtoms() int64 {
  1343  	if x != nil {
  1344  		return x.SuccessAmtMAtoms
  1345  	}
  1346  	return 0
  1347  }
  1348  
  1349  type GetMissionControlConfigRequest struct {
  1350  	state         protoimpl.MessageState
  1351  	sizeCache     protoimpl.SizeCache
  1352  	unknownFields protoimpl.UnknownFields
  1353  }
  1354  
  1355  func (x *GetMissionControlConfigRequest) Reset() {
  1356  	*x = GetMissionControlConfigRequest{}
  1357  	if protoimpl.UnsafeEnabled {
  1358  		mi := &file_routerrpc_router_proto_msgTypes[14]
  1359  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1360  		ms.StoreMessageInfo(mi)
  1361  	}
  1362  }
  1363  
  1364  func (x *GetMissionControlConfigRequest) String() string {
  1365  	return protoimpl.X.MessageStringOf(x)
  1366  }
  1367  
  1368  func (*GetMissionControlConfigRequest) ProtoMessage() {}
  1369  
  1370  func (x *GetMissionControlConfigRequest) ProtoReflect() protoreflect.Message {
  1371  	mi := &file_routerrpc_router_proto_msgTypes[14]
  1372  	if protoimpl.UnsafeEnabled && x != nil {
  1373  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1374  		if ms.LoadMessageInfo() == nil {
  1375  			ms.StoreMessageInfo(mi)
  1376  		}
  1377  		return ms
  1378  	}
  1379  	return mi.MessageOf(x)
  1380  }
  1381  
  1382  // Deprecated: Use GetMissionControlConfigRequest.ProtoReflect.Descriptor instead.
  1383  func (*GetMissionControlConfigRequest) Descriptor() ([]byte, []int) {
  1384  	return file_routerrpc_router_proto_rawDescGZIP(), []int{14}
  1385  }
  1386  
  1387  type GetMissionControlConfigResponse struct {
  1388  	state         protoimpl.MessageState
  1389  	sizeCache     protoimpl.SizeCache
  1390  	unknownFields protoimpl.UnknownFields
  1391  
  1392  	// Mission control's currently active config.
  1393  	Config *MissionControlConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
  1394  }
  1395  
  1396  func (x *GetMissionControlConfigResponse) Reset() {
  1397  	*x = GetMissionControlConfigResponse{}
  1398  	if protoimpl.UnsafeEnabled {
  1399  		mi := &file_routerrpc_router_proto_msgTypes[15]
  1400  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1401  		ms.StoreMessageInfo(mi)
  1402  	}
  1403  }
  1404  
  1405  func (x *GetMissionControlConfigResponse) String() string {
  1406  	return protoimpl.X.MessageStringOf(x)
  1407  }
  1408  
  1409  func (*GetMissionControlConfigResponse) ProtoMessage() {}
  1410  
  1411  func (x *GetMissionControlConfigResponse) ProtoReflect() protoreflect.Message {
  1412  	mi := &file_routerrpc_router_proto_msgTypes[15]
  1413  	if protoimpl.UnsafeEnabled && x != nil {
  1414  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1415  		if ms.LoadMessageInfo() == nil {
  1416  			ms.StoreMessageInfo(mi)
  1417  		}
  1418  		return ms
  1419  	}
  1420  	return mi.MessageOf(x)
  1421  }
  1422  
  1423  // Deprecated: Use GetMissionControlConfigResponse.ProtoReflect.Descriptor instead.
  1424  func (*GetMissionControlConfigResponse) Descriptor() ([]byte, []int) {
  1425  	return file_routerrpc_router_proto_rawDescGZIP(), []int{15}
  1426  }
  1427  
  1428  func (x *GetMissionControlConfigResponse) GetConfig() *MissionControlConfig {
  1429  	if x != nil {
  1430  		return x.Config
  1431  	}
  1432  	return nil
  1433  }
  1434  
  1435  type SetMissionControlConfigRequest struct {
  1436  	state         protoimpl.MessageState
  1437  	sizeCache     protoimpl.SizeCache
  1438  	unknownFields protoimpl.UnknownFields
  1439  
  1440  	// The config to set for mission control. Note that all values *must* be set,
  1441  	// because the full config will be applied.
  1442  	Config *MissionControlConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
  1443  }
  1444  
  1445  func (x *SetMissionControlConfigRequest) Reset() {
  1446  	*x = SetMissionControlConfigRequest{}
  1447  	if protoimpl.UnsafeEnabled {
  1448  		mi := &file_routerrpc_router_proto_msgTypes[16]
  1449  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1450  		ms.StoreMessageInfo(mi)
  1451  	}
  1452  }
  1453  
  1454  func (x *SetMissionControlConfigRequest) String() string {
  1455  	return protoimpl.X.MessageStringOf(x)
  1456  }
  1457  
  1458  func (*SetMissionControlConfigRequest) ProtoMessage() {}
  1459  
  1460  func (x *SetMissionControlConfigRequest) ProtoReflect() protoreflect.Message {
  1461  	mi := &file_routerrpc_router_proto_msgTypes[16]
  1462  	if protoimpl.UnsafeEnabled && x != nil {
  1463  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1464  		if ms.LoadMessageInfo() == nil {
  1465  			ms.StoreMessageInfo(mi)
  1466  		}
  1467  		return ms
  1468  	}
  1469  	return mi.MessageOf(x)
  1470  }
  1471  
  1472  // Deprecated: Use SetMissionControlConfigRequest.ProtoReflect.Descriptor instead.
  1473  func (*SetMissionControlConfigRequest) Descriptor() ([]byte, []int) {
  1474  	return file_routerrpc_router_proto_rawDescGZIP(), []int{16}
  1475  }
  1476  
  1477  func (x *SetMissionControlConfigRequest) GetConfig() *MissionControlConfig {
  1478  	if x != nil {
  1479  		return x.Config
  1480  	}
  1481  	return nil
  1482  }
  1483  
  1484  type SetMissionControlConfigResponse struct {
  1485  	state         protoimpl.MessageState
  1486  	sizeCache     protoimpl.SizeCache
  1487  	unknownFields protoimpl.UnknownFields
  1488  }
  1489  
  1490  func (x *SetMissionControlConfigResponse) Reset() {
  1491  	*x = SetMissionControlConfigResponse{}
  1492  	if protoimpl.UnsafeEnabled {
  1493  		mi := &file_routerrpc_router_proto_msgTypes[17]
  1494  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1495  		ms.StoreMessageInfo(mi)
  1496  	}
  1497  }
  1498  
  1499  func (x *SetMissionControlConfigResponse) String() string {
  1500  	return protoimpl.X.MessageStringOf(x)
  1501  }
  1502  
  1503  func (*SetMissionControlConfigResponse) ProtoMessage() {}
  1504  
  1505  func (x *SetMissionControlConfigResponse) ProtoReflect() protoreflect.Message {
  1506  	mi := &file_routerrpc_router_proto_msgTypes[17]
  1507  	if protoimpl.UnsafeEnabled && x != nil {
  1508  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1509  		if ms.LoadMessageInfo() == nil {
  1510  			ms.StoreMessageInfo(mi)
  1511  		}
  1512  		return ms
  1513  	}
  1514  	return mi.MessageOf(x)
  1515  }
  1516  
  1517  // Deprecated: Use SetMissionControlConfigResponse.ProtoReflect.Descriptor instead.
  1518  func (*SetMissionControlConfigResponse) Descriptor() ([]byte, []int) {
  1519  	return file_routerrpc_router_proto_rawDescGZIP(), []int{17}
  1520  }
  1521  
  1522  type MissionControlConfig struct {
  1523  	state         protoimpl.MessageState
  1524  	sizeCache     protoimpl.SizeCache
  1525  	unknownFields protoimpl.UnknownFields
  1526  
  1527  	// The amount of time mission control will take to restore a penalized node
  1528  	// or channel back to 50% success probability, expressed in seconds. Setting
  1529  	// this value to a higher value will penalize failures for longer, making
  1530  	// mission control less likely to route through nodes and channels that we
  1531  	// have previously recorded failures for.
  1532  	HalfLifeSeconds uint64 `protobuf:"varint,1,opt,name=half_life_seconds,json=halfLifeSeconds,proto3" json:"half_life_seconds,omitempty"`
  1533  	// The probability of success mission control should assign to hop in a route
  1534  	// where it has no other information available. Higher values will make mission
  1535  	// control more willing to try hops that we have no information about, lower
  1536  	// values will discourage trying these hops.
  1537  	HopProbability float32 `protobuf:"fixed32,2,opt,name=hop_probability,json=hopProbability,proto3" json:"hop_probability,omitempty"`
  1538  	// The importance that mission control should place on historical results,
  1539  	// expressed as a value in [0;1]. Setting this value to 1 will ignore all
  1540  	// historical payments and just use the hop probability to assess the
  1541  	// probability of success for each hop. A zero value ignores hop probability
  1542  	// completely and relies entirely on historical results, unless none are
  1543  	// available.
  1544  	Weight float32 `protobuf:"fixed32,3,opt,name=weight,proto3" json:"weight,omitempty"`
  1545  	// The maximum number of payment results that mission control will store.
  1546  	MaximumPaymentResults uint32 `protobuf:"varint,4,opt,name=maximum_payment_results,json=maximumPaymentResults,proto3" json:"maximum_payment_results,omitempty"`
  1547  	// The minimum time that must have passed since the previously recorded failure
  1548  	// before we raise the failure amount.
  1549  	MinimumFailureRelaxInterval uint64 `protobuf:"varint,5,opt,name=minimum_failure_relax_interval,json=minimumFailureRelaxInterval,proto3" json:"minimum_failure_relax_interval,omitempty"`
  1550  }
  1551  
  1552  func (x *MissionControlConfig) Reset() {
  1553  	*x = MissionControlConfig{}
  1554  	if protoimpl.UnsafeEnabled {
  1555  		mi := &file_routerrpc_router_proto_msgTypes[18]
  1556  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1557  		ms.StoreMessageInfo(mi)
  1558  	}
  1559  }
  1560  
  1561  func (x *MissionControlConfig) String() string {
  1562  	return protoimpl.X.MessageStringOf(x)
  1563  }
  1564  
  1565  func (*MissionControlConfig) ProtoMessage() {}
  1566  
  1567  func (x *MissionControlConfig) ProtoReflect() protoreflect.Message {
  1568  	mi := &file_routerrpc_router_proto_msgTypes[18]
  1569  	if protoimpl.UnsafeEnabled && x != nil {
  1570  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1571  		if ms.LoadMessageInfo() == nil {
  1572  			ms.StoreMessageInfo(mi)
  1573  		}
  1574  		return ms
  1575  	}
  1576  	return mi.MessageOf(x)
  1577  }
  1578  
  1579  // Deprecated: Use MissionControlConfig.ProtoReflect.Descriptor instead.
  1580  func (*MissionControlConfig) Descriptor() ([]byte, []int) {
  1581  	return file_routerrpc_router_proto_rawDescGZIP(), []int{18}
  1582  }
  1583  
  1584  func (x *MissionControlConfig) GetHalfLifeSeconds() uint64 {
  1585  	if x != nil {
  1586  		return x.HalfLifeSeconds
  1587  	}
  1588  	return 0
  1589  }
  1590  
  1591  func (x *MissionControlConfig) GetHopProbability() float32 {
  1592  	if x != nil {
  1593  		return x.HopProbability
  1594  	}
  1595  	return 0
  1596  }
  1597  
  1598  func (x *MissionControlConfig) GetWeight() float32 {
  1599  	if x != nil {
  1600  		return x.Weight
  1601  	}
  1602  	return 0
  1603  }
  1604  
  1605  func (x *MissionControlConfig) GetMaximumPaymentResults() uint32 {
  1606  	if x != nil {
  1607  		return x.MaximumPaymentResults
  1608  	}
  1609  	return 0
  1610  }
  1611  
  1612  func (x *MissionControlConfig) GetMinimumFailureRelaxInterval() uint64 {
  1613  	if x != nil {
  1614  		return x.MinimumFailureRelaxInterval
  1615  	}
  1616  	return 0
  1617  }
  1618  
  1619  type QueryProbabilityRequest struct {
  1620  	state         protoimpl.MessageState
  1621  	sizeCache     protoimpl.SizeCache
  1622  	unknownFields protoimpl.UnknownFields
  1623  
  1624  	// The source node pubkey of the pair.
  1625  	FromNode []byte `protobuf:"bytes,1,opt,name=from_node,json=fromNode,proto3" json:"from_node,omitempty"`
  1626  	// The destination node pubkey of the pair.
  1627  	ToNode []byte `protobuf:"bytes,2,opt,name=to_node,json=toNode,proto3" json:"to_node,omitempty"`
  1628  	// The amount for which to calculate a probability.
  1629  	AmtMAtoms int64 `protobuf:"varint,3,opt,name=amt_m_atoms,json=amtMAtoms,proto3" json:"amt_m_atoms,omitempty"`
  1630  }
  1631  
  1632  func (x *QueryProbabilityRequest) Reset() {
  1633  	*x = QueryProbabilityRequest{}
  1634  	if protoimpl.UnsafeEnabled {
  1635  		mi := &file_routerrpc_router_proto_msgTypes[19]
  1636  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1637  		ms.StoreMessageInfo(mi)
  1638  	}
  1639  }
  1640  
  1641  func (x *QueryProbabilityRequest) String() string {
  1642  	return protoimpl.X.MessageStringOf(x)
  1643  }
  1644  
  1645  func (*QueryProbabilityRequest) ProtoMessage() {}
  1646  
  1647  func (x *QueryProbabilityRequest) ProtoReflect() protoreflect.Message {
  1648  	mi := &file_routerrpc_router_proto_msgTypes[19]
  1649  	if protoimpl.UnsafeEnabled && x != nil {
  1650  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1651  		if ms.LoadMessageInfo() == nil {
  1652  			ms.StoreMessageInfo(mi)
  1653  		}
  1654  		return ms
  1655  	}
  1656  	return mi.MessageOf(x)
  1657  }
  1658  
  1659  // Deprecated: Use QueryProbabilityRequest.ProtoReflect.Descriptor instead.
  1660  func (*QueryProbabilityRequest) Descriptor() ([]byte, []int) {
  1661  	return file_routerrpc_router_proto_rawDescGZIP(), []int{19}
  1662  }
  1663  
  1664  func (x *QueryProbabilityRequest) GetFromNode() []byte {
  1665  	if x != nil {
  1666  		return x.FromNode
  1667  	}
  1668  	return nil
  1669  }
  1670  
  1671  func (x *QueryProbabilityRequest) GetToNode() []byte {
  1672  	if x != nil {
  1673  		return x.ToNode
  1674  	}
  1675  	return nil
  1676  }
  1677  
  1678  func (x *QueryProbabilityRequest) GetAmtMAtoms() int64 {
  1679  	if x != nil {
  1680  		return x.AmtMAtoms
  1681  	}
  1682  	return 0
  1683  }
  1684  
  1685  type QueryProbabilityResponse struct {
  1686  	state         protoimpl.MessageState
  1687  	sizeCache     protoimpl.SizeCache
  1688  	unknownFields protoimpl.UnknownFields
  1689  
  1690  	// The success probability for the requested pair.
  1691  	Probability float64 `protobuf:"fixed64,1,opt,name=probability,proto3" json:"probability,omitempty"`
  1692  	// The historical data for the requested pair.
  1693  	History *PairData `protobuf:"bytes,2,opt,name=history,proto3" json:"history,omitempty"`
  1694  }
  1695  
  1696  func (x *QueryProbabilityResponse) Reset() {
  1697  	*x = QueryProbabilityResponse{}
  1698  	if protoimpl.UnsafeEnabled {
  1699  		mi := &file_routerrpc_router_proto_msgTypes[20]
  1700  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1701  		ms.StoreMessageInfo(mi)
  1702  	}
  1703  }
  1704  
  1705  func (x *QueryProbabilityResponse) String() string {
  1706  	return protoimpl.X.MessageStringOf(x)
  1707  }
  1708  
  1709  func (*QueryProbabilityResponse) ProtoMessage() {}
  1710  
  1711  func (x *QueryProbabilityResponse) ProtoReflect() protoreflect.Message {
  1712  	mi := &file_routerrpc_router_proto_msgTypes[20]
  1713  	if protoimpl.UnsafeEnabled && x != nil {
  1714  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1715  		if ms.LoadMessageInfo() == nil {
  1716  			ms.StoreMessageInfo(mi)
  1717  		}
  1718  		return ms
  1719  	}
  1720  	return mi.MessageOf(x)
  1721  }
  1722  
  1723  // Deprecated: Use QueryProbabilityResponse.ProtoReflect.Descriptor instead.
  1724  func (*QueryProbabilityResponse) Descriptor() ([]byte, []int) {
  1725  	return file_routerrpc_router_proto_rawDescGZIP(), []int{20}
  1726  }
  1727  
  1728  func (x *QueryProbabilityResponse) GetProbability() float64 {
  1729  	if x != nil {
  1730  		return x.Probability
  1731  	}
  1732  	return 0
  1733  }
  1734  
  1735  func (x *QueryProbabilityResponse) GetHistory() *PairData {
  1736  	if x != nil {
  1737  		return x.History
  1738  	}
  1739  	return nil
  1740  }
  1741  
  1742  type BuildRouteRequest struct {
  1743  	state         protoimpl.MessageState
  1744  	sizeCache     protoimpl.SizeCache
  1745  	unknownFields protoimpl.UnknownFields
  1746  
  1747  	// The amount to send expressed in matoms. If set to zero, the minimum routable
  1748  	// amount is used.
  1749  	AmtMAtoms int64 `protobuf:"varint,1,opt,name=amt_m_atoms,json=amtMAtoms,proto3" json:"amt_m_atoms,omitempty"`
  1750  	// CLTV delta from the current height that should be used for the timelock
  1751  	// of the final hop
  1752  	FinalCltvDelta int32 `protobuf:"varint,2,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
  1753  	// The channel id of the channel that must be taken to the first hop. If zero,
  1754  	// any channel may be used.
  1755  	OutgoingChanId uint64 `protobuf:"varint,3,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
  1756  	// A list of hops that defines the route. This does not include the source hop
  1757  	// pubkey.
  1758  	HopPubkeys [][]byte `protobuf:"bytes,4,rep,name=hop_pubkeys,json=hopPubkeys,proto3" json:"hop_pubkeys,omitempty"`
  1759  	// An optional payment addr to be included within the last hop of the route.
  1760  	PaymentAddr []byte `protobuf:"bytes,5,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,omitempty"`
  1761  }
  1762  
  1763  func (x *BuildRouteRequest) Reset() {
  1764  	*x = BuildRouteRequest{}
  1765  	if protoimpl.UnsafeEnabled {
  1766  		mi := &file_routerrpc_router_proto_msgTypes[21]
  1767  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1768  		ms.StoreMessageInfo(mi)
  1769  	}
  1770  }
  1771  
  1772  func (x *BuildRouteRequest) String() string {
  1773  	return protoimpl.X.MessageStringOf(x)
  1774  }
  1775  
  1776  func (*BuildRouteRequest) ProtoMessage() {}
  1777  
  1778  func (x *BuildRouteRequest) ProtoReflect() protoreflect.Message {
  1779  	mi := &file_routerrpc_router_proto_msgTypes[21]
  1780  	if protoimpl.UnsafeEnabled && x != nil {
  1781  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1782  		if ms.LoadMessageInfo() == nil {
  1783  			ms.StoreMessageInfo(mi)
  1784  		}
  1785  		return ms
  1786  	}
  1787  	return mi.MessageOf(x)
  1788  }
  1789  
  1790  // Deprecated: Use BuildRouteRequest.ProtoReflect.Descriptor instead.
  1791  func (*BuildRouteRequest) Descriptor() ([]byte, []int) {
  1792  	return file_routerrpc_router_proto_rawDescGZIP(), []int{21}
  1793  }
  1794  
  1795  func (x *BuildRouteRequest) GetAmtMAtoms() int64 {
  1796  	if x != nil {
  1797  		return x.AmtMAtoms
  1798  	}
  1799  	return 0
  1800  }
  1801  
  1802  func (x *BuildRouteRequest) GetFinalCltvDelta() int32 {
  1803  	if x != nil {
  1804  		return x.FinalCltvDelta
  1805  	}
  1806  	return 0
  1807  }
  1808  
  1809  func (x *BuildRouteRequest) GetOutgoingChanId() uint64 {
  1810  	if x != nil {
  1811  		return x.OutgoingChanId
  1812  	}
  1813  	return 0
  1814  }
  1815  
  1816  func (x *BuildRouteRequest) GetHopPubkeys() [][]byte {
  1817  	if x != nil {
  1818  		return x.HopPubkeys
  1819  	}
  1820  	return nil
  1821  }
  1822  
  1823  func (x *BuildRouteRequest) GetPaymentAddr() []byte {
  1824  	if x != nil {
  1825  		return x.PaymentAddr
  1826  	}
  1827  	return nil
  1828  }
  1829  
  1830  type BuildRouteResponse struct {
  1831  	state         protoimpl.MessageState
  1832  	sizeCache     protoimpl.SizeCache
  1833  	unknownFields protoimpl.UnknownFields
  1834  
  1835  	// Fully specified route that can be used to execute the payment.
  1836  	Route *lnrpc.Route `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"`
  1837  }
  1838  
  1839  func (x *BuildRouteResponse) Reset() {
  1840  	*x = BuildRouteResponse{}
  1841  	if protoimpl.UnsafeEnabled {
  1842  		mi := &file_routerrpc_router_proto_msgTypes[22]
  1843  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1844  		ms.StoreMessageInfo(mi)
  1845  	}
  1846  }
  1847  
  1848  func (x *BuildRouteResponse) String() string {
  1849  	return protoimpl.X.MessageStringOf(x)
  1850  }
  1851  
  1852  func (*BuildRouteResponse) ProtoMessage() {}
  1853  
  1854  func (x *BuildRouteResponse) ProtoReflect() protoreflect.Message {
  1855  	mi := &file_routerrpc_router_proto_msgTypes[22]
  1856  	if protoimpl.UnsafeEnabled && x != nil {
  1857  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1858  		if ms.LoadMessageInfo() == nil {
  1859  			ms.StoreMessageInfo(mi)
  1860  		}
  1861  		return ms
  1862  	}
  1863  	return mi.MessageOf(x)
  1864  }
  1865  
  1866  // Deprecated: Use BuildRouteResponse.ProtoReflect.Descriptor instead.
  1867  func (*BuildRouteResponse) Descriptor() ([]byte, []int) {
  1868  	return file_routerrpc_router_proto_rawDescGZIP(), []int{22}
  1869  }
  1870  
  1871  func (x *BuildRouteResponse) GetRoute() *lnrpc.Route {
  1872  	if x != nil {
  1873  		return x.Route
  1874  	}
  1875  	return nil
  1876  }
  1877  
  1878  type SubscribeHtlcEventsRequest struct {
  1879  	state         protoimpl.MessageState
  1880  	sizeCache     protoimpl.SizeCache
  1881  	unknownFields protoimpl.UnknownFields
  1882  }
  1883  
  1884  func (x *SubscribeHtlcEventsRequest) Reset() {
  1885  	*x = SubscribeHtlcEventsRequest{}
  1886  	if protoimpl.UnsafeEnabled {
  1887  		mi := &file_routerrpc_router_proto_msgTypes[23]
  1888  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1889  		ms.StoreMessageInfo(mi)
  1890  	}
  1891  }
  1892  
  1893  func (x *SubscribeHtlcEventsRequest) String() string {
  1894  	return protoimpl.X.MessageStringOf(x)
  1895  }
  1896  
  1897  func (*SubscribeHtlcEventsRequest) ProtoMessage() {}
  1898  
  1899  func (x *SubscribeHtlcEventsRequest) ProtoReflect() protoreflect.Message {
  1900  	mi := &file_routerrpc_router_proto_msgTypes[23]
  1901  	if protoimpl.UnsafeEnabled && x != nil {
  1902  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1903  		if ms.LoadMessageInfo() == nil {
  1904  			ms.StoreMessageInfo(mi)
  1905  		}
  1906  		return ms
  1907  	}
  1908  	return mi.MessageOf(x)
  1909  }
  1910  
  1911  // Deprecated: Use SubscribeHtlcEventsRequest.ProtoReflect.Descriptor instead.
  1912  func (*SubscribeHtlcEventsRequest) Descriptor() ([]byte, []int) {
  1913  	return file_routerrpc_router_proto_rawDescGZIP(), []int{23}
  1914  }
  1915  
  1916  // HtlcEvent contains the htlc event that was processed. These are served on a
  1917  // best-effort basis; events are not persisted, delivery is not guaranteed
  1918  // (in the event of a crash in the switch, forward events may be lost) and
  1919  // some events may be replayed upon restart. Events consumed from this package
  1920  // should be de-duplicated by the htlc's unique combination of incoming and
  1921  // outgoing channel id and htlc id. [EXPERIMENTAL]
  1922  type HtlcEvent struct {
  1923  	state         protoimpl.MessageState
  1924  	sizeCache     protoimpl.SizeCache
  1925  	unknownFields protoimpl.UnknownFields
  1926  
  1927  	// The short channel id that the incoming htlc arrived at our node on. This
  1928  	// value is zero for sends.
  1929  	IncomingChannelId uint64 `protobuf:"varint,1,opt,name=incoming_channel_id,json=incomingChannelId,proto3" json:"incoming_channel_id,omitempty"`
  1930  	// The short channel id that the outgoing htlc left our node on. This value
  1931  	// is zero for receives.
  1932  	OutgoingChannelId uint64 `protobuf:"varint,2,opt,name=outgoing_channel_id,json=outgoingChannelId,proto3" json:"outgoing_channel_id,omitempty"`
  1933  	// Incoming id is the index of the incoming htlc in the incoming channel.
  1934  	// This value is zero for sends.
  1935  	IncomingHtlcId uint64 `protobuf:"varint,3,opt,name=incoming_htlc_id,json=incomingHtlcId,proto3" json:"incoming_htlc_id,omitempty"`
  1936  	// Outgoing id is the index of the outgoing htlc in the outgoing channel.
  1937  	// This value is zero for receives.
  1938  	OutgoingHtlcId uint64 `protobuf:"varint,4,opt,name=outgoing_htlc_id,json=outgoingHtlcId,proto3" json:"outgoing_htlc_id,omitempty"`
  1939  	// The time in unix nanoseconds that the event occurred.
  1940  	TimestampNs uint64 `protobuf:"varint,5,opt,name=timestamp_ns,json=timestampNs,proto3" json:"timestamp_ns,omitempty"`
  1941  	// The event type indicates whether the htlc was part of a send, receive or
  1942  	// forward.
  1943  	EventType HtlcEvent_EventType `protobuf:"varint,6,opt,name=event_type,json=eventType,proto3,enum=routerrpc.HtlcEvent_EventType" json:"event_type,omitempty"`
  1944  	// Types that are assignable to Event:
  1945  	//
  1946  	//	*HtlcEvent_ForwardEvent
  1947  	//	*HtlcEvent_ForwardFailEvent
  1948  	//	*HtlcEvent_SettleEvent
  1949  	//	*HtlcEvent_LinkFailEvent
  1950  	Event isHtlcEvent_Event `protobuf_oneof:"event"`
  1951  }
  1952  
  1953  func (x *HtlcEvent) Reset() {
  1954  	*x = HtlcEvent{}
  1955  	if protoimpl.UnsafeEnabled {
  1956  		mi := &file_routerrpc_router_proto_msgTypes[24]
  1957  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1958  		ms.StoreMessageInfo(mi)
  1959  	}
  1960  }
  1961  
  1962  func (x *HtlcEvent) String() string {
  1963  	return protoimpl.X.MessageStringOf(x)
  1964  }
  1965  
  1966  func (*HtlcEvent) ProtoMessage() {}
  1967  
  1968  func (x *HtlcEvent) ProtoReflect() protoreflect.Message {
  1969  	mi := &file_routerrpc_router_proto_msgTypes[24]
  1970  	if protoimpl.UnsafeEnabled && x != nil {
  1971  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1972  		if ms.LoadMessageInfo() == nil {
  1973  			ms.StoreMessageInfo(mi)
  1974  		}
  1975  		return ms
  1976  	}
  1977  	return mi.MessageOf(x)
  1978  }
  1979  
  1980  // Deprecated: Use HtlcEvent.ProtoReflect.Descriptor instead.
  1981  func (*HtlcEvent) Descriptor() ([]byte, []int) {
  1982  	return file_routerrpc_router_proto_rawDescGZIP(), []int{24}
  1983  }
  1984  
  1985  func (x *HtlcEvent) GetIncomingChannelId() uint64 {
  1986  	if x != nil {
  1987  		return x.IncomingChannelId
  1988  	}
  1989  	return 0
  1990  }
  1991  
  1992  func (x *HtlcEvent) GetOutgoingChannelId() uint64 {
  1993  	if x != nil {
  1994  		return x.OutgoingChannelId
  1995  	}
  1996  	return 0
  1997  }
  1998  
  1999  func (x *HtlcEvent) GetIncomingHtlcId() uint64 {
  2000  	if x != nil {
  2001  		return x.IncomingHtlcId
  2002  	}
  2003  	return 0
  2004  }
  2005  
  2006  func (x *HtlcEvent) GetOutgoingHtlcId() uint64 {
  2007  	if x != nil {
  2008  		return x.OutgoingHtlcId
  2009  	}
  2010  	return 0
  2011  }
  2012  
  2013  func (x *HtlcEvent) GetTimestampNs() uint64 {
  2014  	if x != nil {
  2015  		return x.TimestampNs
  2016  	}
  2017  	return 0
  2018  }
  2019  
  2020  func (x *HtlcEvent) GetEventType() HtlcEvent_EventType {
  2021  	if x != nil {
  2022  		return x.EventType
  2023  	}
  2024  	return HtlcEvent_UNKNOWN
  2025  }
  2026  
  2027  func (m *HtlcEvent) GetEvent() isHtlcEvent_Event {
  2028  	if m != nil {
  2029  		return m.Event
  2030  	}
  2031  	return nil
  2032  }
  2033  
  2034  func (x *HtlcEvent) GetForwardEvent() *ForwardEvent {
  2035  	if x, ok := x.GetEvent().(*HtlcEvent_ForwardEvent); ok {
  2036  		return x.ForwardEvent
  2037  	}
  2038  	return nil
  2039  }
  2040  
  2041  func (x *HtlcEvent) GetForwardFailEvent() *ForwardFailEvent {
  2042  	if x, ok := x.GetEvent().(*HtlcEvent_ForwardFailEvent); ok {
  2043  		return x.ForwardFailEvent
  2044  	}
  2045  	return nil
  2046  }
  2047  
  2048  func (x *HtlcEvent) GetSettleEvent() *SettleEvent {
  2049  	if x, ok := x.GetEvent().(*HtlcEvent_SettleEvent); ok {
  2050  		return x.SettleEvent
  2051  	}
  2052  	return nil
  2053  }
  2054  
  2055  func (x *HtlcEvent) GetLinkFailEvent() *LinkFailEvent {
  2056  	if x, ok := x.GetEvent().(*HtlcEvent_LinkFailEvent); ok {
  2057  		return x.LinkFailEvent
  2058  	}
  2059  	return nil
  2060  }
  2061  
  2062  type isHtlcEvent_Event interface {
  2063  	isHtlcEvent_Event()
  2064  }
  2065  
  2066  type HtlcEvent_ForwardEvent struct {
  2067  	ForwardEvent *ForwardEvent `protobuf:"bytes,7,opt,name=forward_event,json=forwardEvent,proto3,oneof"`
  2068  }
  2069  
  2070  type HtlcEvent_ForwardFailEvent struct {
  2071  	ForwardFailEvent *ForwardFailEvent `protobuf:"bytes,8,opt,name=forward_fail_event,json=forwardFailEvent,proto3,oneof"`
  2072  }
  2073  
  2074  type HtlcEvent_SettleEvent struct {
  2075  	SettleEvent *SettleEvent `protobuf:"bytes,9,opt,name=settle_event,json=settleEvent,proto3,oneof"`
  2076  }
  2077  
  2078  type HtlcEvent_LinkFailEvent struct {
  2079  	LinkFailEvent *LinkFailEvent `protobuf:"bytes,10,opt,name=link_fail_event,json=linkFailEvent,proto3,oneof"`
  2080  }
  2081  
  2082  func (*HtlcEvent_ForwardEvent) isHtlcEvent_Event() {}
  2083  
  2084  func (*HtlcEvent_ForwardFailEvent) isHtlcEvent_Event() {}
  2085  
  2086  func (*HtlcEvent_SettleEvent) isHtlcEvent_Event() {}
  2087  
  2088  func (*HtlcEvent_LinkFailEvent) isHtlcEvent_Event() {}
  2089  
  2090  type HtlcInfo struct {
  2091  	state         protoimpl.MessageState
  2092  	sizeCache     protoimpl.SizeCache
  2093  	unknownFields protoimpl.UnknownFields
  2094  
  2095  	// The timelock on the incoming htlc.
  2096  	IncomingTimelock uint32 `protobuf:"varint,1,opt,name=incoming_timelock,json=incomingTimelock,proto3" json:"incoming_timelock,omitempty"`
  2097  	// The timelock on the outgoing htlc.
  2098  	OutgoingTimelock uint32 `protobuf:"varint,2,opt,name=outgoing_timelock,json=outgoingTimelock,proto3" json:"outgoing_timelock,omitempty"`
  2099  	// The amount of the incoming htlc.
  2100  	IncomingAmtMAtoms uint64 `protobuf:"varint,3,opt,name=incoming_amt_m_atoms,json=incomingAmtMAtoms,proto3" json:"incoming_amt_m_atoms,omitempty"`
  2101  	// The amount of the outgoing htlc.
  2102  	OutgoingAmtMAtoms uint64 `protobuf:"varint,4,opt,name=outgoing_amt_m_atoms,json=outgoingAmtMAtoms,proto3" json:"outgoing_amt_m_atoms,omitempty"`
  2103  }
  2104  
  2105  func (x *HtlcInfo) Reset() {
  2106  	*x = HtlcInfo{}
  2107  	if protoimpl.UnsafeEnabled {
  2108  		mi := &file_routerrpc_router_proto_msgTypes[25]
  2109  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2110  		ms.StoreMessageInfo(mi)
  2111  	}
  2112  }
  2113  
  2114  func (x *HtlcInfo) String() string {
  2115  	return protoimpl.X.MessageStringOf(x)
  2116  }
  2117  
  2118  func (*HtlcInfo) ProtoMessage() {}
  2119  
  2120  func (x *HtlcInfo) ProtoReflect() protoreflect.Message {
  2121  	mi := &file_routerrpc_router_proto_msgTypes[25]
  2122  	if protoimpl.UnsafeEnabled && x != nil {
  2123  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2124  		if ms.LoadMessageInfo() == nil {
  2125  			ms.StoreMessageInfo(mi)
  2126  		}
  2127  		return ms
  2128  	}
  2129  	return mi.MessageOf(x)
  2130  }
  2131  
  2132  // Deprecated: Use HtlcInfo.ProtoReflect.Descriptor instead.
  2133  func (*HtlcInfo) Descriptor() ([]byte, []int) {
  2134  	return file_routerrpc_router_proto_rawDescGZIP(), []int{25}
  2135  }
  2136  
  2137  func (x *HtlcInfo) GetIncomingTimelock() uint32 {
  2138  	if x != nil {
  2139  		return x.IncomingTimelock
  2140  	}
  2141  	return 0
  2142  }
  2143  
  2144  func (x *HtlcInfo) GetOutgoingTimelock() uint32 {
  2145  	if x != nil {
  2146  		return x.OutgoingTimelock
  2147  	}
  2148  	return 0
  2149  }
  2150  
  2151  func (x *HtlcInfo) GetIncomingAmtMAtoms() uint64 {
  2152  	if x != nil {
  2153  		return x.IncomingAmtMAtoms
  2154  	}
  2155  	return 0
  2156  }
  2157  
  2158  func (x *HtlcInfo) GetOutgoingAmtMAtoms() uint64 {
  2159  	if x != nil {
  2160  		return x.OutgoingAmtMAtoms
  2161  	}
  2162  	return 0
  2163  }
  2164  
  2165  type ForwardEvent struct {
  2166  	state         protoimpl.MessageState
  2167  	sizeCache     protoimpl.SizeCache
  2168  	unknownFields protoimpl.UnknownFields
  2169  
  2170  	// Info contains details about the htlc that was forwarded.
  2171  	Info *HtlcInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
  2172  }
  2173  
  2174  func (x *ForwardEvent) Reset() {
  2175  	*x = ForwardEvent{}
  2176  	if protoimpl.UnsafeEnabled {
  2177  		mi := &file_routerrpc_router_proto_msgTypes[26]
  2178  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2179  		ms.StoreMessageInfo(mi)
  2180  	}
  2181  }
  2182  
  2183  func (x *ForwardEvent) String() string {
  2184  	return protoimpl.X.MessageStringOf(x)
  2185  }
  2186  
  2187  func (*ForwardEvent) ProtoMessage() {}
  2188  
  2189  func (x *ForwardEvent) ProtoReflect() protoreflect.Message {
  2190  	mi := &file_routerrpc_router_proto_msgTypes[26]
  2191  	if protoimpl.UnsafeEnabled && x != nil {
  2192  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2193  		if ms.LoadMessageInfo() == nil {
  2194  			ms.StoreMessageInfo(mi)
  2195  		}
  2196  		return ms
  2197  	}
  2198  	return mi.MessageOf(x)
  2199  }
  2200  
  2201  // Deprecated: Use ForwardEvent.ProtoReflect.Descriptor instead.
  2202  func (*ForwardEvent) Descriptor() ([]byte, []int) {
  2203  	return file_routerrpc_router_proto_rawDescGZIP(), []int{26}
  2204  }
  2205  
  2206  func (x *ForwardEvent) GetInfo() *HtlcInfo {
  2207  	if x != nil {
  2208  		return x.Info
  2209  	}
  2210  	return nil
  2211  }
  2212  
  2213  type ForwardFailEvent struct {
  2214  	state         protoimpl.MessageState
  2215  	sizeCache     protoimpl.SizeCache
  2216  	unknownFields protoimpl.UnknownFields
  2217  }
  2218  
  2219  func (x *ForwardFailEvent) Reset() {
  2220  	*x = ForwardFailEvent{}
  2221  	if protoimpl.UnsafeEnabled {
  2222  		mi := &file_routerrpc_router_proto_msgTypes[27]
  2223  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2224  		ms.StoreMessageInfo(mi)
  2225  	}
  2226  }
  2227  
  2228  func (x *ForwardFailEvent) String() string {
  2229  	return protoimpl.X.MessageStringOf(x)
  2230  }
  2231  
  2232  func (*ForwardFailEvent) ProtoMessage() {}
  2233  
  2234  func (x *ForwardFailEvent) ProtoReflect() protoreflect.Message {
  2235  	mi := &file_routerrpc_router_proto_msgTypes[27]
  2236  	if protoimpl.UnsafeEnabled && x != nil {
  2237  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2238  		if ms.LoadMessageInfo() == nil {
  2239  			ms.StoreMessageInfo(mi)
  2240  		}
  2241  		return ms
  2242  	}
  2243  	return mi.MessageOf(x)
  2244  }
  2245  
  2246  // Deprecated: Use ForwardFailEvent.ProtoReflect.Descriptor instead.
  2247  func (*ForwardFailEvent) Descriptor() ([]byte, []int) {
  2248  	return file_routerrpc_router_proto_rawDescGZIP(), []int{27}
  2249  }
  2250  
  2251  type SettleEvent struct {
  2252  	state         protoimpl.MessageState
  2253  	sizeCache     protoimpl.SizeCache
  2254  	unknownFields protoimpl.UnknownFields
  2255  
  2256  	// The revealed preimage.
  2257  	Preimage []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"`
  2258  }
  2259  
  2260  func (x *SettleEvent) Reset() {
  2261  	*x = SettleEvent{}
  2262  	if protoimpl.UnsafeEnabled {
  2263  		mi := &file_routerrpc_router_proto_msgTypes[28]
  2264  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2265  		ms.StoreMessageInfo(mi)
  2266  	}
  2267  }
  2268  
  2269  func (x *SettleEvent) String() string {
  2270  	return protoimpl.X.MessageStringOf(x)
  2271  }
  2272  
  2273  func (*SettleEvent) ProtoMessage() {}
  2274  
  2275  func (x *SettleEvent) ProtoReflect() protoreflect.Message {
  2276  	mi := &file_routerrpc_router_proto_msgTypes[28]
  2277  	if protoimpl.UnsafeEnabled && x != nil {
  2278  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2279  		if ms.LoadMessageInfo() == nil {
  2280  			ms.StoreMessageInfo(mi)
  2281  		}
  2282  		return ms
  2283  	}
  2284  	return mi.MessageOf(x)
  2285  }
  2286  
  2287  // Deprecated: Use SettleEvent.ProtoReflect.Descriptor instead.
  2288  func (*SettleEvent) Descriptor() ([]byte, []int) {
  2289  	return file_routerrpc_router_proto_rawDescGZIP(), []int{28}
  2290  }
  2291  
  2292  func (x *SettleEvent) GetPreimage() []byte {
  2293  	if x != nil {
  2294  		return x.Preimage
  2295  	}
  2296  	return nil
  2297  }
  2298  
  2299  type LinkFailEvent struct {
  2300  	state         protoimpl.MessageState
  2301  	sizeCache     protoimpl.SizeCache
  2302  	unknownFields protoimpl.UnknownFields
  2303  
  2304  	// Info contains details about the htlc that we failed.
  2305  	Info *HtlcInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
  2306  	// FailureCode is the BOLT error code for the failure.
  2307  	WireFailure lnrpc.Failure_FailureCode `protobuf:"varint,2,opt,name=wire_failure,json=wireFailure,proto3,enum=lnrpc.Failure_FailureCode" json:"wire_failure,omitempty"`
  2308  	// FailureDetail provides additional information about the reason for the
  2309  	// failure. This detail enriches the information provided by the wire message
  2310  	// and may be 'no detail' if the wire message requires no additional metadata.
  2311  	FailureDetail FailureDetail `protobuf:"varint,3,opt,name=failure_detail,json=failureDetail,proto3,enum=routerrpc.FailureDetail" json:"failure_detail,omitempty"`
  2312  	// A string representation of the link failure.
  2313  	FailureString string `protobuf:"bytes,4,opt,name=failure_string,json=failureString,proto3" json:"failure_string,omitempty"`
  2314  }
  2315  
  2316  func (x *LinkFailEvent) Reset() {
  2317  	*x = LinkFailEvent{}
  2318  	if protoimpl.UnsafeEnabled {
  2319  		mi := &file_routerrpc_router_proto_msgTypes[29]
  2320  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2321  		ms.StoreMessageInfo(mi)
  2322  	}
  2323  }
  2324  
  2325  func (x *LinkFailEvent) String() string {
  2326  	return protoimpl.X.MessageStringOf(x)
  2327  }
  2328  
  2329  func (*LinkFailEvent) ProtoMessage() {}
  2330  
  2331  func (x *LinkFailEvent) ProtoReflect() protoreflect.Message {
  2332  	mi := &file_routerrpc_router_proto_msgTypes[29]
  2333  	if protoimpl.UnsafeEnabled && x != nil {
  2334  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2335  		if ms.LoadMessageInfo() == nil {
  2336  			ms.StoreMessageInfo(mi)
  2337  		}
  2338  		return ms
  2339  	}
  2340  	return mi.MessageOf(x)
  2341  }
  2342  
  2343  // Deprecated: Use LinkFailEvent.ProtoReflect.Descriptor instead.
  2344  func (*LinkFailEvent) Descriptor() ([]byte, []int) {
  2345  	return file_routerrpc_router_proto_rawDescGZIP(), []int{29}
  2346  }
  2347  
  2348  func (x *LinkFailEvent) GetInfo() *HtlcInfo {
  2349  	if x != nil {
  2350  		return x.Info
  2351  	}
  2352  	return nil
  2353  }
  2354  
  2355  func (x *LinkFailEvent) GetWireFailure() lnrpc.Failure_FailureCode {
  2356  	if x != nil {
  2357  		return x.WireFailure
  2358  	}
  2359  	return lnrpc.Failure_FailureCode(0)
  2360  }
  2361  
  2362  func (x *LinkFailEvent) GetFailureDetail() FailureDetail {
  2363  	if x != nil {
  2364  		return x.FailureDetail
  2365  	}
  2366  	return FailureDetail_UNKNOWN
  2367  }
  2368  
  2369  func (x *LinkFailEvent) GetFailureString() string {
  2370  	if x != nil {
  2371  		return x.FailureString
  2372  	}
  2373  	return ""
  2374  }
  2375  
  2376  type PaymentStatus struct {
  2377  	state         protoimpl.MessageState
  2378  	sizeCache     protoimpl.SizeCache
  2379  	unknownFields protoimpl.UnknownFields
  2380  
  2381  	// Current state the payment is in.
  2382  	State PaymentState `protobuf:"varint,1,opt,name=state,proto3,enum=routerrpc.PaymentState" json:"state,omitempty"`
  2383  	// The pre-image of the payment when state is SUCCEEDED.
  2384  	Preimage []byte `protobuf:"bytes,2,opt,name=preimage,proto3" json:"preimage,omitempty"`
  2385  	// The HTLCs made in attempt to settle the payment [EXPERIMENTAL].
  2386  	Htlcs []*lnrpc.HTLCAttempt `protobuf:"bytes,4,rep,name=htlcs,proto3" json:"htlcs,omitempty"`
  2387  }
  2388  
  2389  func (x *PaymentStatus) Reset() {
  2390  	*x = PaymentStatus{}
  2391  	if protoimpl.UnsafeEnabled {
  2392  		mi := &file_routerrpc_router_proto_msgTypes[30]
  2393  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2394  		ms.StoreMessageInfo(mi)
  2395  	}
  2396  }
  2397  
  2398  func (x *PaymentStatus) String() string {
  2399  	return protoimpl.X.MessageStringOf(x)
  2400  }
  2401  
  2402  func (*PaymentStatus) ProtoMessage() {}
  2403  
  2404  func (x *PaymentStatus) ProtoReflect() protoreflect.Message {
  2405  	mi := &file_routerrpc_router_proto_msgTypes[30]
  2406  	if protoimpl.UnsafeEnabled && x != nil {
  2407  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2408  		if ms.LoadMessageInfo() == nil {
  2409  			ms.StoreMessageInfo(mi)
  2410  		}
  2411  		return ms
  2412  	}
  2413  	return mi.MessageOf(x)
  2414  }
  2415  
  2416  // Deprecated: Use PaymentStatus.ProtoReflect.Descriptor instead.
  2417  func (*PaymentStatus) Descriptor() ([]byte, []int) {
  2418  	return file_routerrpc_router_proto_rawDescGZIP(), []int{30}
  2419  }
  2420  
  2421  func (x *PaymentStatus) GetState() PaymentState {
  2422  	if x != nil {
  2423  		return x.State
  2424  	}
  2425  	return PaymentState_IN_FLIGHT
  2426  }
  2427  
  2428  func (x *PaymentStatus) GetPreimage() []byte {
  2429  	if x != nil {
  2430  		return x.Preimage
  2431  	}
  2432  	return nil
  2433  }
  2434  
  2435  func (x *PaymentStatus) GetHtlcs() []*lnrpc.HTLCAttempt {
  2436  	if x != nil {
  2437  		return x.Htlcs
  2438  	}
  2439  	return nil
  2440  }
  2441  
  2442  type CircuitKey struct {
  2443  	state         protoimpl.MessageState
  2444  	sizeCache     protoimpl.SizeCache
  2445  	unknownFields protoimpl.UnknownFields
  2446  
  2447  	// / The id of the channel that the is part of this circuit.
  2448  	ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"`
  2449  	// / The index of the incoming htlc in the incoming channel.
  2450  	HtlcId uint64 `protobuf:"varint,2,opt,name=htlc_id,json=htlcId,proto3" json:"htlc_id,omitempty"`
  2451  }
  2452  
  2453  func (x *CircuitKey) Reset() {
  2454  	*x = CircuitKey{}
  2455  	if protoimpl.UnsafeEnabled {
  2456  		mi := &file_routerrpc_router_proto_msgTypes[31]
  2457  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2458  		ms.StoreMessageInfo(mi)
  2459  	}
  2460  }
  2461  
  2462  func (x *CircuitKey) String() string {
  2463  	return protoimpl.X.MessageStringOf(x)
  2464  }
  2465  
  2466  func (*CircuitKey) ProtoMessage() {}
  2467  
  2468  func (x *CircuitKey) ProtoReflect() protoreflect.Message {
  2469  	mi := &file_routerrpc_router_proto_msgTypes[31]
  2470  	if protoimpl.UnsafeEnabled && x != nil {
  2471  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2472  		if ms.LoadMessageInfo() == nil {
  2473  			ms.StoreMessageInfo(mi)
  2474  		}
  2475  		return ms
  2476  	}
  2477  	return mi.MessageOf(x)
  2478  }
  2479  
  2480  // Deprecated: Use CircuitKey.ProtoReflect.Descriptor instead.
  2481  func (*CircuitKey) Descriptor() ([]byte, []int) {
  2482  	return file_routerrpc_router_proto_rawDescGZIP(), []int{31}
  2483  }
  2484  
  2485  func (x *CircuitKey) GetChanId() uint64 {
  2486  	if x != nil {
  2487  		return x.ChanId
  2488  	}
  2489  	return 0
  2490  }
  2491  
  2492  func (x *CircuitKey) GetHtlcId() uint64 {
  2493  	if x != nil {
  2494  		return x.HtlcId
  2495  	}
  2496  	return 0
  2497  }
  2498  
  2499  type ForwardHtlcInterceptRequest struct {
  2500  	state         protoimpl.MessageState
  2501  	sizeCache     protoimpl.SizeCache
  2502  	unknownFields protoimpl.UnknownFields
  2503  
  2504  	// The key of this forwarded htlc. It defines the incoming channel id and
  2505  	// the index in this channel.
  2506  	IncomingCircuitKey *CircuitKey `protobuf:"bytes,1,opt,name=incoming_circuit_key,json=incomingCircuitKey,proto3" json:"incoming_circuit_key,omitempty"`
  2507  	// The incoming htlc amount.
  2508  	IncomingAmountMAtoms uint64 `protobuf:"varint,5,opt,name=incoming_amount_m_atoms,json=incomingAmountMAtoms,proto3" json:"incoming_amount_m_atoms,omitempty"`
  2509  	// The incoming htlc expiry.
  2510  	IncomingExpiry uint32 `protobuf:"varint,6,opt,name=incoming_expiry,json=incomingExpiry,proto3" json:"incoming_expiry,omitempty"`
  2511  	// The htlc payment hash. This value is not guaranteed to be unique per
  2512  	// request.
  2513  	PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
  2514  	// The requested outgoing channel id for this forwarded htlc. Because of
  2515  	// non-strict forwarding, this isn't necessarily the channel over which the
  2516  	// packet will be forwarded eventually. A different channel to the same peer
  2517  	// may be selected as well.
  2518  	OutgoingRequestedChanId uint64 `protobuf:"varint,7,opt,name=outgoing_requested_chan_id,json=outgoingRequestedChanId,proto3" json:"outgoing_requested_chan_id,omitempty"`
  2519  	// The outgoing htlc amount.
  2520  	OutgoingAmountMAtoms uint64 `protobuf:"varint,3,opt,name=outgoing_amount_m_atoms,json=outgoingAmountMAtoms,proto3" json:"outgoing_amount_m_atoms,omitempty"`
  2521  	// The outgoing htlc expiry.
  2522  	OutgoingExpiry uint32 `protobuf:"varint,4,opt,name=outgoing_expiry,json=outgoingExpiry,proto3" json:"outgoing_expiry,omitempty"`
  2523  	// Any custom records that were present in the payload.
  2524  	CustomRecords map[uint64][]byte `protobuf:"bytes,8,rep,name=custom_records,json=customRecords,proto3" json:"custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  2525  	// The onion blob for the next hop
  2526  	OnionBlob []byte `protobuf:"bytes,9,opt,name=onion_blob,json=onionBlob,proto3" json:"onion_blob,omitempty"`
  2527  }
  2528  
  2529  func (x *ForwardHtlcInterceptRequest) Reset() {
  2530  	*x = ForwardHtlcInterceptRequest{}
  2531  	if protoimpl.UnsafeEnabled {
  2532  		mi := &file_routerrpc_router_proto_msgTypes[32]
  2533  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2534  		ms.StoreMessageInfo(mi)
  2535  	}
  2536  }
  2537  
  2538  func (x *ForwardHtlcInterceptRequest) String() string {
  2539  	return protoimpl.X.MessageStringOf(x)
  2540  }
  2541  
  2542  func (*ForwardHtlcInterceptRequest) ProtoMessage() {}
  2543  
  2544  func (x *ForwardHtlcInterceptRequest) ProtoReflect() protoreflect.Message {
  2545  	mi := &file_routerrpc_router_proto_msgTypes[32]
  2546  	if protoimpl.UnsafeEnabled && x != nil {
  2547  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2548  		if ms.LoadMessageInfo() == nil {
  2549  			ms.StoreMessageInfo(mi)
  2550  		}
  2551  		return ms
  2552  	}
  2553  	return mi.MessageOf(x)
  2554  }
  2555  
  2556  // Deprecated: Use ForwardHtlcInterceptRequest.ProtoReflect.Descriptor instead.
  2557  func (*ForwardHtlcInterceptRequest) Descriptor() ([]byte, []int) {
  2558  	return file_routerrpc_router_proto_rawDescGZIP(), []int{32}
  2559  }
  2560  
  2561  func (x *ForwardHtlcInterceptRequest) GetIncomingCircuitKey() *CircuitKey {
  2562  	if x != nil {
  2563  		return x.IncomingCircuitKey
  2564  	}
  2565  	return nil
  2566  }
  2567  
  2568  func (x *ForwardHtlcInterceptRequest) GetIncomingAmountMAtoms() uint64 {
  2569  	if x != nil {
  2570  		return x.IncomingAmountMAtoms
  2571  	}
  2572  	return 0
  2573  }
  2574  
  2575  func (x *ForwardHtlcInterceptRequest) GetIncomingExpiry() uint32 {
  2576  	if x != nil {
  2577  		return x.IncomingExpiry
  2578  	}
  2579  	return 0
  2580  }
  2581  
  2582  func (x *ForwardHtlcInterceptRequest) GetPaymentHash() []byte {
  2583  	if x != nil {
  2584  		return x.PaymentHash
  2585  	}
  2586  	return nil
  2587  }
  2588  
  2589  func (x *ForwardHtlcInterceptRequest) GetOutgoingRequestedChanId() uint64 {
  2590  	if x != nil {
  2591  		return x.OutgoingRequestedChanId
  2592  	}
  2593  	return 0
  2594  }
  2595  
  2596  func (x *ForwardHtlcInterceptRequest) GetOutgoingAmountMAtoms() uint64 {
  2597  	if x != nil {
  2598  		return x.OutgoingAmountMAtoms
  2599  	}
  2600  	return 0
  2601  }
  2602  
  2603  func (x *ForwardHtlcInterceptRequest) GetOutgoingExpiry() uint32 {
  2604  	if x != nil {
  2605  		return x.OutgoingExpiry
  2606  	}
  2607  	return 0
  2608  }
  2609  
  2610  func (x *ForwardHtlcInterceptRequest) GetCustomRecords() map[uint64][]byte {
  2611  	if x != nil {
  2612  		return x.CustomRecords
  2613  	}
  2614  	return nil
  2615  }
  2616  
  2617  func (x *ForwardHtlcInterceptRequest) GetOnionBlob() []byte {
  2618  	if x != nil {
  2619  		return x.OnionBlob
  2620  	}
  2621  	return nil
  2622  }
  2623  
  2624  // *
  2625  // ForwardHtlcInterceptResponse enables the caller to resolve a previously hold
  2626  // forward. The caller can choose either to:
  2627  // - `Resume`: Execute the default behavior (usually forward).
  2628  // - `Reject`: Fail the htlc backwards.
  2629  // - `Settle`: Settle this htlc with a given preimage.
  2630  type ForwardHtlcInterceptResponse struct {
  2631  	state         protoimpl.MessageState
  2632  	sizeCache     protoimpl.SizeCache
  2633  	unknownFields protoimpl.UnknownFields
  2634  
  2635  	// *
  2636  	// The key of this forwarded htlc. It defines the incoming channel id and
  2637  	// the index in this channel.
  2638  	IncomingCircuitKey *CircuitKey `protobuf:"bytes,1,opt,name=incoming_circuit_key,json=incomingCircuitKey,proto3" json:"incoming_circuit_key,omitempty"`
  2639  	// The resolve action for this intercepted htlc.
  2640  	Action ResolveHoldForwardAction `protobuf:"varint,2,opt,name=action,proto3,enum=routerrpc.ResolveHoldForwardAction" json:"action,omitempty"`
  2641  	// The preimage in case the resolve action is Settle.
  2642  	Preimage []byte `protobuf:"bytes,3,opt,name=preimage,proto3" json:"preimage,omitempty"`
  2643  }
  2644  
  2645  func (x *ForwardHtlcInterceptResponse) Reset() {
  2646  	*x = ForwardHtlcInterceptResponse{}
  2647  	if protoimpl.UnsafeEnabled {
  2648  		mi := &file_routerrpc_router_proto_msgTypes[33]
  2649  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2650  		ms.StoreMessageInfo(mi)
  2651  	}
  2652  }
  2653  
  2654  func (x *ForwardHtlcInterceptResponse) String() string {
  2655  	return protoimpl.X.MessageStringOf(x)
  2656  }
  2657  
  2658  func (*ForwardHtlcInterceptResponse) ProtoMessage() {}
  2659  
  2660  func (x *ForwardHtlcInterceptResponse) ProtoReflect() protoreflect.Message {
  2661  	mi := &file_routerrpc_router_proto_msgTypes[33]
  2662  	if protoimpl.UnsafeEnabled && x != nil {
  2663  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2664  		if ms.LoadMessageInfo() == nil {
  2665  			ms.StoreMessageInfo(mi)
  2666  		}
  2667  		return ms
  2668  	}
  2669  	return mi.MessageOf(x)
  2670  }
  2671  
  2672  // Deprecated: Use ForwardHtlcInterceptResponse.ProtoReflect.Descriptor instead.
  2673  func (*ForwardHtlcInterceptResponse) Descriptor() ([]byte, []int) {
  2674  	return file_routerrpc_router_proto_rawDescGZIP(), []int{33}
  2675  }
  2676  
  2677  func (x *ForwardHtlcInterceptResponse) GetIncomingCircuitKey() *CircuitKey {
  2678  	if x != nil {
  2679  		return x.IncomingCircuitKey
  2680  	}
  2681  	return nil
  2682  }
  2683  
  2684  func (x *ForwardHtlcInterceptResponse) GetAction() ResolveHoldForwardAction {
  2685  	if x != nil {
  2686  		return x.Action
  2687  	}
  2688  	return ResolveHoldForwardAction_SETTLE
  2689  }
  2690  
  2691  func (x *ForwardHtlcInterceptResponse) GetPreimage() []byte {
  2692  	if x != nil {
  2693  		return x.Preimage
  2694  	}
  2695  	return nil
  2696  }
  2697  
  2698  type UpdateChanStatusRequest struct {
  2699  	state         protoimpl.MessageState
  2700  	sizeCache     protoimpl.SizeCache
  2701  	unknownFields protoimpl.UnknownFields
  2702  
  2703  	ChanPoint *lnrpc.ChannelPoint `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
  2704  	Action    ChanStatusAction    `protobuf:"varint,2,opt,name=action,proto3,enum=routerrpc.ChanStatusAction" json:"action,omitempty"`
  2705  }
  2706  
  2707  func (x *UpdateChanStatusRequest) Reset() {
  2708  	*x = UpdateChanStatusRequest{}
  2709  	if protoimpl.UnsafeEnabled {
  2710  		mi := &file_routerrpc_router_proto_msgTypes[34]
  2711  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2712  		ms.StoreMessageInfo(mi)
  2713  	}
  2714  }
  2715  
  2716  func (x *UpdateChanStatusRequest) String() string {
  2717  	return protoimpl.X.MessageStringOf(x)
  2718  }
  2719  
  2720  func (*UpdateChanStatusRequest) ProtoMessage() {}
  2721  
  2722  func (x *UpdateChanStatusRequest) ProtoReflect() protoreflect.Message {
  2723  	mi := &file_routerrpc_router_proto_msgTypes[34]
  2724  	if protoimpl.UnsafeEnabled && x != nil {
  2725  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2726  		if ms.LoadMessageInfo() == nil {
  2727  			ms.StoreMessageInfo(mi)
  2728  		}
  2729  		return ms
  2730  	}
  2731  	return mi.MessageOf(x)
  2732  }
  2733  
  2734  // Deprecated: Use UpdateChanStatusRequest.ProtoReflect.Descriptor instead.
  2735  func (*UpdateChanStatusRequest) Descriptor() ([]byte, []int) {
  2736  	return file_routerrpc_router_proto_rawDescGZIP(), []int{34}
  2737  }
  2738  
  2739  func (x *UpdateChanStatusRequest) GetChanPoint() *lnrpc.ChannelPoint {
  2740  	if x != nil {
  2741  		return x.ChanPoint
  2742  	}
  2743  	return nil
  2744  }
  2745  
  2746  func (x *UpdateChanStatusRequest) GetAction() ChanStatusAction {
  2747  	if x != nil {
  2748  		return x.Action
  2749  	}
  2750  	return ChanStatusAction_ENABLE
  2751  }
  2752  
  2753  type UpdateChanStatusResponse struct {
  2754  	state         protoimpl.MessageState
  2755  	sizeCache     protoimpl.SizeCache
  2756  	unknownFields protoimpl.UnknownFields
  2757  }
  2758  
  2759  func (x *UpdateChanStatusResponse) Reset() {
  2760  	*x = UpdateChanStatusResponse{}
  2761  	if protoimpl.UnsafeEnabled {
  2762  		mi := &file_routerrpc_router_proto_msgTypes[35]
  2763  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2764  		ms.StoreMessageInfo(mi)
  2765  	}
  2766  }
  2767  
  2768  func (x *UpdateChanStatusResponse) String() string {
  2769  	return protoimpl.X.MessageStringOf(x)
  2770  }
  2771  
  2772  func (*UpdateChanStatusResponse) ProtoMessage() {}
  2773  
  2774  func (x *UpdateChanStatusResponse) ProtoReflect() protoreflect.Message {
  2775  	mi := &file_routerrpc_router_proto_msgTypes[35]
  2776  	if protoimpl.UnsafeEnabled && x != nil {
  2777  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2778  		if ms.LoadMessageInfo() == nil {
  2779  			ms.StoreMessageInfo(mi)
  2780  		}
  2781  		return ms
  2782  	}
  2783  	return mi.MessageOf(x)
  2784  }
  2785  
  2786  // Deprecated: Use UpdateChanStatusResponse.ProtoReflect.Descriptor instead.
  2787  func (*UpdateChanStatusResponse) Descriptor() ([]byte, []int) {
  2788  	return file_routerrpc_router_proto_rawDescGZIP(), []int{35}
  2789  }
  2790  
  2791  var File_routerrpc_router_proto protoreflect.FileDescriptor
  2792  
  2793  var file_routerrpc_router_proto_rawDesc = []byte{
  2794  	0x0a, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x6f, 0x75, 0x74,
  2795  	0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
  2796  	0x72, 0x70, 0x63, 0x1a, 0x0f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70,
  2797  	0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe9, 0x07, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79,
  2798  	0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64,
  2799  	0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x65, 0x73, 0x74, 0x12,
  2800  	0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x6d,
  2801  	0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73,
  2802  	0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x6d, 0x74, 0x4d, 0x41, 0x74, 0x6f, 0x6d,
  2803  	0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73,
  2804  	0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
  2805  	0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6c,
  2806  	0x74, 0x76, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e,
  2807  	0x66, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x74, 0x76, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x21,
  2808  	0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x14,
  2809  	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64,
  2810  	0x72, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71,
  2811  	0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d,
  2812  	0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69,
  2813  	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20,
  2814  	0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f,
  2815  	0x6e, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x65, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74,
  2816  	0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x66, 0x65,
  2817  	0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x11, 0x66,
  2818  	0x65, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73,
  2819  	0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
  2820  	0x4d, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
  2821  	0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04,
  2822  	0x42, 0x04, 0x18, 0x01, 0x30, 0x01, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
  2823  	0x43, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
  2824  	0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28,
  2825  	0x04, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x49,
  2826  	0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x70,
  2827  	0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6c, 0x61, 0x73,
  2828  	0x74, 0x48, 0x6f, 0x70, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c,
  2829  	0x74, 0x76, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
  2830  	0x63, 0x6c, 0x74, 0x76, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x72, 0x6f, 0x75,
  2831  	0x74, 0x65, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10,
  2832  	0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x69, 0x6e, 0x74,
  2833  	0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x13,
  2834  	0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f,
  2835  	0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x72, 0x6f, 0x75, 0x74,
  2836  	0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
  2837  	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x43, 0x75, 0x73,
  2838  	0x74, 0x6f, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
  2839  	0x11, 0x64, 0x65, 0x73, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72,
  2840  	0x64, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x6c, 0x66,
  2841  	0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,
  2842  	0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
  2843  	0x12, 0x36, 0x0a, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
  2844  	0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e,
  2845  	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x69, 0x74, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74,
  2846  	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f,
  2847  	0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x78,
  2848  	0x50, 0x61, 0x72, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x69, 0x6e, 0x66, 0x6c,
  2849  	0x69, 0x67, 0x68, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01,
  2850  	0x28, 0x08, 0x52, 0x11, 0x6e, 0x6f, 0x49, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70,
  2851  	0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x68, 0x61,
  2852  	0x72, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x15,
  2853  	0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x69,
  2854  	0x7a, 0x65, 0x4d, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x70, 0x18,
  2855  	0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6d, 0x70, 0x1a, 0x44, 0x0a, 0x16, 0x44, 0x65,
  2856  	0x73, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x45,
  2857  	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
  2858  	0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
  2859  	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
  2860  	0x22, 0x68, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
  2861  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65,
  2862  	0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70,
  2863  	0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x6f,
  2864  	0x5f, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
  2865  	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6e, 0x6f, 0x49, 0x6e, 0x66, 0x6c, 0x69,
  2866  	0x67, 0x68, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0x42, 0x0a, 0x0f, 0x52, 0x6f,
  2867  	0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
  2868  	0x04, 0x64, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x65, 0x73,
  2869  	0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6d, 0x74, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x02,
  2870  	0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x6d, 0x74, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x22, 0x68,
  2871  	0x0a, 0x10, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
  2872  	0x73, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65,
  2873  	0x65, 0x5f, 0x6d, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10,
  2874  	0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x4d, 0x61, 0x74, 0x6f, 0x6d, 0x73,
  2875  	0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65,
  2876  	0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x4c,
  2877  	0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x22, 0x5b, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64,
  2878  	0x54, 0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21,
  2879  	0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01,
  2880  	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73,
  2881  	0x68, 0x12, 0x22, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
  2882  	0x32, 0x0c, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05,
  2883  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x5b, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x52,
  2884  	0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08,
  2885  	0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08,
  2886  	0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c,
  2887  	0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6e, 0x72, 0x70,
  2888  	0x63, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75,
  2889  	0x72, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69,
  2890  	0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  2891  	0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
  2892  	0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
  2893  	0x1c, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43,
  2894  	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a,
  2895  	0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
  2896  	0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05,
  2897  	0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x6f,
  2898  	0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x48, 0x69, 0x73, 0x74,
  2899  	0x6f, 0x72, 0x79, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02,
  2900  	0x22, 0x62, 0x0a, 0x1c, 0x58, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69,
  2901  	0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  2902  	0x12, 0x2c, 0x0a, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
  2903  	0x16, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72,
  2904  	0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0x14,
  2905  	0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66,
  2906  	0x6f, 0x72, 0x63, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x58, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d,
  2907  	0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73,
  2908  	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x69, 0x72, 0x48, 0x69,
  2909  	0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x72,
  2910  	0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x46, 0x72,
  2911  	0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20,
  2912  	0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x12, 0x2d, 0x0a, 0x07, 0x68,
  2913  	0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72,
  2914  	0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x44, 0x61, 0x74,
  2915  	0x61, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04,
  2916  	0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06,
  2917  	0x10, 0x07, 0x22, 0xfa, 0x01, 0x0a, 0x08, 0x50, 0x61, 0x69, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12,
  2918  	0x1b, 0x0a, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
  2919  	0x28, 0x03, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e,
  2920  	0x66, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x02,
  2921  	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x41, 0x6d, 0x74, 0x41, 0x74, 0x6f,
  2922  	0x6d, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x6d,
  2923  	0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x66, 0x61,
  2924  	0x69, 0x6c, 0x41, 0x6d, 0x74, 0x4d, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73,
  2925  	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
  2926  	0x03, 0x52, 0x0b, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a,
  2927  	0x0a, 0x11, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x61, 0x74,
  2928  	0x6f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x75, 0x63, 0x63, 0x65,
  2929  	0x73, 0x73, 0x41, 0x6d, 0x74, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x75,
  2930  	0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x5f, 0x61, 0x74, 0x6f, 0x6d,
  2931  	0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
  2932  	0x41, 0x6d, 0x74, 0x4d, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22,
  2933  	0x20, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
  2934  	0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
  2935  	0x74, 0x22, 0x5a, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43,
  2936  	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70,
  2937  	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01,
  2938  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63,
  2939  	0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43,
  2940  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x59, 0x0a,
  2941  	0x1e, 0x53, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72,
  2942  	0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
  2943  	0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2944  	0x1f, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x69, 0x73, 0x73,
  2945  	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  2946  	0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x4d,
  2947  	0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e,
  2948  	0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x14,
  2949  	0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f,
  2950  	0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x6c, 0x69, 0x66,
  2951  	0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
  2952  	0x0f, 0x68, 0x61, 0x6c, 0x66, 0x4c, 0x69, 0x66, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
  2953  	0x12, 0x27, 0x0a, 0x0f, 0x68, 0x6f, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c,
  2954  	0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x68, 0x6f, 0x70, 0x50, 0x72,
  2955  	0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69,
  2956  	0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68,
  2957  	0x74, 0x12, 0x36, 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x79,
  2958  	0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01,
  2959  	0x28, 0x0d, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x79, 0x6d, 0x65,
  2960  	0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x69, 0x6e,
  2961  	0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x6c,
  2962  	0x61, 0x78, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28,
  2963  	0x04, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72,
  2964  	0x65, 0x52, 0x65, 0x6c, 0x61, 0x78, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x6f,
  2965  	0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69,
  2966  	0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x6f,
  2967  	0x6d, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x72,
  2968  	0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6f, 0x5f, 0x6e, 0x6f, 0x64,
  2969  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x6f, 0x4e, 0x6f, 0x64, 0x65, 0x12,
  2970  	0x1e, 0x0a, 0x0b, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x03,
  2971  	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x6d, 0x74, 0x4d, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x22,
  2972  	0x6b, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c,
  2973  	0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70,
  2974  	0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01,
  2975  	0x52, 0x0b, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2d, 0x0a,
  2976  	0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
  2977  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x44,
  2978  	0x61, 0x74, 0x61, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xcf, 0x01, 0x0a,
  2979  	0x11, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
  2980  	0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x5f, 0x61, 0x74, 0x6f, 0x6d,
  2981  	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x6d, 0x74, 0x4d, 0x41, 0x74, 0x6f,
  2982  	0x6d, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x74, 0x76,
  2983  	0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x69,
  2984  	0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x74, 0x76, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x10,
  2985  	0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64,
  2986  	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x67,
  2987  	0x6f, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f,
  2988  	0x70, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52,
  2989  	0x0a, 0x68, 0x6f, 0x70, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70,
  2990  	0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
  2991  	0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x22, 0x38,
  2992  	0x0a, 0x12, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
  2993  	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20,
  2994  	0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74,
  2995  	0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x75, 0x62, 0x73,
  2996  	0x63, 0x72, 0x69, 0x62, 0x65, 0x48, 0x74, 0x6c, 0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
  2997  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf6, 0x04, 0x0a, 0x09, 0x48, 0x74, 0x6c, 0x63, 0x45,
  2998  	0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
  2999  	0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
  3000  	0x04, 0x52, 0x11, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e,
  3001  	0x65, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67,
  3002  	0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
  3003  	0x04, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e,
  3004  	0x65, 0x6c, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
  3005  	0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e,
  3006  	0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x64, 0x12, 0x28,
  3007  	0x0a, 0x10, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f,
  3008  	0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
  3009  	0x6e, 0x67, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65,
  3010  	0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b,
  3011  	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x3d, 0x0a, 0x0a, 0x65,
  3012  	0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
  3013  	0x1e, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x74, 0x6c, 0x63,
  3014  	0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
  3015  	0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x66, 0x6f,
  3016  	0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
  3017  	0x0b, 0x32, 0x17, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f,
  3018  	0x72, 0x77, 0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x6f,
  3019  	0x72, 0x77, 0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x12, 0x66, 0x6f,
  3020  	0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74,
  3021  	0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72,
  3022  	0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x45, 0x76,
  3023  	0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x61,
  3024  	0x69, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x74, 0x6c,
  3025  	0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
  3026  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65,
  3027  	0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x45,
  3028  	0x76, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x66, 0x61, 0x69,
  3029  	0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
  3030  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x46, 0x61,
  3031  	0x69, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, 0x46,
  3032  	0x61, 0x69, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x3c, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e,
  3033  	0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
  3034  	0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
  3035  	0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4f, 0x52,
  3036  	0x57, 0x41, 0x52, 0x44, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22,
  3037  	0xc6, 0x01, 0x0a, 0x08, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x11,
  3038  	0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x6f, 0x63,
  3039  	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e,
  3040  	0x67, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x75, 0x74,
  3041  	0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02,
  3042  	0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x69,
  3043  	0x6d, 0x65, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2f, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69,
  3044  	0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x03,
  3045  	0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x41, 0x6d,
  3046  	0x74, 0x4d, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x67, 0x6f,
  3047  	0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x6d, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18,
  3048  	0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x41,
  3049  	0x6d, 0x74, 0x4d, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x22, 0x37, 0x0a, 0x0c, 0x46, 0x6f, 0x72, 0x77,
  3050  	0x61, 0x72, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f,
  3051  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72,
  3052  	0x70, 0x63, 0x2e, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66,
  3053  	0x6f, 0x22, 0x12, 0x0a, 0x10, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x61, 0x69, 0x6c,
  3054  	0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x45,
  3055  	0x76, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65,
  3056  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65,
  3057  	0x22, 0xdf, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x6e, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x45, 0x76, 0x65,
  3058  	0x6e, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
  3059  	0x32, 0x13, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x74, 0x6c,
  3060  	0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x0c, 0x77,
  3061  	0x69, 0x72, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
  3062  	0x0e, 0x32, 0x1a, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72,
  3063  	0x65, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x77,
  3064  	0x69, 0x72, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x66, 0x61,
  3065  	0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01,
  3066  	0x28, 0x0e, 0x32, 0x18, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x46,
  3067  	0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0d, 0x66, 0x61,
  3068  	0x69, 0x6c, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x66,
  3069  	0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20,
  3070  	0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x53, 0x74, 0x72, 0x69,
  3071  	0x6e, 0x67, 0x22, 0x8a, 0x01, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74,
  3072  	0x61, 0x74, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20,
  3073  	0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e,
  3074  	0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
  3075  	0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18,
  3076  	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12,
  3077  	0x28, 0x0a, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
  3078  	0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x54, 0x4c, 0x43, 0x41, 0x74, 0x74, 0x65, 0x6d,
  3079  	0x70, 0x74, 0x52, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22,
  3080  	0x3e, 0x0a, 0x0a, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a,
  3081  	0x07, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06,
  3082  	0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69,
  3083  	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x74, 0x6c, 0x63, 0x49, 0x64, 0x22,
  3084  	0xc9, 0x04, 0x0a, 0x1b, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x49,
  3085  	0x6e, 0x74, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
  3086  	0x47, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x69, 0x72, 0x63,
  3087  	0x75, 0x69, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
  3088  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69,
  3089  	0x74, 0x4b, 0x65, 0x79, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x69,
  3090  	0x72, 0x63, 0x75, 0x69, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6f,
  3091  	0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x5f, 0x61, 0x74,
  3092  	0x6f, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x69, 0x6e, 0x63, 0x6f, 0x6d,
  3093  	0x69, 0x6e, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x12,
  3094  	0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x69,
  3095  	0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69,
  3096  	0x6e, 0x67, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d,
  3097  	0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b,
  3098  	0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3b, 0x0a, 0x1a, 0x6f,
  3099  	0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65,
  3100  	0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52,
  3101  	0x17, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  3102  	0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x6f, 0x75, 0x74, 0x67,
  3103  	0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x5f, 0x61, 0x74,
  3104  	0x6f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x6f, 0x75, 0x74, 0x67, 0x6f,
  3105  	0x69, 0x6e, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x12,
  3106  	0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x69,
  3107  	0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69,
  3108  	0x6e, 0x67, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x60, 0x0a, 0x0e, 0x63, 0x75, 0x73, 0x74,
  3109  	0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
  3110  	0x32, 0x39, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72,
  3111  	0x77, 0x61, 0x72, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x65, 0x70,
  3112  	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52,
  3113  	0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x63, 0x75, 0x73,
  3114  	0x74, 0x6f, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e,
  3115  	0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09,
  3116  	0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x1a, 0x40, 0x0a, 0x12, 0x43, 0x75, 0x73,
  3117  	0x74, 0x6f, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
  3118  	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65,
  3119  	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
  3120  	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc0, 0x01, 0x0a, 0x1c,
  3121  	0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72,
  3122  	0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x14,
  3123  	0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74,
  3124  	0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x6f, 0x75,
  3125  	0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x4b, 0x65,
  3126  	0x79, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x72, 0x63, 0x75,
  3127  	0x69, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
  3128  	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70,
  3129  	0x63, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x48, 0x6f, 0x6c, 0x64, 0x46, 0x6f, 0x72,
  3130  	0x77, 0x61, 0x72, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69,
  3131  	0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03,
  3132  	0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x82,
  3133  	0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61,
  3134  	0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x68,
  3135  	0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
  3136  	0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f,
  3137  	0x69, 0x6e, 0x74, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x33,
  3138  	0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b,
  3139  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x53,
  3140  	0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74,
  3141  	0x69, 0x6f, 0x6e, 0x22, 0x1a, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61,
  3142  	0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a,
  3143  	0x81, 0x04, 0x0a, 0x0d, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69,
  3144  	0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d,
  3145  	0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x10, 0x01, 0x12, 0x10, 0x0a,
  3146  	0x0c, 0x4f, 0x4e, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12,
  3147  	0x15, 0x0a, 0x11, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x4c, 0x49, 0x47,
  3148  	0x49, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41,
  3149  	0x49, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10,
  3150  	0x48, 0x54, 0x4c, 0x43, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x4d, 0x41, 0x58,
  3151  	0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x53, 0x55, 0x46, 0x46, 0x49, 0x43, 0x49, 0x45,
  3152  	0x4e, 0x54, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12,
  3153  	0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41,
  3154  	0x52, 0x44, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x48, 0x54, 0x4c, 0x43, 0x5f, 0x41, 0x44, 0x44,
  3155  	0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x4f, 0x52,
  3156  	0x57, 0x41, 0x52, 0x44, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x09,
  3157  	0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43,
  3158  	0x45, 0x4c, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43,
  3159  	0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x52, 0x50, 0x41, 0x49, 0x44, 0x10, 0x0b, 0x12, 0x1b, 0x0a,
  3160  	0x17, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x59, 0x5f,
  3161  	0x54, 0x4f, 0x4f, 0x5f, 0x53, 0x4f, 0x4f, 0x4e, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e,
  3162  	0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x0d,
  3163  	0x12, 0x17, 0x0a, 0x13, 0x4d, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f,
  3164  	0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x44, 0x44,
  3165  	0x52, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x0f, 0x12,
  3166  	0x16, 0x0a, 0x12, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x4d, 0x49, 0x53,
  3167  	0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x10, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x54, 0x5f, 0x54,
  3168  	0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x11, 0x12, 0x10,
  3169  	0x0a, 0x0c, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x50, 0x41, 0x49, 0x44, 0x10, 0x12,
  3170  	0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x4f,
  3171  	0x49, 0x43, 0x45, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44,
  3172  	0x5f, 0x4b, 0x45, 0x59, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x50,
  3173  	0x50, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x15, 0x12,
  3174  	0x12, 0x0a, 0x0e, 0x43, 0x49, 0x52, 0x43, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x52, 0x4f, 0x55, 0x54,
  3175  	0x45, 0x10, 0x16, 0x2a, 0xae, 0x01, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53,
  3176  	0x74, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x5f, 0x46, 0x4c, 0x49, 0x47, 0x48,
  3177  	0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44,
  3178  	0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x49, 0x4d,
  3179  	0x45, 0x4f, 0x55, 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44,
  3180  	0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x46,
  3181  	0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x24, 0x0a,
  3182  	0x20, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43,
  3183  	0x54, 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c,
  3184  	0x53, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x49, 0x4e,
  3185  	0x53, 0x55, 0x46, 0x46, 0x49, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e,
  3186  	0x43, 0x45, 0x10, 0x06, 0x2a, 0x3c, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x48,
  3187  	0x6f, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  3188  	0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x54, 0x54, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04,
  3189  	0x46, 0x41, 0x49, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x53, 0x55, 0x4d, 0x45,
  3190  	0x10, 0x02, 0x2a, 0x35, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
  3191  	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45,
  3192  	0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12,
  3193  	0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x02, 0x32, 0xf1, 0x0b, 0x0a, 0x06, 0x52, 0x6f,
  3194  	0x75, 0x74, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d,
  3195  	0x65, 0x6e, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70,
  3196  	0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71,
  3197  	0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x79,
  3198  	0x6d, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50,
  3199  	0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x32, 0x12, 0x1e, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
  3200  	0x72, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
  3201  	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x6c, 0x6e, 0x72, 0x70, 0x63,
  3202  	0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x10, 0x45, 0x73,
  3203  	0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x12, 0x1a,
  3204  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65,
  3205  	0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x6f, 0x75,
  3206  	0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x46, 0x65, 0x65, 0x52,
  3207  	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x54,
  3208  	0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72,
  3209  	0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65,
  3210  	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70,
  3211  	0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73,
  3212  	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x42, 0x0a, 0x0d, 0x53, 0x65,
  3213  	0x6e, 0x64, 0x54, 0x6f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x72, 0x6f,
  3214  	0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x52, 0x6f,
  3215  	0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6c, 0x6e, 0x72,
  3216  	0x70, 0x63, 0x2e, 0x48, 0x54, 0x4c, 0x43, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x64,
  3217  	0x0a, 0x13, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
  3218  	0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x25, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70,
  3219  	0x63, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
  3220  	0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72,
  3221  	0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4d, 0x69,
  3222  	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70,
  3223  	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73,
  3224  	0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x25, 0x2e, 0x72, 0x6f,
  3225  	0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73,
  3226  	0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
  3227  	0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x51,
  3228  	0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72,
  3229  	0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x15, 0x58, 0x49,
  3230  	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74,
  3231  	0x72, 0x6f, 0x6c, 0x12, 0x27, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e,
  3232  	0x58, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
  3233  	0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72,
  3234  	0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x58, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
  3235  	0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65,
  3236  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x73,
  3237  	0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  3238  	0x67, 0x12, 0x29, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65,
  3239  	0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43,
  3240  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72,
  3241  	0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73,
  3242  	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  3243  	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x4d,
  3244  	0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e,
  3245  	0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e,
  3246  	0x53, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
  3247  	0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a,
  3248  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x69,
  3249  	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66,
  3250  	0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x51, 0x75,
  3251  	0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x22,
  3252  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
  3253  	0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
  3254  	0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x51,
  3255  	0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52,
  3256  	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64,
  3257  	0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70,
  3258  	0x63, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
  3259  	0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e,
  3260  	0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
  3261  	0x73, 0x65, 0x12, 0x54, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x48,
  3262  	0x74, 0x6c, 0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x72, 0x6f, 0x75, 0x74,
  3263  	0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x48,
  3264  	0x74, 0x6c, 0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  3265  	0x1a, 0x14, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x74, 0x6c,
  3266  	0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64,
  3267  	0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
  3268  	0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52,
  3269  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72,
  3270  	0x70, 0x63, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
  3271  	0x22, 0x03, 0x88, 0x02, 0x01, 0x30, 0x01, 0x12, 0x4f, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63, 0x6b,
  3272  	0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
  3273  	0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
  3274  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
  3275  	0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
  3276  	0x73, 0x22, 0x03, 0x88, 0x02, 0x01, 0x30, 0x01, 0x12, 0x66, 0x0a, 0x0f, 0x48, 0x74, 0x6c, 0x63,
  3277  	0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x2e, 0x72, 0x6f,
  3278  	0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x48,
  3279  	0x74, 0x6c, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70,
  3280  	0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x26, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63,
  3281  	0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x74, 0x65,
  3282  	0x72, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x28, 0x01, 0x30, 0x01,
  3283  	0x12, 0x5b, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74,
  3284  	0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63,
  3285  	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
  3286  	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
  3287  	0x72, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x53,
  3288  	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2a, 0x5a,
  3289  	0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x63, 0x72,
  3290  	0x65, 0x64, 0x2f, 0x64, 0x63, 0x72, 0x6c, 0x6e, 0x64, 0x2f, 0x6c, 0x6e, 0x72, 0x70, 0x63, 0x2f,
  3291  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  3292  	0x33,
  3293  }
  3294  
  3295  var (
  3296  	file_routerrpc_router_proto_rawDescOnce sync.Once
  3297  	file_routerrpc_router_proto_rawDescData = file_routerrpc_router_proto_rawDesc
  3298  )
  3299  
  3300  func file_routerrpc_router_proto_rawDescGZIP() []byte {
  3301  	file_routerrpc_router_proto_rawDescOnce.Do(func() {
  3302  		file_routerrpc_router_proto_rawDescData = protoimpl.X.CompressGZIP(file_routerrpc_router_proto_rawDescData)
  3303  	})
  3304  	return file_routerrpc_router_proto_rawDescData
  3305  }
  3306  
  3307  var file_routerrpc_router_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
  3308  var file_routerrpc_router_proto_msgTypes = make([]protoimpl.MessageInfo, 38)
  3309  var file_routerrpc_router_proto_goTypes = []interface{}{
  3310  	(FailureDetail)(0),                      // 0: routerrpc.FailureDetail
  3311  	(PaymentState)(0),                       // 1: routerrpc.PaymentState
  3312  	(ResolveHoldForwardAction)(0),           // 2: routerrpc.ResolveHoldForwardAction
  3313  	(ChanStatusAction)(0),                   // 3: routerrpc.ChanStatusAction
  3314  	(HtlcEvent_EventType)(0),                // 4: routerrpc.HtlcEvent.EventType
  3315  	(*SendPaymentRequest)(nil),              // 5: routerrpc.SendPaymentRequest
  3316  	(*TrackPaymentRequest)(nil),             // 6: routerrpc.TrackPaymentRequest
  3317  	(*RouteFeeRequest)(nil),                 // 7: routerrpc.RouteFeeRequest
  3318  	(*RouteFeeResponse)(nil),                // 8: routerrpc.RouteFeeResponse
  3319  	(*SendToRouteRequest)(nil),              // 9: routerrpc.SendToRouteRequest
  3320  	(*SendToRouteResponse)(nil),             // 10: routerrpc.SendToRouteResponse
  3321  	(*ResetMissionControlRequest)(nil),      // 11: routerrpc.ResetMissionControlRequest
  3322  	(*ResetMissionControlResponse)(nil),     // 12: routerrpc.ResetMissionControlResponse
  3323  	(*QueryMissionControlRequest)(nil),      // 13: routerrpc.QueryMissionControlRequest
  3324  	(*QueryMissionControlResponse)(nil),     // 14: routerrpc.QueryMissionControlResponse
  3325  	(*XImportMissionControlRequest)(nil),    // 15: routerrpc.XImportMissionControlRequest
  3326  	(*XImportMissionControlResponse)(nil),   // 16: routerrpc.XImportMissionControlResponse
  3327  	(*PairHistory)(nil),                     // 17: routerrpc.PairHistory
  3328  	(*PairData)(nil),                        // 18: routerrpc.PairData
  3329  	(*GetMissionControlConfigRequest)(nil),  // 19: routerrpc.GetMissionControlConfigRequest
  3330  	(*GetMissionControlConfigResponse)(nil), // 20: routerrpc.GetMissionControlConfigResponse
  3331  	(*SetMissionControlConfigRequest)(nil),  // 21: routerrpc.SetMissionControlConfigRequest
  3332  	(*SetMissionControlConfigResponse)(nil), // 22: routerrpc.SetMissionControlConfigResponse
  3333  	(*MissionControlConfig)(nil),            // 23: routerrpc.MissionControlConfig
  3334  	(*QueryProbabilityRequest)(nil),         // 24: routerrpc.QueryProbabilityRequest
  3335  	(*QueryProbabilityResponse)(nil),        // 25: routerrpc.QueryProbabilityResponse
  3336  	(*BuildRouteRequest)(nil),               // 26: routerrpc.BuildRouteRequest
  3337  	(*BuildRouteResponse)(nil),              // 27: routerrpc.BuildRouteResponse
  3338  	(*SubscribeHtlcEventsRequest)(nil),      // 28: routerrpc.SubscribeHtlcEventsRequest
  3339  	(*HtlcEvent)(nil),                       // 29: routerrpc.HtlcEvent
  3340  	(*HtlcInfo)(nil),                        // 30: routerrpc.HtlcInfo
  3341  	(*ForwardEvent)(nil),                    // 31: routerrpc.ForwardEvent
  3342  	(*ForwardFailEvent)(nil),                // 32: routerrpc.ForwardFailEvent
  3343  	(*SettleEvent)(nil),                     // 33: routerrpc.SettleEvent
  3344  	(*LinkFailEvent)(nil),                   // 34: routerrpc.LinkFailEvent
  3345  	(*PaymentStatus)(nil),                   // 35: routerrpc.PaymentStatus
  3346  	(*CircuitKey)(nil),                      // 36: routerrpc.CircuitKey
  3347  	(*ForwardHtlcInterceptRequest)(nil),     // 37: routerrpc.ForwardHtlcInterceptRequest
  3348  	(*ForwardHtlcInterceptResponse)(nil),    // 38: routerrpc.ForwardHtlcInterceptResponse
  3349  	(*UpdateChanStatusRequest)(nil),         // 39: routerrpc.UpdateChanStatusRequest
  3350  	(*UpdateChanStatusResponse)(nil),        // 40: routerrpc.UpdateChanStatusResponse
  3351  	nil,                                     // 41: routerrpc.SendPaymentRequest.DestCustomRecordsEntry
  3352  	nil,                                     // 42: routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry
  3353  	(*lnrpc.RouteHint)(nil),                 // 43: lnrpc.RouteHint
  3354  	(lnrpc.FeatureBit)(0),                   // 44: lnrpc.FeatureBit
  3355  	(*lnrpc.Route)(nil),                     // 45: lnrpc.Route
  3356  	(*lnrpc.Failure)(nil),                   // 46: lnrpc.Failure
  3357  	(lnrpc.Failure_FailureCode)(0),          // 47: lnrpc.Failure.FailureCode
  3358  	(*lnrpc.HTLCAttempt)(nil),               // 48: lnrpc.HTLCAttempt
  3359  	(*lnrpc.ChannelPoint)(nil),              // 49: lnrpc.ChannelPoint
  3360  	(*lnrpc.Payment)(nil),                   // 50: lnrpc.Payment
  3361  }
  3362  var file_routerrpc_router_proto_depIdxs = []int32{
  3363  	43, // 0: routerrpc.SendPaymentRequest.route_hints:type_name -> lnrpc.RouteHint
  3364  	41, // 1: routerrpc.SendPaymentRequest.dest_custom_records:type_name -> routerrpc.SendPaymentRequest.DestCustomRecordsEntry
  3365  	44, // 2: routerrpc.SendPaymentRequest.dest_features:type_name -> lnrpc.FeatureBit
  3366  	45, // 3: routerrpc.SendToRouteRequest.route:type_name -> lnrpc.Route
  3367  	46, // 4: routerrpc.SendToRouteResponse.failure:type_name -> lnrpc.Failure
  3368  	17, // 5: routerrpc.QueryMissionControlResponse.pairs:type_name -> routerrpc.PairHistory
  3369  	17, // 6: routerrpc.XImportMissionControlRequest.pairs:type_name -> routerrpc.PairHistory
  3370  	18, // 7: routerrpc.PairHistory.history:type_name -> routerrpc.PairData
  3371  	23, // 8: routerrpc.GetMissionControlConfigResponse.config:type_name -> routerrpc.MissionControlConfig
  3372  	23, // 9: routerrpc.SetMissionControlConfigRequest.config:type_name -> routerrpc.MissionControlConfig
  3373  	18, // 10: routerrpc.QueryProbabilityResponse.history:type_name -> routerrpc.PairData
  3374  	45, // 11: routerrpc.BuildRouteResponse.route:type_name -> lnrpc.Route
  3375  	4,  // 12: routerrpc.HtlcEvent.event_type:type_name -> routerrpc.HtlcEvent.EventType
  3376  	31, // 13: routerrpc.HtlcEvent.forward_event:type_name -> routerrpc.ForwardEvent
  3377  	32, // 14: routerrpc.HtlcEvent.forward_fail_event:type_name -> routerrpc.ForwardFailEvent
  3378  	33, // 15: routerrpc.HtlcEvent.settle_event:type_name -> routerrpc.SettleEvent
  3379  	34, // 16: routerrpc.HtlcEvent.link_fail_event:type_name -> routerrpc.LinkFailEvent
  3380  	30, // 17: routerrpc.ForwardEvent.info:type_name -> routerrpc.HtlcInfo
  3381  	30, // 18: routerrpc.LinkFailEvent.info:type_name -> routerrpc.HtlcInfo
  3382  	47, // 19: routerrpc.LinkFailEvent.wire_failure:type_name -> lnrpc.Failure.FailureCode
  3383  	0,  // 20: routerrpc.LinkFailEvent.failure_detail:type_name -> routerrpc.FailureDetail
  3384  	1,  // 21: routerrpc.PaymentStatus.state:type_name -> routerrpc.PaymentState
  3385  	48, // 22: routerrpc.PaymentStatus.htlcs:type_name -> lnrpc.HTLCAttempt
  3386  	36, // 23: routerrpc.ForwardHtlcInterceptRequest.incoming_circuit_key:type_name -> routerrpc.CircuitKey
  3387  	42, // 24: routerrpc.ForwardHtlcInterceptRequest.custom_records:type_name -> routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry
  3388  	36, // 25: routerrpc.ForwardHtlcInterceptResponse.incoming_circuit_key:type_name -> routerrpc.CircuitKey
  3389  	2,  // 26: routerrpc.ForwardHtlcInterceptResponse.action:type_name -> routerrpc.ResolveHoldForwardAction
  3390  	49, // 27: routerrpc.UpdateChanStatusRequest.chan_point:type_name -> lnrpc.ChannelPoint
  3391  	3,  // 28: routerrpc.UpdateChanStatusRequest.action:type_name -> routerrpc.ChanStatusAction
  3392  	5,  // 29: routerrpc.Router.SendPaymentV2:input_type -> routerrpc.SendPaymentRequest
  3393  	6,  // 30: routerrpc.Router.TrackPaymentV2:input_type -> routerrpc.TrackPaymentRequest
  3394  	7,  // 31: routerrpc.Router.EstimateRouteFee:input_type -> routerrpc.RouteFeeRequest
  3395  	9,  // 32: routerrpc.Router.SendToRoute:input_type -> routerrpc.SendToRouteRequest
  3396  	9,  // 33: routerrpc.Router.SendToRouteV2:input_type -> routerrpc.SendToRouteRequest
  3397  	11, // 34: routerrpc.Router.ResetMissionControl:input_type -> routerrpc.ResetMissionControlRequest
  3398  	13, // 35: routerrpc.Router.QueryMissionControl:input_type -> routerrpc.QueryMissionControlRequest
  3399  	15, // 36: routerrpc.Router.XImportMissionControl:input_type -> routerrpc.XImportMissionControlRequest
  3400  	19, // 37: routerrpc.Router.GetMissionControlConfig:input_type -> routerrpc.GetMissionControlConfigRequest
  3401  	21, // 38: routerrpc.Router.SetMissionControlConfig:input_type -> routerrpc.SetMissionControlConfigRequest
  3402  	24, // 39: routerrpc.Router.QueryProbability:input_type -> routerrpc.QueryProbabilityRequest
  3403  	26, // 40: routerrpc.Router.BuildRoute:input_type -> routerrpc.BuildRouteRequest
  3404  	28, // 41: routerrpc.Router.SubscribeHtlcEvents:input_type -> routerrpc.SubscribeHtlcEventsRequest
  3405  	5,  // 42: routerrpc.Router.SendPayment:input_type -> routerrpc.SendPaymentRequest
  3406  	6,  // 43: routerrpc.Router.TrackPayment:input_type -> routerrpc.TrackPaymentRequest
  3407  	38, // 44: routerrpc.Router.HtlcInterceptor:input_type -> routerrpc.ForwardHtlcInterceptResponse
  3408  	39, // 45: routerrpc.Router.UpdateChanStatus:input_type -> routerrpc.UpdateChanStatusRequest
  3409  	50, // 46: routerrpc.Router.SendPaymentV2:output_type -> lnrpc.Payment
  3410  	50, // 47: routerrpc.Router.TrackPaymentV2:output_type -> lnrpc.Payment
  3411  	8,  // 48: routerrpc.Router.EstimateRouteFee:output_type -> routerrpc.RouteFeeResponse
  3412  	10, // 49: routerrpc.Router.SendToRoute:output_type -> routerrpc.SendToRouteResponse
  3413  	48, // 50: routerrpc.Router.SendToRouteV2:output_type -> lnrpc.HTLCAttempt
  3414  	12, // 51: routerrpc.Router.ResetMissionControl:output_type -> routerrpc.ResetMissionControlResponse
  3415  	14, // 52: routerrpc.Router.QueryMissionControl:output_type -> routerrpc.QueryMissionControlResponse
  3416  	16, // 53: routerrpc.Router.XImportMissionControl:output_type -> routerrpc.XImportMissionControlResponse
  3417  	20, // 54: routerrpc.Router.GetMissionControlConfig:output_type -> routerrpc.GetMissionControlConfigResponse
  3418  	22, // 55: routerrpc.Router.SetMissionControlConfig:output_type -> routerrpc.SetMissionControlConfigResponse
  3419  	25, // 56: routerrpc.Router.QueryProbability:output_type -> routerrpc.QueryProbabilityResponse
  3420  	27, // 57: routerrpc.Router.BuildRoute:output_type -> routerrpc.BuildRouteResponse
  3421  	29, // 58: routerrpc.Router.SubscribeHtlcEvents:output_type -> routerrpc.HtlcEvent
  3422  	35, // 59: routerrpc.Router.SendPayment:output_type -> routerrpc.PaymentStatus
  3423  	35, // 60: routerrpc.Router.TrackPayment:output_type -> routerrpc.PaymentStatus
  3424  	37, // 61: routerrpc.Router.HtlcInterceptor:output_type -> routerrpc.ForwardHtlcInterceptRequest
  3425  	40, // 62: routerrpc.Router.UpdateChanStatus:output_type -> routerrpc.UpdateChanStatusResponse
  3426  	46, // [46:63] is the sub-list for method output_type
  3427  	29, // [29:46] is the sub-list for method input_type
  3428  	29, // [29:29] is the sub-list for extension type_name
  3429  	29, // [29:29] is the sub-list for extension extendee
  3430  	0,  // [0:29] is the sub-list for field type_name
  3431  }
  3432  
  3433  func init() { file_routerrpc_router_proto_init() }
  3434  func file_routerrpc_router_proto_init() {
  3435  	if File_routerrpc_router_proto != nil {
  3436  		return
  3437  	}
  3438  	if !protoimpl.UnsafeEnabled {
  3439  		file_routerrpc_router_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  3440  			switch v := v.(*SendPaymentRequest); i {
  3441  			case 0:
  3442  				return &v.state
  3443  			case 1:
  3444  				return &v.sizeCache
  3445  			case 2:
  3446  				return &v.unknownFields
  3447  			default:
  3448  				return nil
  3449  			}
  3450  		}
  3451  		file_routerrpc_router_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  3452  			switch v := v.(*TrackPaymentRequest); i {
  3453  			case 0:
  3454  				return &v.state
  3455  			case 1:
  3456  				return &v.sizeCache
  3457  			case 2:
  3458  				return &v.unknownFields
  3459  			default:
  3460  				return nil
  3461  			}
  3462  		}
  3463  		file_routerrpc_router_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  3464  			switch v := v.(*RouteFeeRequest); i {
  3465  			case 0:
  3466  				return &v.state
  3467  			case 1:
  3468  				return &v.sizeCache
  3469  			case 2:
  3470  				return &v.unknownFields
  3471  			default:
  3472  				return nil
  3473  			}
  3474  		}
  3475  		file_routerrpc_router_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  3476  			switch v := v.(*RouteFeeResponse); i {
  3477  			case 0:
  3478  				return &v.state
  3479  			case 1:
  3480  				return &v.sizeCache
  3481  			case 2:
  3482  				return &v.unknownFields
  3483  			default:
  3484  				return nil
  3485  			}
  3486  		}
  3487  		file_routerrpc_router_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  3488  			switch v := v.(*SendToRouteRequest); i {
  3489  			case 0:
  3490  				return &v.state
  3491  			case 1:
  3492  				return &v.sizeCache
  3493  			case 2:
  3494  				return &v.unknownFields
  3495  			default:
  3496  				return nil
  3497  			}
  3498  		}
  3499  		file_routerrpc_router_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  3500  			switch v := v.(*SendToRouteResponse); i {
  3501  			case 0:
  3502  				return &v.state
  3503  			case 1:
  3504  				return &v.sizeCache
  3505  			case 2:
  3506  				return &v.unknownFields
  3507  			default:
  3508  				return nil
  3509  			}
  3510  		}
  3511  		file_routerrpc_router_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  3512  			switch v := v.(*ResetMissionControlRequest); i {
  3513  			case 0:
  3514  				return &v.state
  3515  			case 1:
  3516  				return &v.sizeCache
  3517  			case 2:
  3518  				return &v.unknownFields
  3519  			default:
  3520  				return nil
  3521  			}
  3522  		}
  3523  		file_routerrpc_router_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  3524  			switch v := v.(*ResetMissionControlResponse); i {
  3525  			case 0:
  3526  				return &v.state
  3527  			case 1:
  3528  				return &v.sizeCache
  3529  			case 2:
  3530  				return &v.unknownFields
  3531  			default:
  3532  				return nil
  3533  			}
  3534  		}
  3535  		file_routerrpc_router_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  3536  			switch v := v.(*QueryMissionControlRequest); i {
  3537  			case 0:
  3538  				return &v.state
  3539  			case 1:
  3540  				return &v.sizeCache
  3541  			case 2:
  3542  				return &v.unknownFields
  3543  			default:
  3544  				return nil
  3545  			}
  3546  		}
  3547  		file_routerrpc_router_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  3548  			switch v := v.(*QueryMissionControlResponse); i {
  3549  			case 0:
  3550  				return &v.state
  3551  			case 1:
  3552  				return &v.sizeCache
  3553  			case 2:
  3554  				return &v.unknownFields
  3555  			default:
  3556  				return nil
  3557  			}
  3558  		}
  3559  		file_routerrpc_router_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  3560  			switch v := v.(*XImportMissionControlRequest); i {
  3561  			case 0:
  3562  				return &v.state
  3563  			case 1:
  3564  				return &v.sizeCache
  3565  			case 2:
  3566  				return &v.unknownFields
  3567  			default:
  3568  				return nil
  3569  			}
  3570  		}
  3571  		file_routerrpc_router_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  3572  			switch v := v.(*XImportMissionControlResponse); i {
  3573  			case 0:
  3574  				return &v.state
  3575  			case 1:
  3576  				return &v.sizeCache
  3577  			case 2:
  3578  				return &v.unknownFields
  3579  			default:
  3580  				return nil
  3581  			}
  3582  		}
  3583  		file_routerrpc_router_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  3584  			switch v := v.(*PairHistory); i {
  3585  			case 0:
  3586  				return &v.state
  3587  			case 1:
  3588  				return &v.sizeCache
  3589  			case 2:
  3590  				return &v.unknownFields
  3591  			default:
  3592  				return nil
  3593  			}
  3594  		}
  3595  		file_routerrpc_router_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  3596  			switch v := v.(*PairData); i {
  3597  			case 0:
  3598  				return &v.state
  3599  			case 1:
  3600  				return &v.sizeCache
  3601  			case 2:
  3602  				return &v.unknownFields
  3603  			default:
  3604  				return nil
  3605  			}
  3606  		}
  3607  		file_routerrpc_router_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  3608  			switch v := v.(*GetMissionControlConfigRequest); i {
  3609  			case 0:
  3610  				return &v.state
  3611  			case 1:
  3612  				return &v.sizeCache
  3613  			case 2:
  3614  				return &v.unknownFields
  3615  			default:
  3616  				return nil
  3617  			}
  3618  		}
  3619  		file_routerrpc_router_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  3620  			switch v := v.(*GetMissionControlConfigResponse); i {
  3621  			case 0:
  3622  				return &v.state
  3623  			case 1:
  3624  				return &v.sizeCache
  3625  			case 2:
  3626  				return &v.unknownFields
  3627  			default:
  3628  				return nil
  3629  			}
  3630  		}
  3631  		file_routerrpc_router_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
  3632  			switch v := v.(*SetMissionControlConfigRequest); i {
  3633  			case 0:
  3634  				return &v.state
  3635  			case 1:
  3636  				return &v.sizeCache
  3637  			case 2:
  3638  				return &v.unknownFields
  3639  			default:
  3640  				return nil
  3641  			}
  3642  		}
  3643  		file_routerrpc_router_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
  3644  			switch v := v.(*SetMissionControlConfigResponse); i {
  3645  			case 0:
  3646  				return &v.state
  3647  			case 1:
  3648  				return &v.sizeCache
  3649  			case 2:
  3650  				return &v.unknownFields
  3651  			default:
  3652  				return nil
  3653  			}
  3654  		}
  3655  		file_routerrpc_router_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
  3656  			switch v := v.(*MissionControlConfig); i {
  3657  			case 0:
  3658  				return &v.state
  3659  			case 1:
  3660  				return &v.sizeCache
  3661  			case 2:
  3662  				return &v.unknownFields
  3663  			default:
  3664  				return nil
  3665  			}
  3666  		}
  3667  		file_routerrpc_router_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
  3668  			switch v := v.(*QueryProbabilityRequest); i {
  3669  			case 0:
  3670  				return &v.state
  3671  			case 1:
  3672  				return &v.sizeCache
  3673  			case 2:
  3674  				return &v.unknownFields
  3675  			default:
  3676  				return nil
  3677  			}
  3678  		}
  3679  		file_routerrpc_router_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
  3680  			switch v := v.(*QueryProbabilityResponse); i {
  3681  			case 0:
  3682  				return &v.state
  3683  			case 1:
  3684  				return &v.sizeCache
  3685  			case 2:
  3686  				return &v.unknownFields
  3687  			default:
  3688  				return nil
  3689  			}
  3690  		}
  3691  		file_routerrpc_router_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
  3692  			switch v := v.(*BuildRouteRequest); i {
  3693  			case 0:
  3694  				return &v.state
  3695  			case 1:
  3696  				return &v.sizeCache
  3697  			case 2:
  3698  				return &v.unknownFields
  3699  			default:
  3700  				return nil
  3701  			}
  3702  		}
  3703  		file_routerrpc_router_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
  3704  			switch v := v.(*BuildRouteResponse); i {
  3705  			case 0:
  3706  				return &v.state
  3707  			case 1:
  3708  				return &v.sizeCache
  3709  			case 2:
  3710  				return &v.unknownFields
  3711  			default:
  3712  				return nil
  3713  			}
  3714  		}
  3715  		file_routerrpc_router_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
  3716  			switch v := v.(*SubscribeHtlcEventsRequest); i {
  3717  			case 0:
  3718  				return &v.state
  3719  			case 1:
  3720  				return &v.sizeCache
  3721  			case 2:
  3722  				return &v.unknownFields
  3723  			default:
  3724  				return nil
  3725  			}
  3726  		}
  3727  		file_routerrpc_router_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
  3728  			switch v := v.(*HtlcEvent); i {
  3729  			case 0:
  3730  				return &v.state
  3731  			case 1:
  3732  				return &v.sizeCache
  3733  			case 2:
  3734  				return &v.unknownFields
  3735  			default:
  3736  				return nil
  3737  			}
  3738  		}
  3739  		file_routerrpc_router_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
  3740  			switch v := v.(*HtlcInfo); i {
  3741  			case 0:
  3742  				return &v.state
  3743  			case 1:
  3744  				return &v.sizeCache
  3745  			case 2:
  3746  				return &v.unknownFields
  3747  			default:
  3748  				return nil
  3749  			}
  3750  		}
  3751  		file_routerrpc_router_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
  3752  			switch v := v.(*ForwardEvent); i {
  3753  			case 0:
  3754  				return &v.state
  3755  			case 1:
  3756  				return &v.sizeCache
  3757  			case 2:
  3758  				return &v.unknownFields
  3759  			default:
  3760  				return nil
  3761  			}
  3762  		}
  3763  		file_routerrpc_router_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
  3764  			switch v := v.(*ForwardFailEvent); i {
  3765  			case 0:
  3766  				return &v.state
  3767  			case 1:
  3768  				return &v.sizeCache
  3769  			case 2:
  3770  				return &v.unknownFields
  3771  			default:
  3772  				return nil
  3773  			}
  3774  		}
  3775  		file_routerrpc_router_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
  3776  			switch v := v.(*SettleEvent); i {
  3777  			case 0:
  3778  				return &v.state
  3779  			case 1:
  3780  				return &v.sizeCache
  3781  			case 2:
  3782  				return &v.unknownFields
  3783  			default:
  3784  				return nil
  3785  			}
  3786  		}
  3787  		file_routerrpc_router_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
  3788  			switch v := v.(*LinkFailEvent); i {
  3789  			case 0:
  3790  				return &v.state
  3791  			case 1:
  3792  				return &v.sizeCache
  3793  			case 2:
  3794  				return &v.unknownFields
  3795  			default:
  3796  				return nil
  3797  			}
  3798  		}
  3799  		file_routerrpc_router_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
  3800  			switch v := v.(*PaymentStatus); i {
  3801  			case 0:
  3802  				return &v.state
  3803  			case 1:
  3804  				return &v.sizeCache
  3805  			case 2:
  3806  				return &v.unknownFields
  3807  			default:
  3808  				return nil
  3809  			}
  3810  		}
  3811  		file_routerrpc_router_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
  3812  			switch v := v.(*CircuitKey); i {
  3813  			case 0:
  3814  				return &v.state
  3815  			case 1:
  3816  				return &v.sizeCache
  3817  			case 2:
  3818  				return &v.unknownFields
  3819  			default:
  3820  				return nil
  3821  			}
  3822  		}
  3823  		file_routerrpc_router_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
  3824  			switch v := v.(*ForwardHtlcInterceptRequest); i {
  3825  			case 0:
  3826  				return &v.state
  3827  			case 1:
  3828  				return &v.sizeCache
  3829  			case 2:
  3830  				return &v.unknownFields
  3831  			default:
  3832  				return nil
  3833  			}
  3834  		}
  3835  		file_routerrpc_router_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
  3836  			switch v := v.(*ForwardHtlcInterceptResponse); i {
  3837  			case 0:
  3838  				return &v.state
  3839  			case 1:
  3840  				return &v.sizeCache
  3841  			case 2:
  3842  				return &v.unknownFields
  3843  			default:
  3844  				return nil
  3845  			}
  3846  		}
  3847  		file_routerrpc_router_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
  3848  			switch v := v.(*UpdateChanStatusRequest); i {
  3849  			case 0:
  3850  				return &v.state
  3851  			case 1:
  3852  				return &v.sizeCache
  3853  			case 2:
  3854  				return &v.unknownFields
  3855  			default:
  3856  				return nil
  3857  			}
  3858  		}
  3859  		file_routerrpc_router_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
  3860  			switch v := v.(*UpdateChanStatusResponse); i {
  3861  			case 0:
  3862  				return &v.state
  3863  			case 1:
  3864  				return &v.sizeCache
  3865  			case 2:
  3866  				return &v.unknownFields
  3867  			default:
  3868  				return nil
  3869  			}
  3870  		}
  3871  	}
  3872  	file_routerrpc_router_proto_msgTypes[24].OneofWrappers = []interface{}{
  3873  		(*HtlcEvent_ForwardEvent)(nil),
  3874  		(*HtlcEvent_ForwardFailEvent)(nil),
  3875  		(*HtlcEvent_SettleEvent)(nil),
  3876  		(*HtlcEvent_LinkFailEvent)(nil),
  3877  	}
  3878  	type x struct{}
  3879  	out := protoimpl.TypeBuilder{
  3880  		File: protoimpl.DescBuilder{
  3881  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  3882  			RawDescriptor: file_routerrpc_router_proto_rawDesc,
  3883  			NumEnums:      5,
  3884  			NumMessages:   38,
  3885  			NumExtensions: 0,
  3886  			NumServices:   1,
  3887  		},
  3888  		GoTypes:           file_routerrpc_router_proto_goTypes,
  3889  		DependencyIndexes: file_routerrpc_router_proto_depIdxs,
  3890  		EnumInfos:         file_routerrpc_router_proto_enumTypes,
  3891  		MessageInfos:      file_routerrpc_router_proto_msgTypes,
  3892  	}.Build()
  3893  	File_routerrpc_router_proto = out.File
  3894  	file_routerrpc_router_proto_rawDesc = nil
  3895  	file_routerrpc_router_proto_goTypes = nil
  3896  	file_routerrpc_router_proto_depIdxs = nil
  3897  }
  3898  
  3899  // Reference imports to suppress errors if they are not otherwise used.
  3900  var _ context.Context
  3901  var _ grpc.ClientConnInterface
  3902  
  3903  // This is a compile-time assertion to ensure that this generated file
  3904  // is compatible with the grpc package it is being compiled against.
  3905  const _ = grpc.SupportPackageIsVersion6
  3906  
  3907  // RouterClient is the client API for Router service.
  3908  //
  3909  // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  3910  type RouterClient interface {
  3911  	// SendPaymentV2 attempts to route a payment described by the passed
  3912  	// PaymentRequest to the final destination. The call returns a stream of
  3913  	// payment updates.
  3914  	SendPaymentV2(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentV2Client, error)
  3915  	// TrackPaymentV2 returns an update stream for the payment identified by the
  3916  	// payment hash.
  3917  	TrackPaymentV2(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentV2Client, error)
  3918  	// EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
  3919  	// may cost to send an HTLC to the target end destination.
  3920  	EstimateRouteFee(ctx context.Context, in *RouteFeeRequest, opts ...grpc.CallOption) (*RouteFeeResponse, error)
  3921  	// Deprecated: Do not use.
  3922  	//
  3923  	// Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via
  3924  	// the specified route. This method differs from SendPayment in that it
  3925  	// allows users to specify a full route manually. This can be used for
  3926  	// things like rebalancing, and atomic swaps. It differs from the newer
  3927  	// SendToRouteV2 in that it doesn't return the full HTLC information.
  3928  	SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error)
  3929  	// SendToRouteV2 attempts to make a payment via the specified route. This
  3930  	// method differs from SendPayment in that it allows users to specify a full
  3931  	// route manually. This can be used for things like rebalancing, and atomic
  3932  	// swaps.
  3933  	SendToRouteV2(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*lnrpc.HTLCAttempt, error)
  3934  	// ResetMissionControl clears all mission control state and starts with a clean
  3935  	// slate.
  3936  	ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error)
  3937  	// QueryMissionControl exposes the internal mission control state to callers.
  3938  	// It is a development feature.
  3939  	QueryMissionControl(ctx context.Context, in *QueryMissionControlRequest, opts ...grpc.CallOption) (*QueryMissionControlResponse, error)
  3940  	// XImportMissionControl is an experimental API that imports the state provided
  3941  	// to the internal mission control's state, using all results which are more
  3942  	// recent than our existing values. These values will only be imported
  3943  	// in-memory, and will not be persisted across restarts.
  3944  	XImportMissionControl(ctx context.Context, in *XImportMissionControlRequest, opts ...grpc.CallOption) (*XImportMissionControlResponse, error)
  3945  	// GetMissionControlConfig returns mission control's current config.
  3946  	GetMissionControlConfig(ctx context.Context, in *GetMissionControlConfigRequest, opts ...grpc.CallOption) (*GetMissionControlConfigResponse, error)
  3947  	// SetMissionControlConfig will set mission control's config, if the config
  3948  	// provided is valid.
  3949  	SetMissionControlConfig(ctx context.Context, in *SetMissionControlConfigRequest, opts ...grpc.CallOption) (*SetMissionControlConfigResponse, error)
  3950  	// QueryProbability returns the current success probability estimate for a
  3951  	// given node pair and amount.
  3952  	QueryProbability(ctx context.Context, in *QueryProbabilityRequest, opts ...grpc.CallOption) (*QueryProbabilityResponse, error)
  3953  	// BuildRoute builds a fully specified route based on a list of hop public
  3954  	// keys. It retrieves the relevant channel policies from the graph in order to
  3955  	// calculate the correct fees and time locks.
  3956  	BuildRoute(ctx context.Context, in *BuildRouteRequest, opts ...grpc.CallOption) (*BuildRouteResponse, error)
  3957  	// SubscribeHtlcEvents creates a uni-directional stream from the server to
  3958  	// the client which delivers a stream of htlc events.
  3959  	SubscribeHtlcEvents(ctx context.Context, in *SubscribeHtlcEventsRequest, opts ...grpc.CallOption) (Router_SubscribeHtlcEventsClient, error)
  3960  	// Deprecated: Do not use.
  3961  	//
  3962  	// Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
  3963  	// described by the passed PaymentRequest to the final destination. The call
  3964  	// returns a stream of payment status updates.
  3965  	SendPayment(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentClient, error)
  3966  	// Deprecated: Do not use.
  3967  	//
  3968  	// Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
  3969  	// the payment identified by the payment hash.
  3970  	TrackPayment(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentClient, error)
  3971  	// *
  3972  	// HtlcInterceptor dispatches a bi-directional streaming RPC in which
  3973  	// Forwarded HTLC requests are sent to the client and the client responds with
  3974  	// a boolean that tells LND if this htlc should be intercepted.
  3975  	// In case of interception, the htlc can be either settled, cancelled or
  3976  	// resumed later by using the ResolveHoldForward endpoint.
  3977  	HtlcInterceptor(ctx context.Context, opts ...grpc.CallOption) (Router_HtlcInterceptorClient, error)
  3978  	// UpdateChanStatus attempts to manually set the state of a channel
  3979  	// (enabled, disabled, or auto). A manual "disable" request will cause the
  3980  	// channel to stay disabled until a subsequent manual request of either
  3981  	// "enable" or "auto".
  3982  	UpdateChanStatus(ctx context.Context, in *UpdateChanStatusRequest, opts ...grpc.CallOption) (*UpdateChanStatusResponse, error)
  3983  }
  3984  
  3985  type routerClient struct {
  3986  	cc grpc.ClientConnInterface
  3987  }
  3988  
  3989  func NewRouterClient(cc grpc.ClientConnInterface) RouterClient {
  3990  	return &routerClient{cc}
  3991  }
  3992  
  3993  func (c *routerClient) SendPaymentV2(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentV2Client, error) {
  3994  	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[0], "/routerrpc.Router/SendPaymentV2", opts...)
  3995  	if err != nil {
  3996  		return nil, err
  3997  	}
  3998  	x := &routerSendPaymentV2Client{stream}
  3999  	if err := x.ClientStream.SendMsg(in); err != nil {
  4000  		return nil, err
  4001  	}
  4002  	if err := x.ClientStream.CloseSend(); err != nil {
  4003  		return nil, err
  4004  	}
  4005  	return x, nil
  4006  }
  4007  
  4008  type Router_SendPaymentV2Client interface {
  4009  	Recv() (*lnrpc.Payment, error)
  4010  	grpc.ClientStream
  4011  }
  4012  
  4013  type routerSendPaymentV2Client struct {
  4014  	grpc.ClientStream
  4015  }
  4016  
  4017  func (x *routerSendPaymentV2Client) Recv() (*lnrpc.Payment, error) {
  4018  	m := new(lnrpc.Payment)
  4019  	if err := x.ClientStream.RecvMsg(m); err != nil {
  4020  		return nil, err
  4021  	}
  4022  	return m, nil
  4023  }
  4024  
  4025  func (c *routerClient) TrackPaymentV2(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentV2Client, error) {
  4026  	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[1], "/routerrpc.Router/TrackPaymentV2", opts...)
  4027  	if err != nil {
  4028  		return nil, err
  4029  	}
  4030  	x := &routerTrackPaymentV2Client{stream}
  4031  	if err := x.ClientStream.SendMsg(in); err != nil {
  4032  		return nil, err
  4033  	}
  4034  	if err := x.ClientStream.CloseSend(); err != nil {
  4035  		return nil, err
  4036  	}
  4037  	return x, nil
  4038  }
  4039  
  4040  type Router_TrackPaymentV2Client interface {
  4041  	Recv() (*lnrpc.Payment, error)
  4042  	grpc.ClientStream
  4043  }
  4044  
  4045  type routerTrackPaymentV2Client struct {
  4046  	grpc.ClientStream
  4047  }
  4048  
  4049  func (x *routerTrackPaymentV2Client) Recv() (*lnrpc.Payment, error) {
  4050  	m := new(lnrpc.Payment)
  4051  	if err := x.ClientStream.RecvMsg(m); err != nil {
  4052  		return nil, err
  4053  	}
  4054  	return m, nil
  4055  }
  4056  
  4057  func (c *routerClient) EstimateRouteFee(ctx context.Context, in *RouteFeeRequest, opts ...grpc.CallOption) (*RouteFeeResponse, error) {
  4058  	out := new(RouteFeeResponse)
  4059  	err := c.cc.Invoke(ctx, "/routerrpc.Router/EstimateRouteFee", in, out, opts...)
  4060  	if err != nil {
  4061  		return nil, err
  4062  	}
  4063  	return out, nil
  4064  }
  4065  
  4066  // Deprecated: Do not use.
  4067  func (c *routerClient) SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error) {
  4068  	out := new(SendToRouteResponse)
  4069  	err := c.cc.Invoke(ctx, "/routerrpc.Router/SendToRoute", in, out, opts...)
  4070  	if err != nil {
  4071  		return nil, err
  4072  	}
  4073  	return out, nil
  4074  }
  4075  
  4076  func (c *routerClient) SendToRouteV2(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*lnrpc.HTLCAttempt, error) {
  4077  	out := new(lnrpc.HTLCAttempt)
  4078  	err := c.cc.Invoke(ctx, "/routerrpc.Router/SendToRouteV2", in, out, opts...)
  4079  	if err != nil {
  4080  		return nil, err
  4081  	}
  4082  	return out, nil
  4083  }
  4084  
  4085  func (c *routerClient) ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error) {
  4086  	out := new(ResetMissionControlResponse)
  4087  	err := c.cc.Invoke(ctx, "/routerrpc.Router/ResetMissionControl", in, out, opts...)
  4088  	if err != nil {
  4089  		return nil, err
  4090  	}
  4091  	return out, nil
  4092  }
  4093  
  4094  func (c *routerClient) QueryMissionControl(ctx context.Context, in *QueryMissionControlRequest, opts ...grpc.CallOption) (*QueryMissionControlResponse, error) {
  4095  	out := new(QueryMissionControlResponse)
  4096  	err := c.cc.Invoke(ctx, "/routerrpc.Router/QueryMissionControl", in, out, opts...)
  4097  	if err != nil {
  4098  		return nil, err
  4099  	}
  4100  	return out, nil
  4101  }
  4102  
  4103  func (c *routerClient) XImportMissionControl(ctx context.Context, in *XImportMissionControlRequest, opts ...grpc.CallOption) (*XImportMissionControlResponse, error) {
  4104  	out := new(XImportMissionControlResponse)
  4105  	err := c.cc.Invoke(ctx, "/routerrpc.Router/XImportMissionControl", in, out, opts...)
  4106  	if err != nil {
  4107  		return nil, err
  4108  	}
  4109  	return out, nil
  4110  }
  4111  
  4112  func (c *routerClient) GetMissionControlConfig(ctx context.Context, in *GetMissionControlConfigRequest, opts ...grpc.CallOption) (*GetMissionControlConfigResponse, error) {
  4113  	out := new(GetMissionControlConfigResponse)
  4114  	err := c.cc.Invoke(ctx, "/routerrpc.Router/GetMissionControlConfig", in, out, opts...)
  4115  	if err != nil {
  4116  		return nil, err
  4117  	}
  4118  	return out, nil
  4119  }
  4120  
  4121  func (c *routerClient) SetMissionControlConfig(ctx context.Context, in *SetMissionControlConfigRequest, opts ...grpc.CallOption) (*SetMissionControlConfigResponse, error) {
  4122  	out := new(SetMissionControlConfigResponse)
  4123  	err := c.cc.Invoke(ctx, "/routerrpc.Router/SetMissionControlConfig", in, out, opts...)
  4124  	if err != nil {
  4125  		return nil, err
  4126  	}
  4127  	return out, nil
  4128  }
  4129  
  4130  func (c *routerClient) QueryProbability(ctx context.Context, in *QueryProbabilityRequest, opts ...grpc.CallOption) (*QueryProbabilityResponse, error) {
  4131  	out := new(QueryProbabilityResponse)
  4132  	err := c.cc.Invoke(ctx, "/routerrpc.Router/QueryProbability", in, out, opts...)
  4133  	if err != nil {
  4134  		return nil, err
  4135  	}
  4136  	return out, nil
  4137  }
  4138  
  4139  func (c *routerClient) BuildRoute(ctx context.Context, in *BuildRouteRequest, opts ...grpc.CallOption) (*BuildRouteResponse, error) {
  4140  	out := new(BuildRouteResponse)
  4141  	err := c.cc.Invoke(ctx, "/routerrpc.Router/BuildRoute", in, out, opts...)
  4142  	if err != nil {
  4143  		return nil, err
  4144  	}
  4145  	return out, nil
  4146  }
  4147  
  4148  func (c *routerClient) SubscribeHtlcEvents(ctx context.Context, in *SubscribeHtlcEventsRequest, opts ...grpc.CallOption) (Router_SubscribeHtlcEventsClient, error) {
  4149  	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[2], "/routerrpc.Router/SubscribeHtlcEvents", opts...)
  4150  	if err != nil {
  4151  		return nil, err
  4152  	}
  4153  	x := &routerSubscribeHtlcEventsClient{stream}
  4154  	if err := x.ClientStream.SendMsg(in); err != nil {
  4155  		return nil, err
  4156  	}
  4157  	if err := x.ClientStream.CloseSend(); err != nil {
  4158  		return nil, err
  4159  	}
  4160  	return x, nil
  4161  }
  4162  
  4163  type Router_SubscribeHtlcEventsClient interface {
  4164  	Recv() (*HtlcEvent, error)
  4165  	grpc.ClientStream
  4166  }
  4167  
  4168  type routerSubscribeHtlcEventsClient struct {
  4169  	grpc.ClientStream
  4170  }
  4171  
  4172  func (x *routerSubscribeHtlcEventsClient) Recv() (*HtlcEvent, error) {
  4173  	m := new(HtlcEvent)
  4174  	if err := x.ClientStream.RecvMsg(m); err != nil {
  4175  		return nil, err
  4176  	}
  4177  	return m, nil
  4178  }
  4179  
  4180  // Deprecated: Do not use.
  4181  func (c *routerClient) SendPayment(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentClient, error) {
  4182  	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[3], "/routerrpc.Router/SendPayment", opts...)
  4183  	if err != nil {
  4184  		return nil, err
  4185  	}
  4186  	x := &routerSendPaymentClient{stream}
  4187  	if err := x.ClientStream.SendMsg(in); err != nil {
  4188  		return nil, err
  4189  	}
  4190  	if err := x.ClientStream.CloseSend(); err != nil {
  4191  		return nil, err
  4192  	}
  4193  	return x, nil
  4194  }
  4195  
  4196  type Router_SendPaymentClient interface {
  4197  	Recv() (*PaymentStatus, error)
  4198  	grpc.ClientStream
  4199  }
  4200  
  4201  type routerSendPaymentClient struct {
  4202  	grpc.ClientStream
  4203  }
  4204  
  4205  func (x *routerSendPaymentClient) Recv() (*PaymentStatus, error) {
  4206  	m := new(PaymentStatus)
  4207  	if err := x.ClientStream.RecvMsg(m); err != nil {
  4208  		return nil, err
  4209  	}
  4210  	return m, nil
  4211  }
  4212  
  4213  // Deprecated: Do not use.
  4214  func (c *routerClient) TrackPayment(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentClient, error) {
  4215  	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[4], "/routerrpc.Router/TrackPayment", opts...)
  4216  	if err != nil {
  4217  		return nil, err
  4218  	}
  4219  	x := &routerTrackPaymentClient{stream}
  4220  	if err := x.ClientStream.SendMsg(in); err != nil {
  4221  		return nil, err
  4222  	}
  4223  	if err := x.ClientStream.CloseSend(); err != nil {
  4224  		return nil, err
  4225  	}
  4226  	return x, nil
  4227  }
  4228  
  4229  type Router_TrackPaymentClient interface {
  4230  	Recv() (*PaymentStatus, error)
  4231  	grpc.ClientStream
  4232  }
  4233  
  4234  type routerTrackPaymentClient struct {
  4235  	grpc.ClientStream
  4236  }
  4237  
  4238  func (x *routerTrackPaymentClient) Recv() (*PaymentStatus, error) {
  4239  	m := new(PaymentStatus)
  4240  	if err := x.ClientStream.RecvMsg(m); err != nil {
  4241  		return nil, err
  4242  	}
  4243  	return m, nil
  4244  }
  4245  
  4246  func (c *routerClient) HtlcInterceptor(ctx context.Context, opts ...grpc.CallOption) (Router_HtlcInterceptorClient, error) {
  4247  	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[5], "/routerrpc.Router/HtlcInterceptor", opts...)
  4248  	if err != nil {
  4249  		return nil, err
  4250  	}
  4251  	x := &routerHtlcInterceptorClient{stream}
  4252  	return x, nil
  4253  }
  4254  
  4255  type Router_HtlcInterceptorClient interface {
  4256  	Send(*ForwardHtlcInterceptResponse) error
  4257  	Recv() (*ForwardHtlcInterceptRequest, error)
  4258  	grpc.ClientStream
  4259  }
  4260  
  4261  type routerHtlcInterceptorClient struct {
  4262  	grpc.ClientStream
  4263  }
  4264  
  4265  func (x *routerHtlcInterceptorClient) Send(m *ForwardHtlcInterceptResponse) error {
  4266  	return x.ClientStream.SendMsg(m)
  4267  }
  4268  
  4269  func (x *routerHtlcInterceptorClient) Recv() (*ForwardHtlcInterceptRequest, error) {
  4270  	m := new(ForwardHtlcInterceptRequest)
  4271  	if err := x.ClientStream.RecvMsg(m); err != nil {
  4272  		return nil, err
  4273  	}
  4274  	return m, nil
  4275  }
  4276  
  4277  func (c *routerClient) UpdateChanStatus(ctx context.Context, in *UpdateChanStatusRequest, opts ...grpc.CallOption) (*UpdateChanStatusResponse, error) {
  4278  	out := new(UpdateChanStatusResponse)
  4279  	err := c.cc.Invoke(ctx, "/routerrpc.Router/UpdateChanStatus", in, out, opts...)
  4280  	if err != nil {
  4281  		return nil, err
  4282  	}
  4283  	return out, nil
  4284  }
  4285  
  4286  // RouterServer is the server API for Router service.
  4287  type RouterServer interface {
  4288  	// SendPaymentV2 attempts to route a payment described by the passed
  4289  	// PaymentRequest to the final destination. The call returns a stream of
  4290  	// payment updates.
  4291  	SendPaymentV2(*SendPaymentRequest, Router_SendPaymentV2Server) error
  4292  	// TrackPaymentV2 returns an update stream for the payment identified by the
  4293  	// payment hash.
  4294  	TrackPaymentV2(*TrackPaymentRequest, Router_TrackPaymentV2Server) error
  4295  	// EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
  4296  	// may cost to send an HTLC to the target end destination.
  4297  	EstimateRouteFee(context.Context, *RouteFeeRequest) (*RouteFeeResponse, error)
  4298  	// Deprecated: Do not use.
  4299  	//
  4300  	// Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via
  4301  	// the specified route. This method differs from SendPayment in that it
  4302  	// allows users to specify a full route manually. This can be used for
  4303  	// things like rebalancing, and atomic swaps. It differs from the newer
  4304  	// SendToRouteV2 in that it doesn't return the full HTLC information.
  4305  	SendToRoute(context.Context, *SendToRouteRequest) (*SendToRouteResponse, error)
  4306  	// SendToRouteV2 attempts to make a payment via the specified route. This
  4307  	// method differs from SendPayment in that it allows users to specify a full
  4308  	// route manually. This can be used for things like rebalancing, and atomic
  4309  	// swaps.
  4310  	SendToRouteV2(context.Context, *SendToRouteRequest) (*lnrpc.HTLCAttempt, error)
  4311  	// ResetMissionControl clears all mission control state and starts with a clean
  4312  	// slate.
  4313  	ResetMissionControl(context.Context, *ResetMissionControlRequest) (*ResetMissionControlResponse, error)
  4314  	// QueryMissionControl exposes the internal mission control state to callers.
  4315  	// It is a development feature.
  4316  	QueryMissionControl(context.Context, *QueryMissionControlRequest) (*QueryMissionControlResponse, error)
  4317  	// XImportMissionControl is an experimental API that imports the state provided
  4318  	// to the internal mission control's state, using all results which are more
  4319  	// recent than our existing values. These values will only be imported
  4320  	// in-memory, and will not be persisted across restarts.
  4321  	XImportMissionControl(context.Context, *XImportMissionControlRequest) (*XImportMissionControlResponse, error)
  4322  	// GetMissionControlConfig returns mission control's current config.
  4323  	GetMissionControlConfig(context.Context, *GetMissionControlConfigRequest) (*GetMissionControlConfigResponse, error)
  4324  	// SetMissionControlConfig will set mission control's config, if the config
  4325  	// provided is valid.
  4326  	SetMissionControlConfig(context.Context, *SetMissionControlConfigRequest) (*SetMissionControlConfigResponse, error)
  4327  	// QueryProbability returns the current success probability estimate for a
  4328  	// given node pair and amount.
  4329  	QueryProbability(context.Context, *QueryProbabilityRequest) (*QueryProbabilityResponse, error)
  4330  	// BuildRoute builds a fully specified route based on a list of hop public
  4331  	// keys. It retrieves the relevant channel policies from the graph in order to
  4332  	// calculate the correct fees and time locks.
  4333  	BuildRoute(context.Context, *BuildRouteRequest) (*BuildRouteResponse, error)
  4334  	// SubscribeHtlcEvents creates a uni-directional stream from the server to
  4335  	// the client which delivers a stream of htlc events.
  4336  	SubscribeHtlcEvents(*SubscribeHtlcEventsRequest, Router_SubscribeHtlcEventsServer) error
  4337  	// Deprecated: Do not use.
  4338  	//
  4339  	// Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
  4340  	// described by the passed PaymentRequest to the final destination. The call
  4341  	// returns a stream of payment status updates.
  4342  	SendPayment(*SendPaymentRequest, Router_SendPaymentServer) error
  4343  	// Deprecated: Do not use.
  4344  	//
  4345  	// Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
  4346  	// the payment identified by the payment hash.
  4347  	TrackPayment(*TrackPaymentRequest, Router_TrackPaymentServer) error
  4348  	// *
  4349  	// HtlcInterceptor dispatches a bi-directional streaming RPC in which
  4350  	// Forwarded HTLC requests are sent to the client and the client responds with
  4351  	// a boolean that tells LND if this htlc should be intercepted.
  4352  	// In case of interception, the htlc can be either settled, cancelled or
  4353  	// resumed later by using the ResolveHoldForward endpoint.
  4354  	HtlcInterceptor(Router_HtlcInterceptorServer) error
  4355  	// UpdateChanStatus attempts to manually set the state of a channel
  4356  	// (enabled, disabled, or auto). A manual "disable" request will cause the
  4357  	// channel to stay disabled until a subsequent manual request of either
  4358  	// "enable" or "auto".
  4359  	UpdateChanStatus(context.Context, *UpdateChanStatusRequest) (*UpdateChanStatusResponse, error)
  4360  }
  4361  
  4362  // UnimplementedRouterServer can be embedded to have forward compatible implementations.
  4363  type UnimplementedRouterServer struct {
  4364  }
  4365  
  4366  func (*UnimplementedRouterServer) SendPaymentV2(*SendPaymentRequest, Router_SendPaymentV2Server) error {
  4367  	return status.Errorf(codes.Unimplemented, "method SendPaymentV2 not implemented")
  4368  }
  4369  func (*UnimplementedRouterServer) TrackPaymentV2(*TrackPaymentRequest, Router_TrackPaymentV2Server) error {
  4370  	return status.Errorf(codes.Unimplemented, "method TrackPaymentV2 not implemented")
  4371  }
  4372  func (*UnimplementedRouterServer) EstimateRouteFee(context.Context, *RouteFeeRequest) (*RouteFeeResponse, error) {
  4373  	return nil, status.Errorf(codes.Unimplemented, "method EstimateRouteFee not implemented")
  4374  }
  4375  func (*UnimplementedRouterServer) SendToRoute(context.Context, *SendToRouteRequest) (*SendToRouteResponse, error) {
  4376  	return nil, status.Errorf(codes.Unimplemented, "method SendToRoute not implemented")
  4377  }
  4378  func (*UnimplementedRouterServer) SendToRouteV2(context.Context, *SendToRouteRequest) (*lnrpc.HTLCAttempt, error) {
  4379  	return nil, status.Errorf(codes.Unimplemented, "method SendToRouteV2 not implemented")
  4380  }
  4381  func (*UnimplementedRouterServer) ResetMissionControl(context.Context, *ResetMissionControlRequest) (*ResetMissionControlResponse, error) {
  4382  	return nil, status.Errorf(codes.Unimplemented, "method ResetMissionControl not implemented")
  4383  }
  4384  func (*UnimplementedRouterServer) QueryMissionControl(context.Context, *QueryMissionControlRequest) (*QueryMissionControlResponse, error) {
  4385  	return nil, status.Errorf(codes.Unimplemented, "method QueryMissionControl not implemented")
  4386  }
  4387  func (*UnimplementedRouterServer) XImportMissionControl(context.Context, *XImportMissionControlRequest) (*XImportMissionControlResponse, error) {
  4388  	return nil, status.Errorf(codes.Unimplemented, "method XImportMissionControl not implemented")
  4389  }
  4390  func (*UnimplementedRouterServer) GetMissionControlConfig(context.Context, *GetMissionControlConfigRequest) (*GetMissionControlConfigResponse, error) {
  4391  	return nil, status.Errorf(codes.Unimplemented, "method GetMissionControlConfig not implemented")
  4392  }
  4393  func (*UnimplementedRouterServer) SetMissionControlConfig(context.Context, *SetMissionControlConfigRequest) (*SetMissionControlConfigResponse, error) {
  4394  	return nil, status.Errorf(codes.Unimplemented, "method SetMissionControlConfig not implemented")
  4395  }
  4396  func (*UnimplementedRouterServer) QueryProbability(context.Context, *QueryProbabilityRequest) (*QueryProbabilityResponse, error) {
  4397  	return nil, status.Errorf(codes.Unimplemented, "method QueryProbability not implemented")
  4398  }
  4399  func (*UnimplementedRouterServer) BuildRoute(context.Context, *BuildRouteRequest) (*BuildRouteResponse, error) {
  4400  	return nil, status.Errorf(codes.Unimplemented, "method BuildRoute not implemented")
  4401  }
  4402  func (*UnimplementedRouterServer) SubscribeHtlcEvents(*SubscribeHtlcEventsRequest, Router_SubscribeHtlcEventsServer) error {
  4403  	return status.Errorf(codes.Unimplemented, "method SubscribeHtlcEvents not implemented")
  4404  }
  4405  func (*UnimplementedRouterServer) SendPayment(*SendPaymentRequest, Router_SendPaymentServer) error {
  4406  	return status.Errorf(codes.Unimplemented, "method SendPayment not implemented")
  4407  }
  4408  func (*UnimplementedRouterServer) TrackPayment(*TrackPaymentRequest, Router_TrackPaymentServer) error {
  4409  	return status.Errorf(codes.Unimplemented, "method TrackPayment not implemented")
  4410  }
  4411  func (*UnimplementedRouterServer) HtlcInterceptor(Router_HtlcInterceptorServer) error {
  4412  	return status.Errorf(codes.Unimplemented, "method HtlcInterceptor not implemented")
  4413  }
  4414  func (*UnimplementedRouterServer) UpdateChanStatus(context.Context, *UpdateChanStatusRequest) (*UpdateChanStatusResponse, error) {
  4415  	return nil, status.Errorf(codes.Unimplemented, "method UpdateChanStatus not implemented")
  4416  }
  4417  
  4418  func RegisterRouterServer(s *grpc.Server, srv RouterServer) {
  4419  	s.RegisterService(&_Router_serviceDesc, srv)
  4420  }
  4421  
  4422  func _Router_SendPaymentV2_Handler(srv interface{}, stream grpc.ServerStream) error {
  4423  	m := new(SendPaymentRequest)
  4424  	if err := stream.RecvMsg(m); err != nil {
  4425  		return err
  4426  	}
  4427  	return srv.(RouterServer).SendPaymentV2(m, &routerSendPaymentV2Server{stream})
  4428  }
  4429  
  4430  type Router_SendPaymentV2Server interface {
  4431  	Send(*lnrpc.Payment) error
  4432  	grpc.ServerStream
  4433  }
  4434  
  4435  type routerSendPaymentV2Server struct {
  4436  	grpc.ServerStream
  4437  }
  4438  
  4439  func (x *routerSendPaymentV2Server) Send(m *lnrpc.Payment) error {
  4440  	return x.ServerStream.SendMsg(m)
  4441  }
  4442  
  4443  func _Router_TrackPaymentV2_Handler(srv interface{}, stream grpc.ServerStream) error {
  4444  	m := new(TrackPaymentRequest)
  4445  	if err := stream.RecvMsg(m); err != nil {
  4446  		return err
  4447  	}
  4448  	return srv.(RouterServer).TrackPaymentV2(m, &routerTrackPaymentV2Server{stream})
  4449  }
  4450  
  4451  type Router_TrackPaymentV2Server interface {
  4452  	Send(*lnrpc.Payment) error
  4453  	grpc.ServerStream
  4454  }
  4455  
  4456  type routerTrackPaymentV2Server struct {
  4457  	grpc.ServerStream
  4458  }
  4459  
  4460  func (x *routerTrackPaymentV2Server) Send(m *lnrpc.Payment) error {
  4461  	return x.ServerStream.SendMsg(m)
  4462  }
  4463  
  4464  func _Router_EstimateRouteFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4465  	in := new(RouteFeeRequest)
  4466  	if err := dec(in); err != nil {
  4467  		return nil, err
  4468  	}
  4469  	if interceptor == nil {
  4470  		return srv.(RouterServer).EstimateRouteFee(ctx, in)
  4471  	}
  4472  	info := &grpc.UnaryServerInfo{
  4473  		Server:     srv,
  4474  		FullMethod: "/routerrpc.Router/EstimateRouteFee",
  4475  	}
  4476  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4477  		return srv.(RouterServer).EstimateRouteFee(ctx, req.(*RouteFeeRequest))
  4478  	}
  4479  	return interceptor(ctx, in, info, handler)
  4480  }
  4481  
  4482  func _Router_SendToRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4483  	in := new(SendToRouteRequest)
  4484  	if err := dec(in); err != nil {
  4485  		return nil, err
  4486  	}
  4487  	if interceptor == nil {
  4488  		return srv.(RouterServer).SendToRoute(ctx, in)
  4489  	}
  4490  	info := &grpc.UnaryServerInfo{
  4491  		Server:     srv,
  4492  		FullMethod: "/routerrpc.Router/SendToRoute",
  4493  	}
  4494  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4495  		return srv.(RouterServer).SendToRoute(ctx, req.(*SendToRouteRequest))
  4496  	}
  4497  	return interceptor(ctx, in, info, handler)
  4498  }
  4499  
  4500  func _Router_SendToRouteV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4501  	in := new(SendToRouteRequest)
  4502  	if err := dec(in); err != nil {
  4503  		return nil, err
  4504  	}
  4505  	if interceptor == nil {
  4506  		return srv.(RouterServer).SendToRouteV2(ctx, in)
  4507  	}
  4508  	info := &grpc.UnaryServerInfo{
  4509  		Server:     srv,
  4510  		FullMethod: "/routerrpc.Router/SendToRouteV2",
  4511  	}
  4512  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4513  		return srv.(RouterServer).SendToRouteV2(ctx, req.(*SendToRouteRequest))
  4514  	}
  4515  	return interceptor(ctx, in, info, handler)
  4516  }
  4517  
  4518  func _Router_ResetMissionControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4519  	in := new(ResetMissionControlRequest)
  4520  	if err := dec(in); err != nil {
  4521  		return nil, err
  4522  	}
  4523  	if interceptor == nil {
  4524  		return srv.(RouterServer).ResetMissionControl(ctx, in)
  4525  	}
  4526  	info := &grpc.UnaryServerInfo{
  4527  		Server:     srv,
  4528  		FullMethod: "/routerrpc.Router/ResetMissionControl",
  4529  	}
  4530  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4531  		return srv.(RouterServer).ResetMissionControl(ctx, req.(*ResetMissionControlRequest))
  4532  	}
  4533  	return interceptor(ctx, in, info, handler)
  4534  }
  4535  
  4536  func _Router_QueryMissionControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4537  	in := new(QueryMissionControlRequest)
  4538  	if err := dec(in); err != nil {
  4539  		return nil, err
  4540  	}
  4541  	if interceptor == nil {
  4542  		return srv.(RouterServer).QueryMissionControl(ctx, in)
  4543  	}
  4544  	info := &grpc.UnaryServerInfo{
  4545  		Server:     srv,
  4546  		FullMethod: "/routerrpc.Router/QueryMissionControl",
  4547  	}
  4548  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4549  		return srv.(RouterServer).QueryMissionControl(ctx, req.(*QueryMissionControlRequest))
  4550  	}
  4551  	return interceptor(ctx, in, info, handler)
  4552  }
  4553  
  4554  func _Router_XImportMissionControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4555  	in := new(XImportMissionControlRequest)
  4556  	if err := dec(in); err != nil {
  4557  		return nil, err
  4558  	}
  4559  	if interceptor == nil {
  4560  		return srv.(RouterServer).XImportMissionControl(ctx, in)
  4561  	}
  4562  	info := &grpc.UnaryServerInfo{
  4563  		Server:     srv,
  4564  		FullMethod: "/routerrpc.Router/XImportMissionControl",
  4565  	}
  4566  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4567  		return srv.(RouterServer).XImportMissionControl(ctx, req.(*XImportMissionControlRequest))
  4568  	}
  4569  	return interceptor(ctx, in, info, handler)
  4570  }
  4571  
  4572  func _Router_GetMissionControlConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4573  	in := new(GetMissionControlConfigRequest)
  4574  	if err := dec(in); err != nil {
  4575  		return nil, err
  4576  	}
  4577  	if interceptor == nil {
  4578  		return srv.(RouterServer).GetMissionControlConfig(ctx, in)
  4579  	}
  4580  	info := &grpc.UnaryServerInfo{
  4581  		Server:     srv,
  4582  		FullMethod: "/routerrpc.Router/GetMissionControlConfig",
  4583  	}
  4584  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4585  		return srv.(RouterServer).GetMissionControlConfig(ctx, req.(*GetMissionControlConfigRequest))
  4586  	}
  4587  	return interceptor(ctx, in, info, handler)
  4588  }
  4589  
  4590  func _Router_SetMissionControlConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4591  	in := new(SetMissionControlConfigRequest)
  4592  	if err := dec(in); err != nil {
  4593  		return nil, err
  4594  	}
  4595  	if interceptor == nil {
  4596  		return srv.(RouterServer).SetMissionControlConfig(ctx, in)
  4597  	}
  4598  	info := &grpc.UnaryServerInfo{
  4599  		Server:     srv,
  4600  		FullMethod: "/routerrpc.Router/SetMissionControlConfig",
  4601  	}
  4602  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4603  		return srv.(RouterServer).SetMissionControlConfig(ctx, req.(*SetMissionControlConfigRequest))
  4604  	}
  4605  	return interceptor(ctx, in, info, handler)
  4606  }
  4607  
  4608  func _Router_QueryProbability_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4609  	in := new(QueryProbabilityRequest)
  4610  	if err := dec(in); err != nil {
  4611  		return nil, err
  4612  	}
  4613  	if interceptor == nil {
  4614  		return srv.(RouterServer).QueryProbability(ctx, in)
  4615  	}
  4616  	info := &grpc.UnaryServerInfo{
  4617  		Server:     srv,
  4618  		FullMethod: "/routerrpc.Router/QueryProbability",
  4619  	}
  4620  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4621  		return srv.(RouterServer).QueryProbability(ctx, req.(*QueryProbabilityRequest))
  4622  	}
  4623  	return interceptor(ctx, in, info, handler)
  4624  }
  4625  
  4626  func _Router_BuildRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4627  	in := new(BuildRouteRequest)
  4628  	if err := dec(in); err != nil {
  4629  		return nil, err
  4630  	}
  4631  	if interceptor == nil {
  4632  		return srv.(RouterServer).BuildRoute(ctx, in)
  4633  	}
  4634  	info := &grpc.UnaryServerInfo{
  4635  		Server:     srv,
  4636  		FullMethod: "/routerrpc.Router/BuildRoute",
  4637  	}
  4638  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4639  		return srv.(RouterServer).BuildRoute(ctx, req.(*BuildRouteRequest))
  4640  	}
  4641  	return interceptor(ctx, in, info, handler)
  4642  }
  4643  
  4644  func _Router_SubscribeHtlcEvents_Handler(srv interface{}, stream grpc.ServerStream) error {
  4645  	m := new(SubscribeHtlcEventsRequest)
  4646  	if err := stream.RecvMsg(m); err != nil {
  4647  		return err
  4648  	}
  4649  	return srv.(RouterServer).SubscribeHtlcEvents(m, &routerSubscribeHtlcEventsServer{stream})
  4650  }
  4651  
  4652  type Router_SubscribeHtlcEventsServer interface {
  4653  	Send(*HtlcEvent) error
  4654  	grpc.ServerStream
  4655  }
  4656  
  4657  type routerSubscribeHtlcEventsServer struct {
  4658  	grpc.ServerStream
  4659  }
  4660  
  4661  func (x *routerSubscribeHtlcEventsServer) Send(m *HtlcEvent) error {
  4662  	return x.ServerStream.SendMsg(m)
  4663  }
  4664  
  4665  func _Router_SendPayment_Handler(srv interface{}, stream grpc.ServerStream) error {
  4666  	m := new(SendPaymentRequest)
  4667  	if err := stream.RecvMsg(m); err != nil {
  4668  		return err
  4669  	}
  4670  	return srv.(RouterServer).SendPayment(m, &routerSendPaymentServer{stream})
  4671  }
  4672  
  4673  type Router_SendPaymentServer interface {
  4674  	Send(*PaymentStatus) error
  4675  	grpc.ServerStream
  4676  }
  4677  
  4678  type routerSendPaymentServer struct {
  4679  	grpc.ServerStream
  4680  }
  4681  
  4682  func (x *routerSendPaymentServer) Send(m *PaymentStatus) error {
  4683  	return x.ServerStream.SendMsg(m)
  4684  }
  4685  
  4686  func _Router_TrackPayment_Handler(srv interface{}, stream grpc.ServerStream) error {
  4687  	m := new(TrackPaymentRequest)
  4688  	if err := stream.RecvMsg(m); err != nil {
  4689  		return err
  4690  	}
  4691  	return srv.(RouterServer).TrackPayment(m, &routerTrackPaymentServer{stream})
  4692  }
  4693  
  4694  type Router_TrackPaymentServer interface {
  4695  	Send(*PaymentStatus) error
  4696  	grpc.ServerStream
  4697  }
  4698  
  4699  type routerTrackPaymentServer struct {
  4700  	grpc.ServerStream
  4701  }
  4702  
  4703  func (x *routerTrackPaymentServer) Send(m *PaymentStatus) error {
  4704  	return x.ServerStream.SendMsg(m)
  4705  }
  4706  
  4707  func _Router_HtlcInterceptor_Handler(srv interface{}, stream grpc.ServerStream) error {
  4708  	return srv.(RouterServer).HtlcInterceptor(&routerHtlcInterceptorServer{stream})
  4709  }
  4710  
  4711  type Router_HtlcInterceptorServer interface {
  4712  	Send(*ForwardHtlcInterceptRequest) error
  4713  	Recv() (*ForwardHtlcInterceptResponse, error)
  4714  	grpc.ServerStream
  4715  }
  4716  
  4717  type routerHtlcInterceptorServer struct {
  4718  	grpc.ServerStream
  4719  }
  4720  
  4721  func (x *routerHtlcInterceptorServer) Send(m *ForwardHtlcInterceptRequest) error {
  4722  	return x.ServerStream.SendMsg(m)
  4723  }
  4724  
  4725  func (x *routerHtlcInterceptorServer) Recv() (*ForwardHtlcInterceptResponse, error) {
  4726  	m := new(ForwardHtlcInterceptResponse)
  4727  	if err := x.ServerStream.RecvMsg(m); err != nil {
  4728  		return nil, err
  4729  	}
  4730  	return m, nil
  4731  }
  4732  
  4733  func _Router_UpdateChanStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4734  	in := new(UpdateChanStatusRequest)
  4735  	if err := dec(in); err != nil {
  4736  		return nil, err
  4737  	}
  4738  	if interceptor == nil {
  4739  		return srv.(RouterServer).UpdateChanStatus(ctx, in)
  4740  	}
  4741  	info := &grpc.UnaryServerInfo{
  4742  		Server:     srv,
  4743  		FullMethod: "/routerrpc.Router/UpdateChanStatus",
  4744  	}
  4745  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4746  		return srv.(RouterServer).UpdateChanStatus(ctx, req.(*UpdateChanStatusRequest))
  4747  	}
  4748  	return interceptor(ctx, in, info, handler)
  4749  }
  4750  
  4751  var _Router_serviceDesc = grpc.ServiceDesc{
  4752  	ServiceName: "routerrpc.Router",
  4753  	HandlerType: (*RouterServer)(nil),
  4754  	Methods: []grpc.MethodDesc{
  4755  		{
  4756  			MethodName: "EstimateRouteFee",
  4757  			Handler:    _Router_EstimateRouteFee_Handler,
  4758  		},
  4759  		{
  4760  			MethodName: "SendToRoute",
  4761  			Handler:    _Router_SendToRoute_Handler,
  4762  		},
  4763  		{
  4764  			MethodName: "SendToRouteV2",
  4765  			Handler:    _Router_SendToRouteV2_Handler,
  4766  		},
  4767  		{
  4768  			MethodName: "ResetMissionControl",
  4769  			Handler:    _Router_ResetMissionControl_Handler,
  4770  		},
  4771  		{
  4772  			MethodName: "QueryMissionControl",
  4773  			Handler:    _Router_QueryMissionControl_Handler,
  4774  		},
  4775  		{
  4776  			MethodName: "XImportMissionControl",
  4777  			Handler:    _Router_XImportMissionControl_Handler,
  4778  		},
  4779  		{
  4780  			MethodName: "GetMissionControlConfig",
  4781  			Handler:    _Router_GetMissionControlConfig_Handler,
  4782  		},
  4783  		{
  4784  			MethodName: "SetMissionControlConfig",
  4785  			Handler:    _Router_SetMissionControlConfig_Handler,
  4786  		},
  4787  		{
  4788  			MethodName: "QueryProbability",
  4789  			Handler:    _Router_QueryProbability_Handler,
  4790  		},
  4791  		{
  4792  			MethodName: "BuildRoute",
  4793  			Handler:    _Router_BuildRoute_Handler,
  4794  		},
  4795  		{
  4796  			MethodName: "UpdateChanStatus",
  4797  			Handler:    _Router_UpdateChanStatus_Handler,
  4798  		},
  4799  	},
  4800  	Streams: []grpc.StreamDesc{
  4801  		{
  4802  			StreamName:    "SendPaymentV2",
  4803  			Handler:       _Router_SendPaymentV2_Handler,
  4804  			ServerStreams: true,
  4805  		},
  4806  		{
  4807  			StreamName:    "TrackPaymentV2",
  4808  			Handler:       _Router_TrackPaymentV2_Handler,
  4809  			ServerStreams: true,
  4810  		},
  4811  		{
  4812  			StreamName:    "SubscribeHtlcEvents",
  4813  			Handler:       _Router_SubscribeHtlcEvents_Handler,
  4814  			ServerStreams: true,
  4815  		},
  4816  		{
  4817  			StreamName:    "SendPayment",
  4818  			Handler:       _Router_SendPayment_Handler,
  4819  			ServerStreams: true,
  4820  		},
  4821  		{
  4822  			StreamName:    "TrackPayment",
  4823  			Handler:       _Router_TrackPayment_Handler,
  4824  			ServerStreams: true,
  4825  		},
  4826  		{
  4827  			StreamName:    "HtlcInterceptor",
  4828  			Handler:       _Router_HtlcInterceptor_Handler,
  4829  			ServerStreams: true,
  4830  			ClientStreams: true,
  4831  		},
  4832  	},
  4833  	Metadata: "routerrpc/router.proto",
  4834  }