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

package rtconfig

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	math "math"
)

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

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

// RuntimeConfig is the data object holding configs reloadable during runtime
// numeric field name should end with unit, eg. gwei, ms
// Next tag: 21
type RuntimeConfig struct {
	// wait seconds before accepting next open chan request
	// if 0, means no wait. negative values are treated as 0
	// use int64 instead of uint64 because golang time use int64
	OpenChanWaitS int64 `protobuf:"varint,1,opt,name=open_chan_wait_s,json=openChanWaitS,proto3" json:"open_chan_wait_s,omitempty"`
	// minimal gas price in gwei for onchain tx
	// 0 isn't a valid value
	MinGasGwei uint64 `protobuf:"varint,2,opt,name=min_gas_gwei,json=minGasGwei,proto3" json:"min_gas_gwei,omitempty"`
	// max gas price in gwei for onchain tx
	// if 0, means no max
	MaxGasGwei uint64 `protobuf:"varint,3,opt,name=max_gas_gwei,json=maxGasGwei,proto3" json:"max_gas_gwei,omitempty"`
	// add gas price to the suggested price to speed up transaction
	AddGasGwei uint64 `protobuf:"varint,20,opt,name=add_gas_gwei,json=addGasGwei,proto3" json:"add_gas_gwei,omitempty"`
	// wait time (in seconds) of stream send.
	StreamSendTimeoutS uint64 `protobuf:"varint,4,opt,name=stream_send_timeout_s,json=streamSendTimeoutS,proto3" json:"stream_send_timeout_s,omitempty"`
	// decimal. eth deposit cap for cold bootstrap
	EthColdBootstrapDeposit string `protobuf:"bytes,5,opt,name=eth_cold_bootstrap_deposit,json=ethColdBootstrapDeposit,proto3" json:"eth_cold_bootstrap_deposit,omitempty"`
	// key:hex without "0x", value:decimal. Per token deposit cap for cold bootstrap
	Erc20ColdBootstrapDepositMap map[string]string `protobuf:"bytes,6,rep,name=erc20_cold_bootstrap_deposit_map,json=erc20ColdBootstrapDepositMap,proto3" json:"erc20_cold_bootstrap_deposit_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// decimal. Default token deposit cap for cold bootstrap
	Erc20ColdBootstrapDepositDefault string `protobuf:"bytes,7,opt,name=erc20_cold_bootstrap_deposit_default,json=erc20ColdBootstrapDepositDefault,proto3" json:"erc20_cold_bootstrap_deposit_default,omitempty"`
	// Multiplier cap
	OspDepositMultiplier int64 `protobuf:"varint,8,opt,name=osp_deposit_multiplier,json=ospDepositMultiplier,proto3" json:"osp_deposit_multiplier,omitempty"`
	// max dispute timeout in open channel request.
	MaxDisputeTimeout uint64 `protobuf:"varint,9,opt,name=max_dispute_timeout,json=maxDisputeTimeout,proto3" json:"max_dispute_timeout,omitempty"`
	// min dispute timeout in open channel request.
	MinDisputeTimeout uint64 `protobuf:"varint,10,opt,name=min_dispute_timeout,json=minDisputeTimeout,proto3" json:"min_dispute_timeout,omitempty"`
	// log level: trace, debug, info, warn, error, fatal, panic
	LogLevel        string           `protobuf:"bytes,11,opt,name=log_level,json=logLevel,proto3" json:"log_level,omitempty"`
	TcbConfigs      *TcbConfigs      `protobuf:"bytes,12,opt,name=tcb_configs,json=tcbConfigs,proto3" json:"tcb_configs,omitempty"`
	StandardConfigs *StandardConfigs `protobuf:"bytes,13,opt,name=standard_configs,json=standardConfigs,proto3" json:"standard_configs,omitempty"`
	// OspToOsp config is keyed by pair (peerOspAddr, tokenAddr)
	OspToOspOpenConfigs *OspToOspOpenConfigs `protobuf:"bytes,17,opt,name=osp_to_osp_open_configs,json=ospToOspOpenConfigs,proto3" json:"osp_to_osp_open_configs,omitempty"`
	// max payment timeout (in block number) OSP accepts
	MaxPaymentTimeout uint64 `protobuf:"varint,14,opt,name=max_payment_timeout,json=maxPaymentTimeout,proto3" json:"max_payment_timeout,omitempty"`
	// max number of pending pay IDs in the simplex state
	MaxNumPendingPays uint64 `protobuf:"varint,15,opt,name=max_num_pending_pays,json=maxNumPendingPays,proto3" json:"max_num_pending_pays,omitempty"`
	// channel refill configuration
	RefillConfigs *RefillConfigs `protobuf:"bytes,16,opt,name=refill_configs,json=refillConfigs,proto3" json:"refill_configs,omitempty"`
	// deposit configuration
	DepositConfig *DepositConfig `protobuf:"bytes,18,opt,name=deposit_config,json=depositConfig,proto3" json:"deposit_config,omitempty"`
	// config to wait mined tx
	WaitMinedConfig      *WaitMinedConfig `protobuf:"bytes,19,opt,name=wait_mined_config,json=waitMinedConfig,proto3" json:"wait_mined_config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

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

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

var xxx_messageInfo_RuntimeConfig proto.InternalMessageInfo

func (m *RuntimeConfig) GetOpenChanWaitS() int64 {
	if m != nil {
		return m.OpenChanWaitS
	}
	return 0
}

func (m *RuntimeConfig) GetMinGasGwei() uint64 {
	if m != nil {
		return m.MinGasGwei
	}
	return 0
}

func (m *RuntimeConfig) GetMaxGasGwei() uint64 {
	if m != nil {
		return m.MaxGasGwei
	}
	return 0
}

func (m *RuntimeConfig) GetAddGasGwei() uint64 {
	if m != nil {
		return m.AddGasGwei
	}
	return 0
}

func (m *RuntimeConfig) GetStreamSendTimeoutS() uint64 {
	if m != nil {
		return m.StreamSendTimeoutS
	}
	return 0
}

func (m *RuntimeConfig) GetEthColdBootstrapDeposit() string {
	if m != nil {
		return m.EthColdBootstrapDeposit
	}
	return ""
}

func (m *RuntimeConfig) GetErc20ColdBootstrapDepositMap() map[string]string {
	if m != nil {
		return m.Erc20ColdBootstrapDepositMap
	}
	return nil
}

func (m *RuntimeConfig) GetErc20ColdBootstrapDepositDefault() string {
	if m != nil {
		return m.Erc20ColdBootstrapDepositDefault
	}
	return ""
}

func (m *RuntimeConfig) GetOspDepositMultiplier() int64 {
	if m != nil {
		return m.OspDepositMultiplier
	}
	return 0
}

func (m *RuntimeConfig) GetMaxDisputeTimeout() uint64 {
	if m != nil {
		return m.MaxDisputeTimeout
	}
	return 0
}

func (m *RuntimeConfig) GetMinDisputeTimeout() uint64 {
	if m != nil {
		return m.MinDisputeTimeout
	}
	return 0
}

func (m *RuntimeConfig) GetLogLevel() string {
	if m != nil {
		return m.LogLevel
	}
	return ""
}

func (m *RuntimeConfig) GetTcbConfigs() *TcbConfigs {
	if m != nil {
		return m.TcbConfigs
	}
	return nil
}

func (m *RuntimeConfig) GetStandardConfigs() *StandardConfigs {
	if m != nil {
		return m.StandardConfigs
	}
	return nil
}

func (m *RuntimeConfig) GetOspToOspOpenConfigs() *OspToOspOpenConfigs {
	if m != nil {
		return m.OspToOspOpenConfigs
	}
	return nil
}

func (m *RuntimeConfig) GetMaxPaymentTimeout() uint64 {
	if m != nil {
		return m.MaxPaymentTimeout
	}
	return 0
}

func (m *RuntimeConfig) GetMaxNumPendingPays() uint64 {
	if m != nil {
		return m.MaxNumPendingPays
	}
	return 0
}

func (m *RuntimeConfig) GetRefillConfigs() *RefillConfigs {
	if m != nil {
		return m.RefillConfigs
	}
	return nil
}

func (m *RuntimeConfig) GetDepositConfig() *DepositConfig {
	if m != nil {
		return m.DepositConfig
	}
	return nil
}

func (m *RuntimeConfig) GetWaitMinedConfig() *WaitMinedConfig {
	if m != nil {
		return m.WaitMinedConfig
	}
	return nil
}

// Next Tag: 3
type Token struct {
	ErcType              string   `protobuf:"bytes,1,opt,name=erc_type,json=ercType,proto3" json:"erc_type,omitempty"`
	Address              string   `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_Token proto.InternalMessageInfo

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

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

// Next Tag: 6
type TcbConfig struct {
	Token                      *Token   `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	MaxOspDeposit              string   `protobuf:"bytes,2,opt,name=max_osp_deposit,json=maxOspDeposit,proto3" json:"max_osp_deposit,omitempty"`
	OnchainBalanceSafeMargin   string   `protobuf:"bytes,3,opt,name=onchain_balance_safe_margin,json=onchainBalanceSafeMargin,proto3" json:"onchain_balance_safe_margin,omitempty"`
	RequiredSocialVerification bool     `protobuf:"varint,4,opt,name=required_social_verification,json=requiredSocialVerification,proto3" json:"required_social_verification,omitempty"`
	SkipOverCommitCheck        bool     `protobuf:"varint,5,opt,name=skip_over_commit_check,json=skipOverCommitCheck,proto3" json:"skip_over_commit_check,omitempty"`
	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
	XXX_unrecognized           []byte   `json:"-"`
	XXX_sizecache              int32    `json:"-"`
}

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

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

var xxx_messageInfo_TcbConfig proto.InternalMessageInfo

func (m *TcbConfig) GetToken() *Token {
	if m != nil {
		return m.Token
	}
	return nil
}

func (m *TcbConfig) GetMaxOspDeposit() string {
	if m != nil {
		return m.MaxOspDeposit
	}
	return ""
}

func (m *TcbConfig) GetOnchainBalanceSafeMargin() string {
	if m != nil {
		return m.OnchainBalanceSafeMargin
	}
	return ""
}

func (m *TcbConfig) GetRequiredSocialVerification() bool {
	if m != nil {
		return m.RequiredSocialVerification
	}
	return false
}

func (m *TcbConfig) GetSkipOverCommitCheck() bool {
	if m != nil {
		return m.SkipOverCommitCheck
	}
	return false
}

// Next Tag: 2
type TcbConfigs struct {
	Config               map[string]*TcbConfig `protobuf:"bytes,1,rep,name=config,proto3" json:"config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_TcbConfigs proto.InternalMessageInfo

func (m *TcbConfigs) GetConfig() map[string]*TcbConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

// Next Tag: 7
type StandardConfig struct {
	Token            *Token `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	MinDeposit       string `protobuf:"bytes,5,opt,name=min_deposit,json=minDeposit,proto3" json:"min_deposit,omitempty"`
	MaxDeposit       string `protobuf:"bytes,2,opt,name=max_deposit,json=maxDeposit,proto3" json:"max_deposit,omitempty"`
	MinDeadlineDelta uint64 `protobuf:"varint,3,opt,name=min_deadline_delta,json=minDeadlineDelta,proto3" json:"min_deadline_delta,omitempty"`
	MaxDeadlineDelta uint64 `protobuf:"varint,4,opt,name=max_deadline_delta,json=maxDeadlineDelta,proto3" json:"max_deadline_delta,omitempty"`
	// matching ratio of approving osp
	// deposit of approving osp / deposit of requesting osp <= matching ratio
	MatchingRatio        float32  `protobuf:"fixed32,6,opt,name=matching_ratio,json=matchingRatio,proto3" json:"matching_ratio,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_StandardConfig proto.InternalMessageInfo

func (m *StandardConfig) GetToken() *Token {
	if m != nil {
		return m.Token
	}
	return nil
}

func (m *StandardConfig) GetMinDeposit() string {
	if m != nil {
		return m.MinDeposit
	}
	return ""
}

func (m *StandardConfig) GetMaxDeposit() string {
	if m != nil {
		return m.MaxDeposit
	}
	return ""
}

func (m *StandardConfig) GetMinDeadlineDelta() uint64 {
	if m != nil {
		return m.MinDeadlineDelta
	}
	return 0
}

func (m *StandardConfig) GetMaxDeadlineDelta() uint64 {
	if m != nil {
		return m.MaxDeadlineDelta
	}
	return 0
}

func (m *StandardConfig) GetMatchingRatio() float32 {
	if m != nil {
		return m.MatchingRatio
	}
	return 0
}

// Next Tag: 2
type StandardConfigs struct {
	// keyed by token addr.
	Config               map[string]*StandardConfig `protobuf:"bytes,1,rep,name=config,proto3" json:"config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

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

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

var xxx_messageInfo_StandardConfigs proto.InternalMessageInfo

func (m *StandardConfigs) GetConfig() map[string]*StandardConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

// Next Tag: 2
type OspToOspOpenConfig struct {
	// tokenAddr -> OneTokenOspToOspOpenConfig
	TokensConfig         map[string]*StandardConfig `protobuf:"bytes,1,rep,name=tokens_config,json=tokensConfig,proto3" json:"tokens_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

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

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

var xxx_messageInfo_OspToOspOpenConfig proto.InternalMessageInfo

func (m *OspToOspOpenConfig) GetTokensConfig() map[string]*StandardConfig {
	if m != nil {
		return m.TokensConfig
	}
	return nil
}

// Next Tag: 2
type OspToOspOpenConfigs struct {
	// ospAddr ->  OspToOspOpenConfig
	Configs              map[string]*OspToOspOpenConfig `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
	XXX_unrecognized     []byte                         `json:"-"`
	XXX_sizecache        int32                          `json:"-"`
}

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

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

var xxx_messageInfo_OspToOspOpenConfigs proto.InternalMessageInfo

func (m *OspToOspOpenConfigs) GetConfigs() map[string]*OspToOspOpenConfig {
	if m != nil {
		return m.Configs
	}
	return nil
}

// Next Tag: 4
type RefillConfig struct {
	Token                *Token   `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	Threshold            string   `protobuf:"bytes,2,opt,name=threshold,proto3" json:"threshold,omitempty"`
	RefillAmount         string   `protobuf:"bytes,3,opt,name=refill_amount,json=refillAmount,proto3" json:"refill_amount,omitempty"`
	PoolSize             string   `protobuf:"bytes,4,opt,name=pool_size,json=poolSize,proto3" json:"pool_size,omitempty"`
	PoolLowRatio         float64  `protobuf:"fixed64,5,opt,name=pool_low_ratio,json=poolLowRatio,proto3" json:"pool_low_ratio,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_RefillConfig proto.InternalMessageInfo

func (m *RefillConfig) GetToken() *Token {
	if m != nil {
		return m.Token
	}
	return nil
}

func (m *RefillConfig) GetThreshold() string {
	if m != nil {
		return m.Threshold
	}
	return ""
}

func (m *RefillConfig) GetRefillAmount() string {
	if m != nil {
		return m.RefillAmount
	}
	return ""
}

func (m *RefillConfig) GetPoolSize() string {
	if m != nil {
		return m.PoolSize
	}
	return ""
}

func (m *RefillConfig) GetPoolLowRatio() float64 {
	if m != nil {
		return m.PoolLowRatio
	}
	return 0
}

// Next Tag: 3
type RefillConfigs struct {
	Config map[string]*RefillConfig `protobuf:"bytes,1,rep,name=config,proto3" json:"config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// max batch waiting time in seconds
	MaxWaitS             uint64   `protobuf:"varint,2,opt,name=max_wait_s,json=maxWaitS,proto3" json:"max_wait_s,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_RefillConfigs proto.InternalMessageInfo

func (m *RefillConfigs) GetConfig() map[string]*RefillConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *RefillConfigs) GetMaxWaitS() uint64 {
	if m != nil {
		return m.MaxWaitS
	}
	return 0
}

// Next Tag: 4
type DepositConfig struct {
	// deposit polling interval in seconds
	PollingIntervalS     uint64   `protobuf:"varint,1,opt,name=polling_interval_s,json=pollingIntervalS,proto3" json:"polling_interval_s,omitempty"`
	MinBatchSize         uint64   `protobuf:"varint,2,opt,name=min_batch_size,json=minBatchSize,proto3" json:"min_batch_size,omitempty"`
	MaxBatchSize         uint64   `protobuf:"varint,3,opt,name=max_batch_size,json=maxBatchSize,proto3" json:"max_batch_size,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_DepositConfig proto.InternalMessageInfo

func (m *DepositConfig) GetPollingIntervalS() uint64 {
	if m != nil {
		return m.PollingIntervalS
	}
	return 0
}

func (m *DepositConfig) GetMinBatchSize() uint64 {
	if m != nil {
		return m.MinBatchSize
	}
	return 0
}

func (m *DepositConfig) GetMaxBatchSize() uint64 {
	if m != nil {
		return m.MaxBatchSize
	}
	return 0
}

type WaitMinedConfig struct {
	TxTimeoutS            uint64   `protobuf:"varint,1,opt,name=tx_timeout_s,json=txTimeoutS,proto3" json:"tx_timeout_s,omitempty"`
	TxQueryTimeoutS       uint64   `protobuf:"varint,2,opt,name=tx_query_timeout_s,json=txQueryTimeoutS,proto3" json:"tx_query_timeout_s,omitempty"`
	TxQueryRetryIntervalS uint64   `protobuf:"varint,3,opt,name=tx_query_retry_interval_s,json=txQueryRetryIntervalS,proto3" json:"tx_query_retry_interval_s,omitempty"`
	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
	XXX_unrecognized      []byte   `json:"-"`
	XXX_sizecache         int32    `json:"-"`
}

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

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

var xxx_messageInfo_WaitMinedConfig proto.InternalMessageInfo

func (m *WaitMinedConfig) GetTxTimeoutS() uint64 {
	if m != nil {
		return m.TxTimeoutS
	}
	return 0
}

func (m *WaitMinedConfig) GetTxQueryTimeoutS() uint64 {
	if m != nil {
		return m.TxQueryTimeoutS
	}
	return 0
}

func (m *WaitMinedConfig) GetTxQueryRetryIntervalS() uint64 {
	if m != nil {
		return m.TxQueryRetryIntervalS
	}
	return 0
}

func init() {
	proto.RegisterType((*RuntimeConfig)(nil), "RuntimeConfig")
	proto.RegisterMapType((map[string]string)(nil), "RuntimeConfig.Erc20ColdBootstrapDepositMapEntry")
	proto.RegisterType((*Token)(nil), "Token")
	proto.RegisterType((*TcbConfig)(nil), "TcbConfig")
	proto.RegisterType((*TcbConfigs)(nil), "TcbConfigs")
	proto.RegisterMapType((map[string]*TcbConfig)(nil), "TcbConfigs.ConfigEntry")
	proto.RegisterType((*StandardConfig)(nil), "StandardConfig")
	proto.RegisterType((*StandardConfigs)(nil), "StandardConfigs")
	proto.RegisterMapType((map[string]*StandardConfig)(nil), "StandardConfigs.ConfigEntry")
	proto.RegisterType((*OspToOspOpenConfig)(nil), "OspToOspOpenConfig")
	proto.RegisterMapType((map[string]*StandardConfig)(nil), "OspToOspOpenConfig.TokensConfigEntry")
	proto.RegisterType((*OspToOspOpenConfigs)(nil), "OspToOspOpenConfigs")
	proto.RegisterMapType((map[string]*OspToOspOpenConfig)(nil), "OspToOspOpenConfigs.ConfigsEntry")
	proto.RegisterType((*RefillConfig)(nil), "RefillConfig")
	proto.RegisterType((*RefillConfigs)(nil), "RefillConfigs")
	proto.RegisterMapType((map[string]*RefillConfig)(nil), "RefillConfigs.ConfigEntry")
	proto.RegisterType((*DepositConfig)(nil), "DepositConfig")
	proto.RegisterType((*WaitMinedConfig)(nil), "WaitMinedConfig")
}

func init() { proto.RegisterFile("config.proto", fileDescriptor_3eaf2c85e69e9ea4) }

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