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

/*
Package gobgpapi is a generated protocol buffer package.

It is generated from these files:
	gobgp.proto
	attribute.proto
	capability.proto

It has these top-level messages:
	StartBgpRequest
	StopBgpRequest
	GetBgpRequest
	GetBgpResponse
	AddPeerRequest
	DeletePeerRequest
	ListPeerRequest
	ListPeerResponse
	UpdatePeerRequest
	UpdatePeerResponse
	ResetPeerRequest
	ShutdownPeerRequest
	EnablePeerRequest
	DisablePeerRequest
	MonitorPeerRequest
	MonitorPeerResponse
	AddPeerGroupRequest
	DeletePeerGroupRequest
	UpdatePeerGroupRequest
	UpdatePeerGroupResponse
	AddDynamicNeighborRequest
	AddPathRequest
	AddPathResponse
	DeletePathRequest
	ListPathRequest
	ListPathResponse
	AddPathStreamRequest
	GetTableRequest
	GetTableResponse
	MonitorTableRequest
	MonitorTableResponse
	AddVrfRequest
	DeleteVrfRequest
	ListVrfRequest
	ListVrfResponse
	AddPolicyRequest
	DeletePolicyRequest
	ListPolicyRequest
	ListPolicyResponse
	SetPoliciesRequest
	AddDefinedSetRequest
	DeleteDefinedSetRequest
	ListDefinedSetRequest
	ListDefinedSetResponse
	AddStatementRequest
	DeleteStatementRequest
	ListStatementRequest
	ListStatementResponse
	AddPolicyAssignmentRequest
	DeletePolicyAssignmentRequest
	ListPolicyAssignmentRequest
	ListPolicyAssignmentResponse
	SetPolicyAssignmentRequest
	AddRpkiRequest
	DeleteRpkiRequest
	ListRpkiRequest
	ListRpkiResponse
	EnableRpkiRequest
	DisableRpkiRequest
	ResetRpkiRequest
	ListRpkiTableRequest
	ListRpkiTableResponse
	EnableZebraRequest
	EnableMrtRequest
	DisableMrtRequest
	AddBmpRequest
	DeleteBmpRequest
	Family
	Validation
	Path
	Destination
	TableLookupPrefix
	Peer
	PeerGroup
	DynamicNeighbor
	ApplyPolicy
	PrefixLimit
	PeerConf
	PeerGroupConf
	PeerGroupState
	EbgpMultihop
	RouteReflector
	PeerState
	Messages
	Message
	Queues
	Timers
	TimersConfig
	TimersState
	Transport
	RouteServer
	GracefulRestart
	MpGracefulRestartConfig
	MpGracefulRestartState
	MpGracefulRestart
	AfiSafiConfig
	AfiSafiState
	RouteSelectionOptionsConfig
	RouteSelectionOptionsState
	RouteSelectionOptions
	UseMultiplePathsConfig
	UseMultiplePathsState
	EbgpConfig
	EbgpState
	Ebgp
	IbgpConfig
	IbgpState
	Ibgp
	UseMultiplePaths
	RouteTargetMembershipConfig
	RouteTargetMembershipState
	RouteTargetMembership
	LongLivedGracefulRestartConfig
	LongLivedGracefulRestartState
	LongLivedGracefulRestart
	AfiSafi
	AddPathsConfig
	AddPathsState
	AddPaths
	Prefix
	DefinedSet
	MatchSet
	AsPathLength
	Conditions
	CommunityAction
	MedAction
	AsPrependAction
	NexthopAction
	LocalPrefAction
	Actions
	Statement
	Policy
	PolicyAssignment
	RoutingPolicy
	Roa
	Vrf
	DefaultRouteDistance
	Global
	Confederation
	RPKIConf
	RPKIState
	Rpki
	OriginAttribute
	AsSegment
	AsPathAttribute
	NextHopAttribute
	MultiExitDiscAttribute
	LocalPrefAttribute
	AtomicAggregateAttribute
	AggregatorAttribute
	CommunitiesAttribute
	OriginatorIdAttribute
	ClusterListAttribute
	IPAddressPrefix
	LabeledIPAddressPrefix
	EncapsulationNLRI
	RouteDistinguisherTwoOctetAS
	RouteDistinguisherIPAddress
	RouteDistinguisherFourOctetAS
	EthernetSegmentIdentifier
	EVPNEthernetAutoDiscoveryRoute
	EVPNMACIPAdvertisementRoute
	EVPNInclusiveMulticastEthernetTagRoute
	EVPNEthernetSegmentRoute
	EVPNIPPrefixRoute
	LabeledVPNIPAddressPrefix
	RouteTargetMembershipNLRI
	FlowSpecIPPrefix
	FlowSpecMAC
	FlowSpecComponentItem
	FlowSpecComponent
	FlowSpecNLRI
	VPNFlowSpecNLRI
	OpaqueNLRI
	MpReachNLRIAttribute
	MpUnreachNLRIAttribute
	TwoOctetAsSpecificExtended
	IPv4AddressSpecificExtended
	FourOctetAsSpecificExtended
	ValidationExtended
	ColorExtended
	EncapExtended
	DefaultGatewayExtended
	OpaqueExtended
	ESILabelExtended
	ESImportRouteTarget
	MacMobilityExtended
	RouterMacExtended
	TrafficRateExtended
	TrafficActionExtended
	RedirectTwoOctetAsSpecificExtended
	RedirectIPv4AddressSpecificExtended
	RedirectFourOctetAsSpecificExtended
	TrafficRemarkExtended
	UnknownExtended
	ExtendedCommunitiesAttribute
	As4PathAttribute
	As4AggregatorAttribute
	PmsiTunnelAttribute
	TunnelEncapSubTLVEncapsulation
	TunnelEncapSubTLVProtocol
	TunnelEncapSubTLVColor
	TunnelEncapSubTLVUnknown
	TunnelEncapTLV
	TunnelEncapAttribute
	IPv6AddressSpecificExtended
	RedirectIPv6AddressSpecificExtended
	IP6ExtendedCommunitiesAttribute
	AigpTLVIGPMetric
	AigpTLVUnknown
	AigpAttribute
	LargeCommunity
	LargeCommunitiesAttribute
	UnknownAttribute
	MultiProtocolCapability
	RouteRefreshCapability
	CarryingLabelInfoCapability
	ExtendedNexthopCapabilityTuple
	ExtendedNexthopCapability
	GracefulRestartCapabilityTuple
	GracefulRestartCapability
	FourOctetASNumberCapability
	AddPathCapabilityTuple
	AddPathCapability
	EnhancedRouteRefreshCapability
	LongLivedGracefulRestartCapabilityTuple
	LongLivedGracefulRestartCapability
	RouteRefreshCiscoCapability
	UnknownCapability
*/
package gobgpapi

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "github.com/golang/protobuf/ptypes/any"
import google_protobuf1 "github.com/golang/protobuf/ptypes/empty"
import google_protobuf2 "github.com/golang/protobuf/ptypes/timestamp"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// 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.ProtoPackageIsVersion2 // please upgrade the proto package

type TableType int32

const (
	TableType_GLOBAL  TableType = 0
	TableType_LOCAL   TableType = 1
	TableType_ADJ_IN  TableType = 2
	TableType_ADJ_OUT TableType = 3
	TableType_VRF     TableType = 4
)

var TableType_name = map[int32]string{
	0: "GLOBAL",
	1: "LOCAL",
	2: "ADJ_IN",
	3: "ADJ_OUT",
	4: "VRF",
}
var TableType_value = map[string]int32{
	"GLOBAL":  0,
	"LOCAL":   1,
	"ADJ_IN":  2,
	"ADJ_OUT": 3,
	"VRF":     4,
}

func (x TableType) String() string {
	return proto.EnumName(TableType_name, int32(x))
}
func (TableType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

// API representation of table.LookupOption
type TableLookupOption int32

const (
	TableLookupOption_LOOKUP_EXACT   TableLookupOption = 0
	TableLookupOption_LOOKUP_LONGER  TableLookupOption = 1
	TableLookupOption_LOOKUP_SHORTER TableLookupOption = 2
)

var TableLookupOption_name = map[int32]string{
	0: "LOOKUP_EXACT",
	1: "LOOKUP_LONGER",
	2: "LOOKUP_SHORTER",
}
var TableLookupOption_value = map[string]int32{
	"LOOKUP_EXACT":   0,
	"LOOKUP_LONGER":  1,
	"LOOKUP_SHORTER": 2,
}

func (x TableLookupOption) String() string {
	return proto.EnumName(TableLookupOption_name, int32(x))
}
func (TableLookupOption) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

type DefinedType int32

const (
	DefinedType_PREFIX          DefinedType = 0
	DefinedType_NEIGHBOR        DefinedType = 1
	DefinedType_TAG             DefinedType = 2
	DefinedType_AS_PATH         DefinedType = 3
	DefinedType_COMMUNITY       DefinedType = 4
	DefinedType_EXT_COMMUNITY   DefinedType = 5
	DefinedType_LARGE_COMMUNITY DefinedType = 6
	DefinedType_NEXT_HOP        DefinedType = 7
)

var DefinedType_name = map[int32]string{
	0: "PREFIX",
	1: "NEIGHBOR",
	2: "TAG",
	3: "AS_PATH",
	4: "COMMUNITY",
	5: "EXT_COMMUNITY",
	6: "LARGE_COMMUNITY",
	7: "NEXT_HOP",
}
var DefinedType_value = map[string]int32{
	"PREFIX":          0,
	"NEIGHBOR":        1,
	"TAG":             2,
	"AS_PATH":         3,
	"COMMUNITY":       4,
	"EXT_COMMUNITY":   5,
	"LARGE_COMMUNITY": 6,
	"NEXT_HOP":        7,
}

func (x DefinedType) String() string {
	return proto.EnumName(DefinedType_name, int32(x))
}
func (DefinedType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

type MatchType int32

const (
	MatchType_ANY    MatchType = 0
	MatchType_ALL    MatchType = 1
	MatchType_INVERT MatchType = 2
)

var MatchType_name = map[int32]string{
	0: "ANY",
	1: "ALL",
	2: "INVERT",
}
var MatchType_value = map[string]int32{
	"ANY":    0,
	"ALL":    1,
	"INVERT": 2,
}

func (x MatchType) String() string {
	return proto.EnumName(MatchType_name, int32(x))
}
func (MatchType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

type AsPathLengthType int32

const (
	AsPathLengthType_EQ AsPathLengthType = 0
	AsPathLengthType_GE AsPathLengthType = 1
	AsPathLengthType_LE AsPathLengthType = 2
)

var AsPathLengthType_name = map[int32]string{
	0: "EQ",
	1: "GE",
	2: "LE",
}
var AsPathLengthType_value = map[string]int32{
	"EQ": 0,
	"GE": 1,
	"LE": 2,
}

func (x AsPathLengthType) String() string {
	return proto.EnumName(AsPathLengthType_name, int32(x))
}
func (AsPathLengthType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

type RouteAction int32

const (
	RouteAction_NONE   RouteAction = 0
	RouteAction_ACCEPT RouteAction = 1
	RouteAction_REJECT RouteAction = 2
)

var RouteAction_name = map[int32]string{
	0: "NONE",
	1: "ACCEPT",
	2: "REJECT",
}
var RouteAction_value = map[string]int32{
	"NONE":   0,
	"ACCEPT": 1,
	"REJECT": 2,
}

func (x RouteAction) String() string {
	return proto.EnumName(RouteAction_name, int32(x))
}
func (RouteAction) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }

type CommunityActionType int32

const (
	CommunityActionType_COMMUNITY_ADD     CommunityActionType = 0
	CommunityActionType_COMMUNITY_REMOVE  CommunityActionType = 1
	CommunityActionType_COMMUNITY_REPLACE CommunityActionType = 2
)

var CommunityActionType_name = map[int32]string{
	0: "COMMUNITY_ADD",
	1: "COMMUNITY_REMOVE",
	2: "COMMUNITY_REPLACE",
}
var CommunityActionType_value = map[string]int32{
	"COMMUNITY_ADD":     0,
	"COMMUNITY_REMOVE":  1,
	"COMMUNITY_REPLACE": 2,
}

func (x CommunityActionType) String() string {
	return proto.EnumName(CommunityActionType_name, int32(x))
}
func (CommunityActionType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

type MedActionType int32

const (
	MedActionType_MED_MOD     MedActionType = 0
	MedActionType_MED_REPLACE MedActionType = 1
)

var MedActionType_name = map[int32]string{
	0: "MED_MOD",
	1: "MED_REPLACE",
}
var MedActionType_value = map[string]int32{
	"MED_MOD":     0,
	"MED_REPLACE": 1,
}

func (x MedActionType) String() string {
	return proto.EnumName(MedActionType_name, int32(x))
}
func (MedActionType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

type PolicyDirection int32

const (
	PolicyDirection_UNKNOWN PolicyDirection = 0
	PolicyDirection_IMPORT  PolicyDirection = 1
	PolicyDirection_EXPORT  PolicyDirection = 2
)

var PolicyDirection_name = map[int32]string{
	0: "UNKNOWN",
	1: "IMPORT",
	2: "EXPORT",
}
var PolicyDirection_value = map[string]int32{
	"UNKNOWN": 0,
	"IMPORT":  1,
	"EXPORT":  2,
}

func (x PolicyDirection) String() string {
	return proto.EnumName(PolicyDirection_name, int32(x))
}
func (PolicyDirection) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }

type ResetPeerRequest_SoftResetDirection int32

const (
	ResetPeerRequest_IN   ResetPeerRequest_SoftResetDirection = 0
	ResetPeerRequest_OUT  ResetPeerRequest_SoftResetDirection = 1
	ResetPeerRequest_BOTH ResetPeerRequest_SoftResetDirection = 2
)

var ResetPeerRequest_SoftResetDirection_name = map[int32]string{
	0: "IN",
	1: "OUT",
	2: "BOTH",
}
var ResetPeerRequest_SoftResetDirection_value = map[string]int32{
	"IN":   0,
	"OUT":  1,
	"BOTH": 2,
}

func (x ResetPeerRequest_SoftResetDirection) String() string {
	return proto.EnumName(ResetPeerRequest_SoftResetDirection_name, int32(x))
}
func (ResetPeerRequest_SoftResetDirection) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor0, []int{10, 0}
}

type ListPathRequest_SortType int32

const (
	ListPathRequest_NONE   ListPathRequest_SortType = 0
	ListPathRequest_PREFIX ListPathRequest_SortType = 1
)

var ListPathRequest_SortType_name = map[int32]string{
	0: "NONE",
	1: "PREFIX",
}
var ListPathRequest_SortType_value = map[string]int32{
	"NONE":   0,
	"PREFIX": 1,
}

func (x ListPathRequest_SortType) String() string {
	return proto.EnumName(ListPathRequest_SortType_name, int32(x))
}
func (ListPathRequest_SortType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{24, 0} }

type AddBmpRequest_MonitoringPolicy int32

const (
	AddBmpRequest_PRE   AddBmpRequest_MonitoringPolicy = 0
	AddBmpRequest_POST  AddBmpRequest_MonitoringPolicy = 1
	AddBmpRequest_BOTH  AddBmpRequest_MonitoringPolicy = 2
	AddBmpRequest_LOCAL AddBmpRequest_MonitoringPolicy = 3
	AddBmpRequest_ALL   AddBmpRequest_MonitoringPolicy = 4
)

var AddBmpRequest_MonitoringPolicy_name = map[int32]string{
	0: "PRE",
	1: "POST",
	2: "BOTH",
	3: "LOCAL",
	4: "ALL",
}
var AddBmpRequest_MonitoringPolicy_value = map[string]int32{
	"PRE":   0,
	"POST":  1,
	"BOTH":  2,
	"LOCAL": 3,
	"ALL":   4,
}

func (x AddBmpRequest_MonitoringPolicy) String() string {
	return proto.EnumName(AddBmpRequest_MonitoringPolicy_name, int32(x))
}
func (AddBmpRequest_MonitoringPolicy) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor0, []int{65, 0}
}

type Family_Afi int32

const (
	Family_AFI_UNKNOWN Family_Afi = 0
	Family_AFI_IP      Family_Afi = 1
	Family_AFI_IP6     Family_Afi = 2
	Family_AFI_L2VPN   Family_Afi = 25
	Family_AFI_OPAQUE  Family_Afi = 16397
)

var Family_Afi_name = map[int32]string{
	0:     "AFI_UNKNOWN",
	1:     "AFI_IP",
	2:     "AFI_IP6",
	25:    "AFI_L2VPN",
	16397: "AFI_OPAQUE",
}
var Family_Afi_value = map[string]int32{
	"AFI_UNKNOWN": 0,
	"AFI_IP":      1,
	"AFI_IP6":     2,
	"AFI_L2VPN":   25,
	"AFI_OPAQUE":  16397,
}

func (x Family_Afi) String() string {
	return proto.EnumName(Family_Afi_name, int32(x))
}
func (Family_Afi) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{67, 0} }

type Family_Safi int32

const (
	Family_SAFI_UNKNOWN                  Family_Safi = 0
	Family_SAFI_UNICAST                  Family_Safi = 1
	Family_SAFI_MULTICAST                Family_Safi = 2
	Family_SAFI_MPLS_LABEL               Family_Safi = 4
	Family_SAFI_ENCAPSULATION            Family_Safi = 7
	Family_SAFI_VPLS                     Family_Safi = 65
	Family_SAFI_EVPN                     Family_Safi = 70
	Family_SAFI_MPLS_VPN                 Family_Safi = 128
	Family_SAFI_MPLS_VPN_MULTICAST       Family_Safi = 129
	Family_SAFI_ROUTE_TARGET_CONSTRAINTS Family_Safi = 132
	Family_SAFI_FLOW_SPEC_UNICAST        Family_Safi = 133
	Family_SAFI_FLOW_SPEC_VPN            Family_Safi = 134
	Family_SAFI_KEY_VALUE                Family_Safi = 241
)

var Family_Safi_name = map[int32]string{
	0:   "SAFI_UNKNOWN",
	1:   "SAFI_UNICAST",
	2:   "SAFI_MULTICAST",
	4:   "SAFI_MPLS_LABEL",
	7:   "SAFI_ENCAPSULATION",
	65:  "SAFI_VPLS",
	70:  "SAFI_EVPN",
	128: "SAFI_MPLS_VPN",
	129: "SAFI_MPLS_VPN_MULTICAST",
	132: "SAFI_ROUTE_TARGET_CONSTRAINTS",
	133: "SAFI_FLOW_SPEC_UNICAST",
	134: "SAFI_FLOW_SPEC_VPN",
	241: "SAFI_KEY_VALUE",
}
var Family_Safi_value = map[string]int32{
	"SAFI_UNKNOWN":                  0,
	"SAFI_UNICAST":                  1,
	"SAFI_MULTICAST":                2,
	"SAFI_MPLS_LABEL":               4,
	"SAFI_ENCAPSULATION":            7,
	"SAFI_VPLS":                     65,
	"SAFI_EVPN":                     70,
	"SAFI_MPLS_VPN":                 128,
	"SAFI_MPLS_VPN_MULTICAST":       129,
	"SAFI_ROUTE_TARGET_CONSTRAINTS": 132,
	"SAFI_FLOW_SPEC_UNICAST":        133,
	"SAFI_FLOW_SPEC_VPN":            134,
	"SAFI_KEY_VALUE":                241,
}

func (x Family_Safi) String() string {
	return proto.EnumName(Family_Safi_name, int32(x))
}
func (Family_Safi) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{67, 1} }

type Validation_State int32

const (
	Validation_STATE_NONE      Validation_State = 0
	Validation_STATE_NOT_FOUND Validation_State = 1
	Validation_STATE_VALID     Validation_State = 2
	Validation_STATE_INVALID   Validation_State = 3
)

var Validation_State_name = map[int32]string{
	0: "STATE_NONE",
	1: "STATE_NOT_FOUND",
	2: "STATE_VALID",
	3: "STATE_INVALID",
}
var Validation_State_value = map[string]int32{
	"STATE_NONE":      0,
	"STATE_NOT_FOUND": 1,
	"STATE_VALID":     2,
	"STATE_INVALID":   3,
}

func (x Validation_State) String() string {
	return proto.EnumName(Validation_State_name, int32(x))
}
func (Validation_State) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{68, 0} }

type Validation_Reason int32

const (
	Validation_REASOT_NONE   Validation_Reason = 0
	Validation_REASON_AS     Validation_Reason = 1
	Validation_REASON_LENGTH Validation_Reason = 2
)

var Validation_Reason_name = map[int32]string{
	0: "REASOT_NONE",
	1: "REASON_AS",
	2: "REASON_LENGTH",
}
var Validation_Reason_value = map[string]int32{
	"REASOT_NONE":   0,
	"REASON_AS":     1,
	"REASON_LENGTH": 2,
}

func (x Validation_Reason) String() string {
	return proto.EnumName(Validation_Reason_name, int32(x))
}
func (Validation_Reason) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{68, 1} }

type PeerConf_RemovePrivateAs int32

const (
	PeerConf_NONE    PeerConf_RemovePrivateAs = 0
	PeerConf_ALL     PeerConf_RemovePrivateAs = 1
	PeerConf_REPLACE PeerConf_RemovePrivateAs = 2
)

var PeerConf_RemovePrivateAs_name = map[int32]string{
	0: "NONE",
	1: "ALL",
	2: "REPLACE",
}
var PeerConf_RemovePrivateAs_value = map[string]int32{
	"NONE":    0,
	"ALL":     1,
	"REPLACE": 2,
}

func (x PeerConf_RemovePrivateAs) String() string {
	return proto.EnumName(PeerConf_RemovePrivateAs_name, int32(x))
}
func (PeerConf_RemovePrivateAs) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{77, 0} }

type PeerGroupConf_RemovePrivateAs int32

const (
	PeerGroupConf_NONE    PeerGroupConf_RemovePrivateAs = 0
	PeerGroupConf_ALL     PeerGroupConf_RemovePrivateAs = 1
	PeerGroupConf_REPLACE PeerGroupConf_RemovePrivateAs = 2
)

var PeerGroupConf_RemovePrivateAs_name = map[int32]string{
	0: "NONE",
	1: "ALL",
	2: "REPLACE",
}
var PeerGroupConf_RemovePrivateAs_value = map[string]int32{
	"NONE":    0,
	"ALL":     1,
	"REPLACE": 2,
}

func (x PeerGroupConf_RemovePrivateAs) String() string {
	return proto.EnumName(PeerGroupConf_RemovePrivateAs_name, int32(x))
}
func (PeerGroupConf_RemovePrivateAs) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor0, []int{78, 0}
}

type PeerGroupState_RemovePrivateAs int32

const (
	PeerGroupState_NONE    PeerGroupState_RemovePrivateAs = 0
	PeerGroupState_ALL     PeerGroupState_RemovePrivateAs = 1
	PeerGroupState_REPLACE PeerGroupState_RemovePrivateAs = 2
)

var PeerGroupState_RemovePrivateAs_name = map[int32]string{
	0: "NONE",
	1: "ALL",
	2: "REPLACE",
}
var PeerGroupState_RemovePrivateAs_value = map[string]int32{
	"NONE":    0,
	"ALL":     1,
	"REPLACE": 2,
}

func (x PeerGroupState_RemovePrivateAs) String() string {
	return proto.EnumName(PeerGroupState_RemovePrivateAs_name, int32(x))
}
func (PeerGroupState_RemovePrivateAs) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor0, []int{79, 0}
}

type PeerState_SessionState int32

const (
	PeerState_UNKNOWN     PeerState_SessionState = 0
	PeerState_IDLE        PeerState_SessionState = 1
	PeerState_CONNECT     PeerState_SessionState = 2
	PeerState_ACTIVE      PeerState_SessionState = 3
	PeerState_OPENSENT    PeerState_SessionState = 4
	PeerState_OPENCONFIRM PeerState_SessionState = 5
	PeerState_ESTABLISHED PeerState_SessionState = 6
)

var PeerState_SessionState_name = map[int32]string{
	0: "UNKNOWN",
	1: "IDLE",
	2: "CONNECT",
	3: "ACTIVE",
	4: "OPENSENT",
	5: "OPENCONFIRM",
	6: "ESTABLISHED",
}
var PeerState_SessionState_value = map[string]int32{
	"UNKNOWN":     0,
	"IDLE":        1,
	"CONNECT":     2,
	"ACTIVE":      3,
	"OPENSENT":    4,
	"OPENCONFIRM": 5,
	"ESTABLISHED": 6,
}

func (x PeerState_SessionState) String() string {
	return proto.EnumName(PeerState_SessionState_name, int32(x))
}
func (PeerState_SessionState) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{82, 0} }

type PeerState_AdminState int32

const (
	PeerState_UP     PeerState_AdminState = 0
	PeerState_DOWN   PeerState_AdminState = 1
	PeerState_PFX_CT PeerState_AdminState = 2
)

var PeerState_AdminState_name = map[int32]string{
	0: "UP",
	1: "DOWN",
	2: "PFX_CT",
}
var PeerState_AdminState_value = map[string]int32{
	"UP":     0,
	"DOWN":   1,
	"PFX_CT": 2,
}

func (x PeerState_AdminState) String() string {
	return proto.EnumName(PeerState_AdminState_name, int32(x))
}
func (PeerState_AdminState) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{82, 1} }

type Conditions_RouteType int32

const (
	Conditions_ROUTE_TYPE_NONE     Conditions_RouteType = 0
	Conditions_ROUTE_TYPE_INTERNAL Conditions_RouteType = 1
	Conditions_ROUTE_TYPE_EXTERNAL Conditions_RouteType = 2
	Conditions_ROUTE_TYPE_LOCAL    Conditions_RouteType = 3
)

var Conditions_RouteType_name = map[int32]string{
	0: "ROUTE_TYPE_NONE",
	1: "ROUTE_TYPE_INTERNAL",
	2: "ROUTE_TYPE_EXTERNAL",
	3: "ROUTE_TYPE_LOCAL",
}
var Conditions_RouteType_value = map[string]int32{
	"ROUTE_TYPE_NONE":     0,
	"ROUTE_TYPE_INTERNAL": 1,
	"ROUTE_TYPE_EXTERNAL": 2,
	"ROUTE_TYPE_LOCAL":    3,
}

func (x Conditions_RouteType) String() string {
	return proto.EnumName(Conditions_RouteType_name, int32(x))
}
func (Conditions_RouteType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{123, 0} }

type StartBgpRequest struct {
	Global *Global `protobuf:"bytes,1,opt,name=global" json:"global,omitempty"`
}

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

func (m *StartBgpRequest) GetGlobal() *Global {
	if m != nil {
		return m.Global
	}
	return nil
}

type StopBgpRequest struct {
}

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

type GetBgpRequest struct {
}

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

type GetBgpResponse struct {
	Global *Global `protobuf:"bytes,1,opt,name=global" json:"global,omitempty"`
}

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

func (m *GetBgpResponse) GetGlobal() *Global {
	if m != nil {
		return m.Global
	}
	return nil
}

type AddPeerRequest struct {
	Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"`
}

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

func (m *AddPeerRequest) GetPeer() *Peer {
	if m != nil {
		return m.Peer
	}
	return nil
}

type DeletePeerRequest struct {
	Address   string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Interface string `protobuf:"bytes,2,opt,name=interface" json:"interface,omitempty"`
}

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

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

func (m *DeletePeerRequest) GetInterface() string {
	if m != nil {
		return m.Interface
	}
	return ""
}

type ListPeerRequest struct {
	Address          string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	EnableAdvertised bool   `protobuf:"varint,2,opt,name=enableAdvertised" json:"enableAdvertised,omitempty"`
}

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

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

func (m *ListPeerRequest) GetEnableAdvertised() bool {
	if m != nil {
		return m.EnableAdvertised
	}
	return false
}

type ListPeerResponse struct {
	Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"`
}

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

func (m *ListPeerResponse) GetPeer() *Peer {
	if m != nil {
		return m.Peer
	}
	return nil
}

type UpdatePeerRequest struct {
	Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"`
	// Calls SoftResetIn after updating the peer configuration if needed.
	DoSoftResetIn bool `protobuf:"varint,2,opt,name=do_soft_reset_in,json=doSoftResetIn" json:"do_soft_reset_in,omitempty"`
}

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

func (m *UpdatePeerRequest) GetPeer() *Peer {
	if m != nil {
		return m.Peer
	}
	return nil
}

func (m *UpdatePeerRequest) GetDoSoftResetIn() bool {
	if m != nil {
		return m.DoSoftResetIn
	}
	return false
}

type UpdatePeerResponse struct {
	// Indicates whether calling SoftResetIn is required due to this update. If
	// "true" is set, the client should call SoftResetIn manually. If
	// "do_soft_reset_in = true" is set in the request, always returned with
	// "false".
	NeedsSoftResetIn bool `protobuf:"varint,1,opt,name=needs_soft_reset_in,json=needsSoftResetIn" json:"needs_soft_reset_in,omitempty"`
}

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

func (m *UpdatePeerResponse) GetNeedsSoftResetIn() bool {
	if m != nil {
		return m.NeedsSoftResetIn
	}
	return false
}

type ResetPeerRequest struct {
	Address       string                              `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Communication string                              `protobuf:"bytes,2,opt,name=communication" json:"communication,omitempty"`
	Soft          bool                                `protobuf:"varint,3,opt,name=soft" json:"soft,omitempty"`
	Direction     ResetPeerRequest_SoftResetDirection `protobuf:"varint,4,opt,name=direction,enum=gobgpapi.ResetPeerRequest_SoftResetDirection" json:"direction,omitempty"`
}

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

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

func (m *ResetPeerRequest) GetCommunication() string {
	if m != nil {
		return m.Communication
	}
	return ""
}

func (m *ResetPeerRequest) GetSoft() bool {
	if m != nil {
		return m.Soft
	}
	return false
}

func (m *ResetPeerRequest) GetDirection() ResetPeerRequest_SoftResetDirection {
	if m != nil {
		return m.Direction
	}
	return ResetPeerRequest_IN
}

type ShutdownPeerRequest struct {
	Address       string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Communication string `protobuf:"bytes,2,opt,name=communication" json:"communication,omitempty"`
}

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

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

func (m *ShutdownPeerRequest) GetCommunication() string {
	if m != nil {
		return m.Communication
	}
	return ""
}

type EnablePeerRequest struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
}

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

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

type DisablePeerRequest struct {
	Address       string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Communication string `protobuf:"bytes,2,opt,name=communication" json:"communication,omitempty"`
}

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

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

func (m *DisablePeerRequest) GetCommunication() string {
	if m != nil {
		return m.Communication
	}
	return ""
}

type MonitorPeerRequest struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Current bool   `protobuf:"varint,2,opt,name=current" json:"current,omitempty"`
}

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

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

func (m *MonitorPeerRequest) GetCurrent() bool {
	if m != nil {
		return m.Current
	}
	return false
}

type MonitorPeerResponse struct {
	Peer *Peer `protobuf:"bytes,1,opt,name=peer" json:"peer,omitempty"`
}

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

func (m *MonitorPeerResponse) GetPeer() *Peer {
	if m != nil {
		return m.Peer
	}
	return nil
}

type AddPeerGroupRequest struct {
	PeerGroup *PeerGroup `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup" json:"peer_group,omitempty"`
}

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

func (m *AddPeerGroupRequest) GetPeerGroup() *PeerGroup {
	if m != nil {
		return m.PeerGroup
	}
	return nil
}

type DeletePeerGroupRequest struct {
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
}

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

func (m *DeletePeerGroupRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type UpdatePeerGroupRequest struct {
	PeerGroup     *PeerGroup `protobuf:"bytes,1,opt,name=peer_group,json=peerGroup" json:"peer_group,omitempty"`
	DoSoftResetIn bool       `protobuf:"varint,2,opt,name=do_soft_reset_in,json=doSoftResetIn" json:"do_soft_reset_in,omitempty"`
}

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

func (m *UpdatePeerGroupRequest) GetPeerGroup() *PeerGroup {
	if m != nil {
		return m.PeerGroup
	}
	return nil
}

func (m *UpdatePeerGroupRequest) GetDoSoftResetIn() bool {
	if m != nil {
		return m.DoSoftResetIn
	}
	return false
}

type UpdatePeerGroupResponse struct {
	NeedsSoftResetIn bool `protobuf:"varint,1,opt,name=needs_soft_reset_in,json=needsSoftResetIn" json:"needs_soft_reset_in,omitempty"`
}

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

func (m *UpdatePeerGroupResponse) GetNeedsSoftResetIn() bool {
	if m != nil {
		return m.NeedsSoftResetIn
	}
	return false
}

type AddDynamicNeighborRequest struct {
	DynamicNeighbor *DynamicNeighbor `protobuf:"bytes,1,opt,name=dynamic_neighbor,json=dynamicNeighbor" json:"dynamic_neighbor,omitempty"`
}

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

func (m *AddDynamicNeighborRequest) GetDynamicNeighbor() *DynamicNeighbor {
	if m != nil {
		return m.DynamicNeighbor
	}
	return nil
}

type AddPathRequest struct {
	TableType TableType `protobuf:"varint,1,opt,name=table_type,json=tableType,enum=gobgpapi.TableType" json:"table_type,omitempty"`
	VrfId     string    `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId" json:"vrf_id,omitempty"`
	Path      *Path     `protobuf:"bytes,3,opt,name=path" json:"path,omitempty"`
}

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

func (m *AddPathRequest) GetTableType() TableType {
	if m != nil {
		return m.TableType
	}
	return TableType_GLOBAL
}

func (m *AddPathRequest) GetVrfId() string {
	if m != nil {
		return m.VrfId
	}
	return ""
}

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

type AddPathResponse struct {
	Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
}

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

func (m *AddPathResponse) GetUuid() []byte {
	if m != nil {
		return m.Uuid
	}
	return nil
}

type DeletePathRequest struct {
	TableType TableType `protobuf:"varint,1,opt,name=table_type,json=tableType,enum=gobgpapi.TableType" json:"table_type,omitempty"`
	VrfId     string    `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId" json:"vrf_id,omitempty"`
	Family    *Family   `protobuf:"bytes,3,opt,name=family" json:"family,omitempty"`
	Path      *Path     `protobuf:"bytes,4,opt,name=path" json:"path,omitempty"`
	Uuid      []byte    `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"`
}

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

func (m *DeletePathRequest) GetTableType() TableType {
	if m != nil {
		return m.TableType
	}
	return TableType_GLOBAL
}

func (m *DeletePathRequest) GetVrfId() string {
	if m != nil {
		return m.VrfId
	}
	return ""
}

func (m *DeletePathRequest) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

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

func (m *DeletePathRequest) GetUuid() []byte {
	if m != nil {
		return m.Uuid
	}
	return nil
}

type ListPathRequest struct {
	TableType TableType                `protobuf:"varint,1,opt,name=table_type,json=tableType,enum=gobgpapi.TableType" json:"table_type,omitempty"`
	Name      string                   `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	Family    *Family                  `protobuf:"bytes,3,opt,name=family" json:"family,omitempty"`
	Prefixes  []*TableLookupPrefix     `protobuf:"bytes,4,rep,name=prefixes" json:"prefixes,omitempty"`
	SortType  ListPathRequest_SortType `protobuf:"varint,5,opt,name=sort_type,json=sortType,enum=gobgpapi.ListPathRequest_SortType" json:"sort_type,omitempty"`
}

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

func (m *ListPathRequest) GetTableType() TableType {
	if m != nil {
		return m.TableType
	}
	return TableType_GLOBAL
}

func (m *ListPathRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ListPathRequest) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

func (m *ListPathRequest) GetPrefixes() []*TableLookupPrefix {
	if m != nil {
		return m.Prefixes
	}
	return nil
}

func (m *ListPathRequest) GetSortType() ListPathRequest_SortType {
	if m != nil {
		return m.SortType
	}
	return ListPathRequest_NONE
}

type ListPathResponse struct {
	Destination *Destination `protobuf:"bytes,1,opt,name=destination" json:"destination,omitempty"`
}

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

func (m *ListPathResponse) GetDestination() *Destination {
	if m != nil {
		return m.Destination
	}
	return nil
}

type AddPathStreamRequest struct {
	TableType TableType `protobuf:"varint,1,opt,name=table_type,json=tableType,enum=gobgpapi.TableType" json:"table_type,omitempty"`
	VrfId     string    `protobuf:"bytes,2,opt,name=vrf_id,json=vrfId" json:"vrf_id,omitempty"`
	Paths     []*Path   `protobuf:"bytes,3,rep,name=paths" json:"paths,omitempty"`
}

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

func (m *AddPathStreamRequest) GetTableType() TableType {
	if m != nil {
		return m.TableType
	}
	return TableType_GLOBAL
}

func (m *AddPathStreamRequest) GetVrfId() string {
	if m != nil {
		return m.VrfId
	}
	return ""
}

func (m *AddPathStreamRequest) GetPaths() []*Path {
	if m != nil {
		return m.Paths
	}
	return nil
}

type GetTableRequest struct {
	TableType TableType `protobuf:"varint,1,opt,name=table_type,json=tableType,enum=gobgpapi.TableType" json:"table_type,omitempty"`
	Family    *Family   `protobuf:"bytes,2,opt,name=family" json:"family,omitempty"`
	Name      string    `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
}

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

func (m *GetTableRequest) GetTableType() TableType {
	if m != nil {
		return m.TableType
	}
	return TableType_GLOBAL
}

func (m *GetTableRequest) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

func (m *GetTableRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type GetTableResponse struct {
	NumDestination uint64 `protobuf:"varint,1,opt,name=num_destination,json=numDestination" json:"num_destination,omitempty"`
	NumPath        uint64 `protobuf:"varint,2,opt,name=num_path,json=numPath" json:"num_path,omitempty"`
	NumAccepted    uint64 `protobuf:"varint,3,opt,name=num_accepted,json=numAccepted" json:"num_accepted,omitempty"`
}

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

func (m *GetTableResponse) GetNumDestination() uint64 {
	if m != nil {
		return m.NumDestination
	}
	return 0
}

func (m *GetTableResponse) GetNumPath() uint64 {
	if m != nil {
		return m.NumPath
	}
	return 0
}

func (m *GetTableResponse) GetNumAccepted() uint64 {
	if m != nil {
		return m.NumAccepted
	}
	return 0
}

type MonitorTableRequest struct {
	TableType  TableType `protobuf:"varint,1,opt,name=table_type,json=tableType,enum=gobgpapi.TableType" json:"table_type,omitempty"`
	Name       string    `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	Family     *Family   `protobuf:"bytes,3,opt,name=family" json:"family,omitempty"`
	Current    bool      `protobuf:"varint,4,opt,name=current" json:"current,omitempty"`
	PostPolicy bool      `protobuf:"varint,5,opt,name=post_policy,json=postPolicy" json:"post_policy,omitempty"`
}

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

func (m *MonitorTableRequest) GetTableType() TableType {
	if m != nil {
		return m.TableType
	}
	return TableType_GLOBAL
}

func (m *MonitorTableRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *MonitorTableRequest) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

func (m *MonitorTableRequest) GetCurrent() bool {
	if m != nil {
		return m.Current
	}
	return false
}

func (m *MonitorTableRequest) GetPostPolicy() bool {
	if m != nil {
		return m.PostPolicy
	}
	return false
}

type MonitorTableResponse struct {
	Path *Path `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
}

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

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

type AddVrfRequest struct {
	Vrf *Vrf `protobuf:"bytes,1,opt,name=vrf" json:"vrf,omitempty"`
}

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

func (m *AddVrfRequest) GetVrf() *Vrf {
	if m != nil {
		return m.Vrf
	}
	return nil
}

type DeleteVrfRequest struct {
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
}

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

func (m *DeleteVrfRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type ListVrfRequest struct {
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
}

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

func (m *ListVrfRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type ListVrfResponse struct {
	Vrf *Vrf `protobuf:"bytes,1,opt,name=vrf" json:"vrf,omitempty"`
}

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

func (m *ListVrfResponse) GetVrf() *Vrf {
	if m != nil {
		return m.Vrf
	}
	return nil
}

type AddPolicyRequest struct {
	Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"`
	// if this flag is set, gobgpd won't define new statements
	// but refer existing statements using statement's names in this arguments.
	ReferExistingStatements bool `protobuf:"varint,2,opt,name=refer_existing_statements,json=referExistingStatements" json:"refer_existing_statements,omitempty"`
}

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

func (m *AddPolicyRequest) GetPolicy() *Policy {
	if m != nil {
		return m.Policy
	}
	return nil
}

func (m *AddPolicyRequest) GetReferExistingStatements() bool {
	if m != nil {
		return m.ReferExistingStatements
	}
	return false
}

type DeletePolicyRequest struct {
	Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"`
	// if this flag is set, gobgpd won't delete any statements
	// even if some statements get not used by any policy by this operation.
	PreserveStatements bool `protobuf:"varint,2,opt,name=preserve_statements,json=preserveStatements" json:"preserve_statements,omitempty"`
	All                bool `protobuf:"varint,3,opt,name=all" json:"all,omitempty"`
}

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

func (m *DeletePolicyRequest) GetPolicy() *Policy {
	if m != nil {
		return m.Policy
	}
	return nil
}

func (m *DeletePolicyRequest) GetPreserveStatements() bool {
	if m != nil {
		return m.PreserveStatements
	}
	return false
}

func (m *DeletePolicyRequest) GetAll() bool {
	if m != nil {
		return m.All
	}
	return false
}

type ListPolicyRequest struct {
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
}

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

func (m *ListPolicyRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type ListPolicyResponse struct {
	Policy *Policy `protobuf:"bytes,1,opt,name=policy" json:"policy,omitempty"`
}

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

func (m *ListPolicyResponse) GetPolicy() *Policy {
	if m != nil {
		return m.Policy
	}
	return nil
}

type SetPoliciesRequest struct {
	DefinedSets []*DefinedSet       `protobuf:"bytes,1,rep,name=defined_sets,json=definedSets" json:"defined_sets,omitempty"`
	Policies    []*Policy           `protobuf:"bytes,2,rep,name=policies" json:"policies,omitempty"`
	Assignments []*PolicyAssignment `protobuf:"bytes,3,rep,name=assignments" json:"assignments,omitempty"`
}

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

func (m *SetPoliciesRequest) GetDefinedSets() []*DefinedSet {
	if m != nil {
		return m.DefinedSets
	}
	return nil
}

func (m *SetPoliciesRequest) GetPolicies() []*Policy {
	if m != nil {
		return m.Policies
	}
	return nil
}

func (m *SetPoliciesRequest) GetAssignments() []*PolicyAssignment {
	if m != nil {
		return m.Assignments
	}
	return nil
}

type AddDefinedSetRequest struct {
	DefinedSet *DefinedSet `protobuf:"bytes,1,opt,name=defined_set,json=definedSet" json:"defined_set,omitempty"`
}

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

func (m *AddDefinedSetRequest) GetDefinedSet() *DefinedSet {
	if m != nil {
		return m.DefinedSet
	}
	return nil
}

type DeleteDefinedSetRequest struct {
	DefinedSet *DefinedSet `protobuf:"bytes,1,opt,name=defined_set,json=definedSet" json:"defined_set,omitempty"`
	All        bool        `protobuf:"varint,2,opt,name=all" json:"all,omitempty"`
}

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

func (m *DeleteDefinedSetRequest) GetDefinedSet() *DefinedSet {
	if m != nil {
		return m.DefinedSet
	}
	return nil
}

func (m *DeleteDefinedSetRequest) GetAll() bool {
	if m != nil {
		return m.All
	}
	return false
}

type ListDefinedSetRequest struct {
	DefinedType DefinedType `protobuf:"varint,1,opt,name=defined_type,json=definedType,enum=gobgpapi.DefinedType" json:"defined_type,omitempty"`
	Name        string      `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
}

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

func (m *ListDefinedSetRequest) GetDefinedType() DefinedType {
	if m != nil {
		return m.DefinedType
	}
	return DefinedType_PREFIX
}

func (m *ListDefinedSetRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type ListDefinedSetResponse struct {
	DefinedSet *DefinedSet `protobuf:"bytes,1,opt,name=defined_set,json=definedSet" json:"defined_set,omitempty"`
}

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

func (m *ListDefinedSetResponse) GetDefinedSet() *DefinedSet {
	if m != nil {
		return m.DefinedSet
	}
	return nil
}

type AddStatementRequest struct {
	Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"`
}

func (m *AddStatementRequest) Reset()                    { *m = AddStatementRequest{} }
func (m *AddStatementRequest) String() string            { return proto.CompactTextString(m) }
func (*AddStatementRequest) ProtoMessage()               {}
func (*AddStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }

func (m *AddStatementRequest) GetStatement() *Statement {
	if m != nil {
		return m.Statement
	}
	return nil
}

type DeleteStatementRequest struct {
	Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"`
	All       bool       `protobuf:"varint,2,opt,name=all" json:"all,omitempty"`
}

func (m *DeleteStatementRequest) Reset()                    { *m = DeleteStatementRequest{} }
func (m *DeleteStatementRequest) String() string            { return proto.CompactTextString(m) }
func (*DeleteStatementRequest) ProtoMessage()               {}
func (*DeleteStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }

func (m *DeleteStatementRequest) GetStatement() *Statement {
	if m != nil {
		return m.Statement
	}
	return nil
}

func (m *DeleteStatementRequest) GetAll() bool {
	if m != nil {
		return m.All
	}
	return false
}

type ListStatementRequest struct {
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
}

func (m *ListStatementRequest) Reset()                    { *m = ListStatementRequest{} }
func (m *ListStatementRequest) String() string            { return proto.CompactTextString(m) }
func (*ListStatementRequest) ProtoMessage()               {}
func (*ListStatementRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }

func (m *ListStatementRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type ListStatementResponse struct {
	Statement *Statement `protobuf:"bytes,1,opt,name=statement" json:"statement,omitempty"`
}

func (m *ListStatementResponse) Reset()                    { *m = ListStatementResponse{} }
func (m *ListStatementResponse) String() string            { return proto.CompactTextString(m) }
func (*ListStatementResponse) ProtoMessage()               {}
func (*ListStatementResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }

func (m *ListStatementResponse) GetStatement() *Statement {
	if m != nil {
		return m.Statement
	}
	return nil
}

type AddPolicyAssignmentRequest struct {
	Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"`
}

func (m *AddPolicyAssignmentRequest) Reset()                    { *m = AddPolicyAssignmentRequest{} }
func (m *AddPolicyAssignmentRequest) String() string            { return proto.CompactTextString(m) }
func (*AddPolicyAssignmentRequest) ProtoMessage()               {}
func (*AddPolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }

func (m *AddPolicyAssignmentRequest) GetAssignment() *PolicyAssignment {
	if m != nil {
		return m.Assignment
	}
	return nil
}

type DeletePolicyAssignmentRequest struct {
	Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"`
	All        bool              `protobuf:"varint,2,opt,name=all" json:"all,omitempty"`
}

func (m *DeletePolicyAssignmentRequest) Reset()                    { *m = DeletePolicyAssignmentRequest{} }
func (m *DeletePolicyAssignmentRequest) String() string            { return proto.CompactTextString(m) }
func (*DeletePolicyAssignmentRequest) ProtoMessage()               {}
func (*DeletePolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }

func (m *DeletePolicyAssignmentRequest) GetAssignment() *PolicyAssignment {
	if m != nil {
		return m.Assignment
	}
	return nil
}

func (m *DeletePolicyAssignmentRequest) GetAll() bool {
	if m != nil {
		return m.All
	}
	return false
}

type ListPolicyAssignmentRequest struct {
	Name      string          `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Direction PolicyDirection `protobuf:"varint,2,opt,name=direction,enum=gobgpapi.PolicyDirection" json:"direction,omitempty"`
}

func (m *ListPolicyAssignmentRequest) Reset()                    { *m = ListPolicyAssignmentRequest{} }
func (m *ListPolicyAssignmentRequest) String() string            { return proto.CompactTextString(m) }
func (*ListPolicyAssignmentRequest) ProtoMessage()               {}
func (*ListPolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }

func (m *ListPolicyAssignmentRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ListPolicyAssignmentRequest) GetDirection() PolicyDirection {
	if m != nil {
		return m.Direction
	}
	return PolicyDirection_UNKNOWN
}

type ListPolicyAssignmentResponse struct {
	Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"`
}

func (m *ListPolicyAssignmentResponse) Reset()                    { *m = ListPolicyAssignmentResponse{} }
func (m *ListPolicyAssignmentResponse) String() string            { return proto.CompactTextString(m) }
func (*ListPolicyAssignmentResponse) ProtoMessage()               {}
func (*ListPolicyAssignmentResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }

func (m *ListPolicyAssignmentResponse) GetAssignment() *PolicyAssignment {
	if m != nil {
		return m.Assignment
	}
	return nil
}

type SetPolicyAssignmentRequest struct {
	Assignment *PolicyAssignment `protobuf:"bytes,1,opt,name=assignment" json:"assignment,omitempty"`
}

func (m *SetPolicyAssignmentRequest) Reset()                    { *m = SetPolicyAssignmentRequest{} }
func (m *SetPolicyAssignmentRequest) String() string            { return proto.CompactTextString(m) }
func (*SetPolicyAssignmentRequest) ProtoMessage()               {}
func (*SetPolicyAssignmentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }

func (m *SetPolicyAssignmentRequest) GetAssignment() *PolicyAssignment {
	if m != nil {
		return m.Assignment
	}
	return nil
}

type AddRpkiRequest struct {
	Address  string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Port     uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
	Lifetime int64  `protobuf:"varint,3,opt,name=lifetime" json:"lifetime,omitempty"`
}

func (m *AddRpkiRequest) Reset()                    { *m = AddRpkiRequest{} }
func (m *AddRpkiRequest) String() string            { return proto.CompactTextString(m) }
func (*AddRpkiRequest) ProtoMessage()               {}
func (*AddRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }

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

func (m *AddRpkiRequest) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

func (m *AddRpkiRequest) GetLifetime() int64 {
	if m != nil {
		return m.Lifetime
	}
	return 0
}

type DeleteRpkiRequest struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
}

func (m *DeleteRpkiRequest) Reset()                    { *m = DeleteRpkiRequest{} }
func (m *DeleteRpkiRequest) String() string            { return proto.CompactTextString(m) }
func (*DeleteRpkiRequest) ProtoMessage()               {}
func (*DeleteRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }

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

func (m *DeleteRpkiRequest) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

type ListRpkiRequest struct {
	Family *Family `protobuf:"bytes,1,opt,name=family" json:"family,omitempty"`
}

func (m *ListRpkiRequest) Reset()                    { *m = ListRpkiRequest{} }
func (m *ListRpkiRequest) String() string            { return proto.CompactTextString(m) }
func (*ListRpkiRequest) ProtoMessage()               {}
func (*ListRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }

func (m *ListRpkiRequest) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

type ListRpkiResponse struct {
	Server *Rpki `protobuf:"bytes,1,opt,name=server" json:"server,omitempty"`
}

func (m *ListRpkiResponse) Reset()                    { *m = ListRpkiResponse{} }
func (m *ListRpkiResponse) String() string            { return proto.CompactTextString(m) }
func (*ListRpkiResponse) ProtoMessage()               {}
func (*ListRpkiResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }

func (m *ListRpkiResponse) GetServer() *Rpki {
	if m != nil {
		return m.Server
	}
	return nil
}

type EnableRpkiRequest struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
}

func (m *EnableRpkiRequest) Reset()                    { *m = EnableRpkiRequest{} }
func (m *EnableRpkiRequest) String() string            { return proto.CompactTextString(m) }
func (*EnableRpkiRequest) ProtoMessage()               {}
func (*EnableRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }

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

func (m *EnableRpkiRequest) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

type DisableRpkiRequest struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
}

func (m *DisableRpkiRequest) Reset()                    { *m = DisableRpkiRequest{} }
func (m *DisableRpkiRequest) String() string            { return proto.CompactTextString(m) }
func (*DisableRpkiRequest) ProtoMessage()               {}
func (*DisableRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} }

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

func (m *DisableRpkiRequest) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

type ResetRpkiRequest struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
	Soft    bool   `protobuf:"varint,3,opt,name=soft" json:"soft,omitempty"`
}

func (m *ResetRpkiRequest) Reset()                    { *m = ResetRpkiRequest{} }
func (m *ResetRpkiRequest) String() string            { return proto.CompactTextString(m) }
func (*ResetRpkiRequest) ProtoMessage()               {}
func (*ResetRpkiRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} }

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

func (m *ResetRpkiRequest) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

func (m *ResetRpkiRequest) GetSoft() bool {
	if m != nil {
		return m.Soft
	}
	return false
}

type ListRpkiTableRequest struct {
	Family *Family `protobuf:"bytes,1,opt,name=family" json:"family,omitempty"`
}

func (m *ListRpkiTableRequest) Reset()                    { *m = ListRpkiTableRequest{} }
func (m *ListRpkiTableRequest) String() string            { return proto.CompactTextString(m) }
func (*ListRpkiTableRequest) ProtoMessage()               {}
func (*ListRpkiTableRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} }

func (m *ListRpkiTableRequest) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

type ListRpkiTableResponse struct {
	Roa *Roa `protobuf:"bytes,1,opt,name=roa" json:"roa,omitempty"`
}

func (m *ListRpkiTableResponse) Reset()                    { *m = ListRpkiTableResponse{} }
func (m *ListRpkiTableResponse) String() string            { return proto.CompactTextString(m) }
func (*ListRpkiTableResponse) ProtoMessage()               {}
func (*ListRpkiTableResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} }

func (m *ListRpkiTableResponse) GetRoa() *Roa {
	if m != nil {
		return m.Roa
	}
	return nil
}

type EnableZebraRequest struct {
	Url                  string   `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
	RouteTypes           []string `protobuf:"bytes,2,rep,name=route_types,json=routeTypes" json:"route_types,omitempty"`
	Version              uint32   `protobuf:"varint,3,opt,name=version" json:"version,omitempty"`
	NexthopTriggerEnable bool     `protobuf:"varint,4,opt,name=nexthop_trigger_enable,json=nexthopTriggerEnable" json:"nexthop_trigger_enable,omitempty"`
	NexthopTriggerDelay  uint32   `protobuf:"varint,5,opt,name=nexthop_trigger_delay,json=nexthopTriggerDelay" json:"nexthop_trigger_delay,omitempty"`
}

func (m *EnableZebraRequest) Reset()                    { *m = EnableZebraRequest{} }
func (m *EnableZebraRequest) String() string            { return proto.CompactTextString(m) }
func (*EnableZebraRequest) ProtoMessage()               {}
func (*EnableZebraRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }

func (m *EnableZebraRequest) GetUrl() string {
	if m != nil {
		return m.Url
	}
	return ""
}

func (m *EnableZebraRequest) GetRouteTypes() []string {
	if m != nil {
		return m.RouteTypes
	}
	return nil
}

func (m *EnableZebraRequest) GetVersion() uint32 {
	if m != nil {
		return m.Version
	}
	return 0
}

func (m *EnableZebraRequest) GetNexthopTriggerEnable() bool {
	if m != nil {
		return m.NexthopTriggerEnable
	}
	return false
}

func (m *EnableZebraRequest) GetNexthopTriggerDelay() uint32 {
	if m != nil {
		return m.NexthopTriggerDelay
	}
	return 0
}

type EnableMrtRequest struct {
	DumpType         int32  `protobuf:"varint,1,opt,name=dump_type,json=dumpType" json:"dump_type,omitempty"`
	Filename         string `protobuf:"bytes,2,opt,name=filename" json:"filename,omitempty"`
	DumpInterval     uint64 `protobuf:"varint,3,opt,name=dump_interval,json=dumpInterval" json:"dump_interval,omitempty"`
	RotationInterval uint64 `protobuf:"varint,4,opt,name=rotation_interval,json=rotationInterval" json:"rotation_interval,omitempty"`
}

func (m *EnableMrtRequest) Reset()                    { *m = EnableMrtRequest{} }
func (m *EnableMrtRequest) String() string            { return proto.CompactTextString(m) }
func (*EnableMrtRequest) ProtoMessage()               {}
func (*EnableMrtRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} }

func (m *EnableMrtRequest) GetDumpType() int32 {
	if m != nil {
		return m.DumpType
	}
	return 0
}

func (m *EnableMrtRequest) GetFilename() string {
	if m != nil {
		return m.Filename
	}
	return ""
}

func (m *EnableMrtRequest) GetDumpInterval() uint64 {
	if m != nil {
		return m.DumpInterval
	}
	return 0
}

func (m *EnableMrtRequest) GetRotationInterval() uint64 {
	if m != nil {
		return m.RotationInterval
	}
	return 0
}

type DisableMrtRequest struct {
}

func (m *DisableMrtRequest) Reset()                    { *m = DisableMrtRequest{} }
func (m *DisableMrtRequest) String() string            { return proto.CompactTextString(m) }
func (*DisableMrtRequest) ProtoMessage()               {}
func (*DisableMrtRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }

type AddBmpRequest struct {
	Address           string                         `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Port              uint32                         `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
	Policy            AddBmpRequest_MonitoringPolicy `protobuf:"varint,3,opt,name=policy,enum=gobgpapi.AddBmpRequest_MonitoringPolicy" json:"policy,omitempty"`
	StatisticsTimeout int32                          `protobuf:"varint,4,opt,name=StatisticsTimeout" json:"StatisticsTimeout,omitempty"`
}

func (m *AddBmpRequest) Reset()                    { *m = AddBmpRequest{} }
func (m *AddBmpRequest) String() string            { return proto.CompactTextString(m) }
func (*AddBmpRequest) ProtoMessage()               {}
func (*AddBmpRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }

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

func (m *AddBmpRequest) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

func (m *AddBmpRequest) GetPolicy() AddBmpRequest_MonitoringPolicy {
	if m != nil {
		return m.Policy
	}
	return AddBmpRequest_PRE
}

func (m *AddBmpRequest) GetStatisticsTimeout() int32 {
	if m != nil {
		return m.StatisticsTimeout
	}
	return 0
}

type DeleteBmpRequest struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Port    uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
}

func (m *DeleteBmpRequest) Reset()                    { *m = DeleteBmpRequest{} }
func (m *DeleteBmpRequest) String() string            { return proto.CompactTextString(m) }
func (*DeleteBmpRequest) ProtoMessage()               {}
func (*DeleteBmpRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} }

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

func (m *DeleteBmpRequest) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

type Family struct {
	Afi  Family_Afi  `protobuf:"varint,1,opt,name=afi,enum=gobgpapi.Family_Afi" json:"afi,omitempty"`
	Safi Family_Safi `protobuf:"varint,2,opt,name=safi,enum=gobgpapi.Family_Safi" json:"safi,omitempty"`
}

func (m *Family) Reset()                    { *m = Family{} }
func (m *Family) String() string            { return proto.CompactTextString(m) }
func (*Family) ProtoMessage()               {}
func (*Family) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} }

func (m *Family) GetAfi() Family_Afi {
	if m != nil {
		return m.Afi
	}
	return Family_AFI_UNKNOWN
}

func (m *Family) GetSafi() Family_Safi {
	if m != nil {
		return m.Safi
	}
	return Family_SAFI_UNKNOWN
}

type Validation struct {
	State           Validation_State  `protobuf:"varint,1,opt,name=state,enum=gobgpapi.Validation_State" json:"state,omitempty"`
	Reason          Validation_Reason `protobuf:"varint,2,opt,name=reason,enum=gobgpapi.Validation_Reason" json:"reason,omitempty"`
	Matched         []*Roa            `protobuf:"bytes,3,rep,name=matched" json:"matched,omitempty"`
	UnmatchedAs     []*Roa            `protobuf:"bytes,4,rep,name=unmatched_as,json=unmatchedAs" json:"unmatched_as,omitempty"`
	UnmatchedLength []*Roa            `protobuf:"bytes,5,rep,name=unmatched_length,json=unmatchedLength" json:"unmatched_length,omitempty"`
}

func (m *Validation) Reset()                    { *m = Validation{} }
func (m *Validation) String() string            { return proto.CompactTextString(m) }
func (*Validation) ProtoMessage()               {}
func (*Validation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }

func (m *Validation) GetState() Validation_State {
	if m != nil {
		return m.State
	}
	return Validation_STATE_NONE
}

func (m *Validation) GetReason() Validation_Reason {
	if m != nil {
		return m.Reason
	}
	return Validation_REASOT_NONE
}

func (m *Validation) GetMatched() []*Roa {
	if m != nil {
		return m.Matched
	}
	return nil
}

func (m *Validation) GetUnmatchedAs() []*Roa {
	if m != nil {
		return m.UnmatchedAs
	}
	return nil
}

func (m *Validation) GetUnmatchedLength() []*Roa {
	if m != nil {
		return m.UnmatchedLength
	}
	return nil
}

type Path struct {
	// One of the following defined in "api/attribute.proto":
	// - IPAddressPrefix
	// - LabeledIPAddressPrefix
	// - EncapsulationNLRI
	// - EVPNEthernetAutoDiscoveryRoute
	// - EVPNMACIPAdvertisementRoute
	// - EVPNInclusiveMulticastEthernetTagRoute
	// - EVPNEthernetSegmentRoute
	// - EVPNIPPrefixRoute
	// - LabeledVPNIPAddressPrefix
	// - RouteTargetMembershipNLRI
	// - FlowSpecNLRI
	// - VPNFlowSpecNLRI
	// - OpaqueNLRI
	Nlri *google_protobuf.Any `protobuf:"bytes,1,opt,name=nlri" json:"nlri,omitempty"`
	// Each attribute must be one of *Attribute defined in
	// "api/attribute.proto".
	Pattrs             []*google_protobuf.Any      `protobuf:"bytes,2,rep,name=pattrs" json:"pattrs,omitempty"`
	Age                *google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=age" json:"age,omitempty"`
	Best               bool                        `protobuf:"varint,4,opt,name=best" json:"best,omitempty"`
	IsWithdraw         bool                        `protobuf:"varint,5,opt,name=is_withdraw,json=isWithdraw" json:"is_withdraw,omitempty"`
	Validation         *Validation                 `protobuf:"bytes,7,opt,name=validation" json:"validation,omitempty"`
	NoImplicitWithdraw bool                        `protobuf:"varint,8,opt,name=no_implicit_withdraw,json=noImplicitWithdraw" json:"no_implicit_withdraw,omitempty"`
	Family             *Family                     `protobuf:"bytes,9,opt,name=family" json:"family,omitempty"`
	SourceAsn          uint32                      `protobuf:"varint,10,opt,name=source_asn,json=sourceAsn" json:"source_asn,omitempty"`
	SourceId           string                      `protobuf:"bytes,11,opt,name=source_id,json=sourceId" json:"source_id,omitempty"`
	Filtered           bool                        `protobuf:"varint,12,opt,name=filtered" json:"filtered,omitempty"`
	Stale              bool                        `protobuf:"varint,13,opt,name=stale" json:"stale,omitempty"`
	IsFromExternal     bool                        `protobuf:"varint,14,opt,name=is_from_external,json=isFromExternal" json:"is_from_external,omitempty"`
	NeighborIp         string                      `protobuf:"bytes,15,opt,name=neighbor_ip,json=neighborIp" json:"neighbor_ip,omitempty"`
	Uuid               []byte                      `protobuf:"bytes,16,opt,name=uuid,proto3" json:"uuid,omitempty"`
	IsNexthopInvalid   bool                        `protobuf:"varint,17,opt,name=is_nexthop_invalid,json=isNexthopInvalid" json:"is_nexthop_invalid,omitempty"`
	Identifier         uint32                      `protobuf:"varint,18,opt,name=identifier" json:"identifier,omitempty"`
	LocalIdentifier    uint32                      `protobuf:"varint,19,opt,name=local_identifier,json=localIdentifier" json:"local_identifier,omitempty"`
	NlriBinary         []byte                      `protobuf:"bytes,20,opt,name=nlri_binary,json=nlriBinary,proto3" json:"nlri_binary,omitempty"`
	PattrsBinary       [][]byte                    `protobuf:"bytes,21,rep,name=pattrs_binary,json=pattrsBinary,proto3" json:"pattrs_binary,omitempty"`
}

func (m *Path) Reset()                    { *m = Path{} }
func (m *Path) String() string            { return proto.CompactTextString(m) }
func (*Path) ProtoMessage()               {}
func (*Path) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }

func (m *Path) GetNlri() *google_protobuf.Any {
	if m != nil {
		return m.Nlri
	}
	return nil
}

func (m *Path) GetPattrs() []*google_protobuf.Any {
	if m != nil {
		return m.Pattrs
	}
	return nil
}

func (m *Path) GetAge() *google_protobuf2.Timestamp {
	if m != nil {
		return m.Age
	}
	return nil
}

func (m *Path) GetBest() bool {
	if m != nil {
		return m.Best
	}
	return false
}

func (m *Path) GetIsWithdraw() bool {
	if m != nil {
		return m.IsWithdraw
	}
	return false
}

func (m *Path) GetValidation() *Validation {
	if m != nil {
		return m.Validation
	}
	return nil
}

func (m *Path) GetNoImplicitWithdraw() bool {
	if m != nil {
		return m.NoImplicitWithdraw
	}
	return false
}

func (m *Path) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

func (m *Path) GetSourceAsn() uint32 {
	if m != nil {
		return m.SourceAsn
	}
	return 0
}

func (m *Path) GetSourceId() string {
	if m != nil {
		return m.SourceId
	}
	return ""
}

func (m *Path) GetFiltered() bool {
	if m != nil {
		return m.Filtered
	}
	return false
}

func (m *Path) GetStale() bool {
	if m != nil {
		return m.Stale
	}
	return false
}

func (m *Path) GetIsFromExternal() bool {
	if m != nil {
		return m.IsFromExternal
	}
	return false
}

func (m *Path) GetNeighborIp() string {
	if m != nil {
		return m.NeighborIp
	}
	return ""
}

func (m *Path) GetUuid() []byte {
	if m != nil {
		return m.Uuid
	}
	return nil
}

func (m *Path) GetIsNexthopInvalid() bool {
	if m != nil {
		return m.IsNexthopInvalid
	}
	return false
}

func (m *Path) GetIdentifier() uint32 {
	if m != nil {
		return m.Identifier
	}
	return 0
}

func (m *Path) GetLocalIdentifier() uint32 {
	if m != nil {
		return m.LocalIdentifier
	}
	return 0
}

func (m *Path) GetNlriBinary() []byte {
	if m != nil {
		return m.NlriBinary
	}
	return nil
}

func (m *Path) GetPattrsBinary() [][]byte {
	if m != nil {
		return m.PattrsBinary
	}
	return nil
}

type Destination struct {
	Prefix string  `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"`
	Paths  []*Path `protobuf:"bytes,2,rep,name=paths" json:"paths,omitempty"`
}

func (m *Destination) Reset()                    { *m = Destination{} }
func (m *Destination) String() string            { return proto.CompactTextString(m) }
func (*Destination) ProtoMessage()               {}
func (*Destination) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }

func (m *Destination) GetPrefix() string {
	if m != nil {
		return m.Prefix
	}
	return ""
}

func (m *Destination) GetPaths() []*Path {
	if m != nil {
		return m.Paths
	}
	return nil
}

// API representation of table.LookupPrefix
type TableLookupPrefix struct {
	Prefix       string            `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"`
	LookupOption TableLookupOption `protobuf:"varint,2,opt,name=lookup_option,json=lookupOption,enum=gobgpapi.TableLookupOption" json:"lookup_option,omitempty"`
}

func (m *TableLookupPrefix) Reset()                    { *m = TableLookupPrefix{} }
func (m *TableLookupPrefix) String() string            { return proto.CompactTextString(m) }
func (*TableLookupPrefix) ProtoMessage()               {}
func (*TableLookupPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }

func (m *TableLookupPrefix) GetPrefix() string {
	if m != nil {
		return m.Prefix
	}
	return ""
}

func (m *TableLookupPrefix) GetLookupOption() TableLookupOption {
	if m != nil {
		return m.LookupOption
	}
	return TableLookupOption_LOOKUP_EXACT
}

type Peer struct {
	ApplyPolicy     *ApplyPolicy     `protobuf:"bytes,1,opt,name=apply_policy,json=applyPolicy" json:"apply_policy,omitempty"`
	Conf            *PeerConf        `protobuf:"bytes,2,opt,name=conf" json:"conf,omitempty"`
	EbgpMultihop    *EbgpMultihop    `protobuf:"bytes,3,opt,name=ebgp_multihop,json=ebgpMultihop" json:"ebgp_multihop,omitempty"`
	RouteReflector  *RouteReflector  `protobuf:"bytes,4,opt,name=route_reflector,json=routeReflector" json:"route_reflector,omitempty"`
	State           *PeerState       `protobuf:"bytes,5,opt,name=state" json:"state,omitempty"`
	Timers          *Timers          `protobuf:"bytes,6,opt,name=timers" json:"timers,omitempty"`
	Transport       *Transport       `protobuf:"bytes,7,opt,name=transport" json:"transport,omitempty"`
	RouteServer     *RouteServer     `protobuf:"bytes,8,opt,name=route_server,json=routeServer" json:"route_server,omitempty"`
	GracefulRestart *GracefulRestart `protobuf:"bytes,9,opt,name=graceful_restart,json=gracefulRestart" json:"graceful_restart,omitempty"`
	AfiSafis        []*AfiSafi       `protobuf:"bytes,10,rep,name=afi_safis,json=afiSafis" json:"afi_safis,omitempty"`
}

func (m *Peer) Reset()                    { *m = Peer{} }
func (m *Peer) String() string            { return proto.CompactTextString(m) }
func (*Peer) ProtoMessage()               {}
func (*Peer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }

func (m *Peer) GetApplyPolicy() *ApplyPolicy {
	if m != nil {
		return m.ApplyPolicy
	}
	return nil
}

func (m *Peer) GetConf() *PeerConf {
	if m != nil {
		return m.Conf
	}
	return nil
}

func (m *Peer) GetEbgpMultihop() *EbgpMultihop {
	if m != nil {
		return m.EbgpMultihop
	}
	return nil
}

func (m *Peer) GetRouteReflector() *RouteReflector {
	if m != nil {
		return m.RouteReflector
	}
	return nil
}

func (m *Peer) GetState() *PeerState {
	if m != nil {
		return m.State
	}
	return nil
}

func (m *Peer) GetTimers() *Timers {
	if m != nil {
		return m.Timers
	}
	return nil
}

func (m *Peer) GetTransport() *Transport {
	if m != nil {
		return m.Transport
	}
	return nil
}

func (m *Peer) GetRouteServer() *RouteServer {
	if m != nil {
		return m.RouteServer
	}
	return nil
}

func (m *Peer) GetGracefulRestart() *GracefulRestart {
	if m != nil {
		return m.GracefulRestart
	}
	return nil
}

func (m *Peer) GetAfiSafis() []*AfiSafi {
	if m != nil {
		return m.AfiSafis
	}
	return nil
}

type PeerGroup struct {
	ApplyPolicy     *ApplyPolicy     `protobuf:"bytes,1,opt,name=apply_policy,json=applyPolicy" json:"apply_policy,omitempty"`
	Conf            *PeerGroupConf   `protobuf:"bytes,2,opt,name=conf" json:"conf,omitempty"`
	EbgpMultihop    *EbgpMultihop    `protobuf:"bytes,3,opt,name=ebgp_multihop,json=ebgpMultihop" json:"ebgp_multihop,omitempty"`
	RouteReflector  *RouteReflector  `protobuf:"bytes,4,opt,name=route_reflector,json=routeReflector" json:"route_reflector,omitempty"`
	Info            *PeerGroupState  `protobuf:"bytes,5,opt,name=info" json:"info,omitempty"`
	Timers          *Timers          `protobuf:"bytes,6,opt,name=timers" json:"timers,omitempty"`
	Transport       *Transport       `protobuf:"bytes,7,opt,name=transport" json:"transport,omitempty"`
	RouteServer     *RouteServer     `protobuf:"bytes,8,opt,name=route_server,json=routeServer" json:"route_server,omitempty"`
	GracefulRestart *GracefulRestart `protobuf:"bytes,9,opt,name=graceful_restart,json=gracefulRestart" json:"graceful_restart,omitempty"`
	AfiSafis        []*AfiSafi       `protobuf:"bytes,10,rep,name=afi_safis,json=afiSafis" json:"afi_safis,omitempty"`
}

func (m *PeerGroup) Reset()                    { *m = PeerGroup{} }
func (m *PeerGroup) String() string            { return proto.CompactTextString(m) }
func (*PeerGroup) ProtoMessage()               {}
func (*PeerGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} }

func (m *PeerGroup) GetApplyPolicy() *ApplyPolicy {
	if m != nil {
		return m.ApplyPolicy
	}
	return nil
}

func (m *PeerGroup) GetConf() *PeerGroupConf {
	if m != nil {
		return m.Conf
	}
	return nil
}

func (m *PeerGroup) GetEbgpMultihop() *EbgpMultihop {
	if m != nil {
		return m.EbgpMultihop
	}
	return nil
}

func (m *PeerGroup) GetRouteReflector() *RouteReflector {
	if m != nil {
		return m.RouteReflector
	}
	return nil
}

func (m *PeerGroup) GetInfo() *PeerGroupState {
	if m != nil {
		return m.Info
	}
	return nil
}

func (m *PeerGroup) GetTimers() *Timers {
	if m != nil {
		return m.Timers
	}
	return nil
}

func (m *PeerGroup) GetTransport() *Transport {
	if m != nil {
		return m.Transport
	}
	return nil
}

func (m *PeerGroup) GetRouteServer() *RouteServer {
	if m != nil {
		return m.RouteServer
	}
	return nil
}

func (m *PeerGroup) GetGracefulRestart() *GracefulRestart {
	if m != nil {
		return m.GracefulRestart
	}
	return nil
}

func (m *PeerGroup) GetAfiSafis() []*AfiSafi {
	if m != nil {
		return m.AfiSafis
	}
	return nil
}

type DynamicNeighbor struct {
	Prefix    string `protobuf:"bytes,1,opt,name=prefix" json:"prefix,omitempty"`
	PeerGroup string `protobuf:"bytes,2,opt,name=peer_group,json=peerGroup" json:"peer_group,omitempty"`
}

func (m *DynamicNeighbor) Reset()                    { *m = DynamicNeighbor{} }
func (m *DynamicNeighbor) String() string            { return proto.CompactTextString(m) }
func (*DynamicNeighbor) ProtoMessage()               {}
func (*DynamicNeighbor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} }

func (m *DynamicNeighbor) GetPrefix() string {
	if m != nil {
		return m.Prefix
	}
	return ""
}

func (m *DynamicNeighbor) GetPeerGroup() string {
	if m != nil {
		return m.PeerGroup
	}
	return ""
}

type ApplyPolicy struct {
	InPolicy     *PolicyAssignment `protobuf:"bytes,1,opt,name=in_policy,json=inPolicy" json:"in_policy,omitempty"`
	ExportPolicy *PolicyAssignment `protobuf:"bytes,2,opt,name=export_policy,json=exportPolicy" json:"export_policy,omitempty"`
	ImportPolicy *PolicyAssignment `protobuf:"bytes,3,opt,name=import_policy,json=importPolicy" json:"import_policy,omitempty"`
}

func (m *ApplyPolicy) Reset()                    { *m = ApplyPolicy{} }
func (m *ApplyPolicy) String() string            { return proto.CompactTextString(m) }
func (*ApplyPolicy) ProtoMessage()               {}
func (*ApplyPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }

func (m *ApplyPolicy) GetInPolicy() *PolicyAssignment {
	if m != nil {
		return m.InPolicy
	}
	return nil
}

func (m *ApplyPolicy) GetExportPolicy() *PolicyAssignment {
	if m != nil {
		return m.ExportPolicy
	}
	return nil
}

func (m *ApplyPolicy) GetImportPolicy() *PolicyAssignment {
	if m != nil {
		return m.ImportPolicy
	}
	return nil
}

type PrefixLimit struct {
	Family               *Family `protobuf:"bytes,1,opt,name=family" json:"family,omitempty"`
	MaxPrefixes          uint32  `protobuf:"varint,2,opt,name=max_prefixes,json=maxPrefixes" json:"max_prefixes,omitempty"`
	ShutdownThresholdPct uint32  `protobuf:"varint,3,opt,name=shutdown_threshold_pct,json=shutdownThresholdPct" json:"shutdown_threshold_pct,omitempty"`
}

func (m *PrefixLimit) Reset()                    { *m = PrefixLimit{} }
func (m *PrefixLimit) String() string            { return proto.CompactTextString(m) }
func (*PrefixLimit) ProtoMessage()               {}
func (*PrefixLimit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }

func (m *PrefixLimit) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

func (m *PrefixLimit) GetMaxPrefixes() uint32 {
	if m != nil {
		return m.MaxPrefixes
	}
	return 0
}

func (m *PrefixLimit) GetShutdownThresholdPct() uint32 {
	if m != nil {
		return m.ShutdownThresholdPct
	}
	return 0
}

type PeerConf struct {
	AuthPassword      string                   `protobuf:"bytes,1,opt,name=auth_password,json=authPassword" json:"auth_password,omitempty"`
	Description       string                   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
	LocalAs           uint32                   `protobuf:"varint,3,opt,name=local_as,json=localAs" json:"local_as,omitempty"`
	NeighborAddress   string                   `protobuf:"bytes,4,opt,name=neighbor_address,json=neighborAddress" json:"neighbor_address,omitempty"`
	PeerAs            uint32                   `protobuf:"varint,5,opt,name=peer_as,json=peerAs" json:"peer_as,omitempty"`
	PeerGroup         string                   `protobuf:"bytes,6,opt,name=peer_group,json=peerGroup" json:"peer_group,omitempty"`
	PeerType          uint32                   `protobuf:"varint,7,opt,name=peer_type,json=peerType" json:"peer_type,omitempty"`
	RemovePrivateAs   PeerConf_RemovePrivateAs `protobuf:"varint,8,opt,name=remove_private_as,json=removePrivateAs,enum=gobgpapi.PeerConf_RemovePrivateAs" json:"remove_private_as,omitempty"`
	RouteFlapDamping  bool                     `protobuf:"varint,9,opt,name=route_flap_damping,json=routeFlapDamping" json:"route_flap_damping,omitempty"`
	SendCommunity     uint32                   `protobuf:"varint,10,opt,name=send_community,json=sendCommunity" json:"send_community,omitempty"`
	NeighborInterface string                   `protobuf:"bytes,11,opt,name=neighbor_interface,json=neighborInterface" json:"neighbor_interface,omitempty"`
	Vrf               string                   `protobuf:"bytes,12,opt,name=vrf" json:"vrf,omitempty"`
	AllowOwnAs        uint32                   `protobuf:"varint,13,opt,name=allow_own_as,json=allowOwnAs" json:"allow_own_as,omitempty"`
	ReplacePeerAs     bool                     `protobuf:"varint,14,opt,name=replace_peer_as,json=replacePeerAs" json:"replace_peer_as,omitempty"`
	AdminDown         bool                     `protobuf:"varint,15,opt,name=admin_down,json=adminDown" json:"admin_down,omitempty"`
}

func (m *PeerConf) Reset()                    { *m = PeerConf{} }
func (m *PeerConf) String() string            { return proto.CompactTextString(m) }
func (*PeerConf) ProtoMessage()               {}
func (*PeerConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }

func (m *PeerConf) GetAuthPassword() string {
	if m != nil {
		return m.AuthPassword
	}
	return ""
}

func (m *PeerConf) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *PeerConf) GetLocalAs() uint32 {
	if m != nil {
		return m.LocalAs
	}
	return 0
}

func (m *PeerConf) GetNeighborAddress() string {
	if m != nil {
		return m.NeighborAddress
	}
	return ""
}

func (m *PeerConf) GetPeerAs() uint32 {
	if m != nil {
		return m.PeerAs
	}
	return 0
}

func (m *PeerConf) GetPeerGroup() string {
	if m != nil {
		return m.PeerGroup
	}
	return ""
}

func (m *PeerConf) GetPeerType() uint32 {
	if m != nil {
		return m.PeerType
	}
	return 0
}

func (m *PeerConf) GetRemovePrivateAs() PeerConf_RemovePrivateAs {
	if m != nil {
		return m.RemovePrivateAs
	}
	return PeerConf_NONE
}

func (m *PeerConf) GetRouteFlapDamping() bool {
	if m != nil {
		return m.RouteFlapDamping
	}
	return false
}

func (m *PeerConf) GetSendCommunity() uint32 {
	if m != nil {
		return m.SendCommunity
	}
	return 0
}

func (m *PeerConf) GetNeighborInterface() string {
	if m != nil {
		return m.NeighborInterface
	}
	return ""
}

func (m *PeerConf) GetVrf() string {
	if m != nil {
		return m.Vrf
	}
	return ""
}

func (m *PeerConf) GetAllowOwnAs() uint32 {
	if m != nil {
		return m.AllowOwnAs
	}
	return 0
}

func (m *PeerConf) GetReplacePeerAs() bool {
	if m != nil {
		return m.ReplacePeerAs
	}
	return false
}

func (m *PeerConf) GetAdminDown() bool {
	if m != nil {
		return m.AdminDown
	}
	return false
}

type PeerGroupConf struct {
	AuthPassword     string                        `protobuf:"bytes,1,opt,name=auth_password,json=authPassword" json:"auth_password,omitempty"`
	Description      string                        `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
	LocalAs          uint32                        `protobuf:"varint,3,opt,name=local_as,json=localAs" json:"local_as,omitempty"`
	PeerAs           uint32                        `protobuf:"varint,4,opt,name=peer_as,json=peerAs" json:"peer_as,omitempty"`
	PeerGroupName    string                        `protobuf:"bytes,5,opt,name=peer_group_name,json=peerGroupName" json:"peer_group_name,omitempty"`
	PeerType         uint32                        `protobuf:"varint,6,opt,name=peer_type,json=peerType" json:"peer_type,omitempty"`
	RemovePrivateAs  PeerGroupConf_RemovePrivateAs `protobuf:"varint,7,opt,name=remove_private_as,json=removePrivateAs,enum=gobgpapi.PeerGroupConf_RemovePrivateAs" json:"remove_private_as,omitempty"`
	RouteFlapDamping bool                          `protobuf:"varint,8,opt,name=route_flap_damping,json=routeFlapDamping" json:"route_flap_damping,omitempty"`
	SendCommunity    uint32                        `protobuf:"varint,9,opt,name=send_community,json=sendCommunity" json:"send_community,omitempty"`
}

func (m *PeerGroupConf) Reset()                    { *m = PeerGroupConf{} }
func (m *PeerGroupConf) String() string            { return proto.CompactTextString(m) }
func (*PeerGroupConf) ProtoMessage()               {}
func (*PeerGroupConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} }

func (m *PeerGroupConf) GetAuthPassword() string {
	if m != nil {
		return m.AuthPassword
	}
	return ""
}

func (m *PeerGroupConf) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *PeerGroupConf) GetLocalAs() uint32 {
	if m != nil {
		return m.LocalAs
	}
	return 0
}

func (m *PeerGroupConf) GetPeerAs() uint32 {
	if m != nil {
		return m.PeerAs
	}
	return 0
}

func (m *PeerGroupConf) GetPeerGroupName() string {
	if m != nil {
		return m.PeerGroupName
	}
	return ""
}

func (m *PeerGroupConf) GetPeerType() uint32 {
	if m != nil {
		return m.PeerType
	}
	return 0
}

func (m *PeerGroupConf) GetRemovePrivateAs() PeerGroupConf_RemovePrivateAs {
	if m != nil {
		return m.RemovePrivateAs
	}
	return PeerGroupConf_NONE
}

func (m *PeerGroupConf) GetRouteFlapDamping() bool {
	if m != nil {
		return m.RouteFlapDamping
	}
	return false
}

func (m *PeerGroupConf) GetSendCommunity() uint32 {
	if m != nil {
		return m.SendCommunity
	}
	return 0
}

type PeerGroupState struct {
	AuthPassword     string                         `protobuf:"bytes,1,opt,name=auth_password,json=authPassword" json:"auth_password,omitempty"`
	Description      string                         `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
	LocalAs          uint32                         `protobuf:"varint,3,opt,name=local_as,json=localAs" json:"local_as,omitempty"`
	PeerAs           uint32                         `protobuf:"varint,4,opt,name=peer_as,json=peerAs" json:"peer_as,omitempty"`
	PeerGroupName    string                         `protobuf:"bytes,5,opt,name=peer_group_name,json=peerGroupName" json:"peer_group_name,omitempty"`
	PeerType         uint32                         `protobuf:"varint,6,opt,name=peer_type,json=peerType" json:"peer_type,omitempty"`
	RemovePrivateAs  PeerGroupState_RemovePrivateAs `protobuf:"varint,7,opt,name=remove_private_as,json=removePrivateAs,enum=gobgpapi.PeerGroupState_RemovePrivateAs" json:"remove_private_as,omitempty"`
	RouteFlapDamping bool                           `protobuf:"varint,8,opt,name=route_flap_damping,json=routeFlapDamping" json:"route_flap_damping,omitempty"`
	SendCommunity    uint32                         `protobuf:"varint,9,opt,name=send_community,json=sendCommunity" json:"send_community,omitempty"`
	TotalPaths       uint32                         `protobuf:"varint,10,opt,name=total_paths,json=totalPaths" json:"total_paths,omitempty"`
	TotalPrefixes    uint32                         `protobuf:"varint,11,opt,name=total_prefixes,json=totalPrefixes" json:"total_prefixes,omitempty"`
}

func (m *PeerGroupState) Reset()                    { *m = PeerGroupState{} }
func (m *PeerGroupState) String() string            { return proto.CompactTextString(m) }
func (*PeerGroupState) ProtoMessage()               {}
func (*PeerGroupState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} }

func (m *PeerGroupState) GetAuthPassword() string {
	if m != nil {
		return m.AuthPassword
	}
	return ""
}

func (m *PeerGroupState) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *PeerGroupState) GetLocalAs() uint32 {
	if m != nil {
		return m.LocalAs
	}
	return 0
}

func (m *PeerGroupState) GetPeerAs() uint32 {
	if m != nil {
		return m.PeerAs
	}
	return 0
}

func (m *PeerGroupState) GetPeerGroupName() string {
	if m != nil {
		return m.PeerGroupName
	}
	return ""
}

func (m *PeerGroupState) GetPeerType() uint32 {
	if m != nil {
		return m.PeerType
	}
	return 0
}

func (m *PeerGroupState) GetRemovePrivateAs() PeerGroupState_RemovePrivateAs {
	if m != nil {
		return m.RemovePrivateAs
	}
	return PeerGroupState_NONE
}

func (m *PeerGroupState) GetRouteFlapDamping() bool {
	if m != nil {
		return m.RouteFlapDamping
	}
	return false
}

func (m *PeerGroupState) GetSendCommunity() uint32 {
	if m != nil {
		return m.SendCommunity
	}
	return 0
}

func (m *PeerGroupState) GetTotalPaths() uint32 {
	if m != nil {
		return m.TotalPaths
	}
	return 0
}

func (m *PeerGroupState) GetTotalPrefixes() uint32 {
	if m != nil {
		return m.TotalPrefixes
	}
	return 0
}

type EbgpMultihop struct {
	Enabled     bool   `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
	MultihopTtl uint32 `protobuf:"varint,2,opt,name=multihop_ttl,json=multihopTtl" json:"multihop_ttl,omitempty"`
}

func (m *EbgpMultihop) Reset()                    { *m = EbgpMultihop{} }
func (m *EbgpMultihop) String() string            { return proto.CompactTextString(m) }
func (*EbgpMultihop) ProtoMessage()               {}
func (*EbgpMultihop) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} }

func (m *EbgpMultihop) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *EbgpMultihop) GetMultihopTtl() uint32 {
	if m != nil {
		return m.MultihopTtl
	}
	return 0
}

type RouteReflector struct {
	RouteReflectorClient    bool   `protobuf:"varint,1,opt,name=route_reflector_client,json=routeReflectorClient" json:"route_reflector_client,omitempty"`
	RouteReflectorClusterId string `protobuf:"bytes,2,opt,name=route_reflector_cluster_id,json=routeReflectorClusterId" json:"route_reflector_cluster_id,omitempty"`
}

func (m *RouteReflector) Reset()                    { *m = RouteReflector{} }
func (m *RouteReflector) String() string            { return proto.CompactTextString(m) }
func (*RouteReflector) ProtoMessage()               {}
func (*RouteReflector) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} }

func (m *RouteReflector) GetRouteReflectorClient() bool {
	if m != nil {
		return m.RouteReflectorClient
	}
	return false
}

func (m *RouteReflector) GetRouteReflectorClusterId() string {
	if m != nil {
		return m.RouteReflectorClusterId
	}
	return ""
}

type PeerState struct {
	AuthPassword     string                 `protobuf:"bytes,1,opt,name=auth_password,json=authPassword" json:"auth_password,omitempty"`
	Description      string                 `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
	LocalAs          uint32                 `protobuf:"varint,3,opt,name=local_as,json=localAs" json:"local_as,omitempty"`
	Messages         *Messages              `protobuf:"bytes,4,opt,name=messages" json:"messages,omitempty"`
	NeighborAddress  string                 `protobuf:"bytes,5,opt,name=neighbor_address,json=neighborAddress" json:"neighbor_address,omitempty"`
	PeerAs           uint32                 `protobuf:"varint,6,opt,name=peer_as,json=peerAs" json:"peer_as,omitempty"`
	PeerGroup        string                 `protobuf:"bytes,7,opt,name=peer_group,json=peerGroup" json:"peer_group,omitempty"`
	PeerType         uint32                 `protobuf:"varint,8,opt,name=peer_type,json=peerType" json:"peer_type,omitempty"`
	Queues           *Queues                `protobuf:"bytes,9,opt,name=queues" json:"queues,omitempty"`
	RemovePrivateAs  uint32                 `protobuf:"varint,10,opt,name=remove_private_as,json=removePrivateAs" json:"remove_private_as,omitempty"`
	RouteFlapDamping bool                   `protobuf:"varint,11,opt,name=route_flap_damping,json=routeFlapDamping" json:"route_flap_damping,omitempty"`
	SendCommunity    uint32                 `protobuf:"varint,12,opt,name=send_community,json=sendCommunity" json:"send_community,omitempty"`
	SessionState     PeerState_SessionState `protobuf:"varint,13,opt,name=session_state,json=sessionState,enum=gobgpapi.PeerState_SessionState" json:"session_state,omitempty"`
	AdminState       PeerState_AdminState   `protobuf:"varint,15,opt,name=admin_state,json=adminState,enum=gobgpapi.PeerState_AdminState" json:"admin_state,omitempty"`
	OutQ             uint32                 `protobuf:"varint,16,opt,name=out_q,json=outQ" json:"out_q,omitempty"`
	Flops            uint32                 `protobuf:"varint,17,opt,name=flops" json:"flops,omitempty"`
	// Each attribute must be one of *Capability defined in
	// "api/capability.proto".
	RemoteCap []*google_protobuf.Any `protobuf:"bytes,18,rep,name=remote_cap,json=remoteCap" json:"remote_cap,omitempty"`
	LocalCap  []*google_protobuf.Any `protobuf:"bytes,19,rep,name=local_cap,json=localCap" json:"local_cap,omitempty"`
	RouterId  string                 `protobuf:"bytes,20,opt,name=router_id,json=routerId" json:"router_id,omitempty"`
}

func (m *PeerState) Reset()                    { *m = PeerState{} }
func (m *PeerState) String() string            { return proto.CompactTextString(m) }
func (*PeerState) ProtoMessage()               {}
func (*PeerState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} }

func (m *PeerState) GetAuthPassword() string {
	if m != nil {
		return m.AuthPassword
	}
	return ""
}

func (m *PeerState) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *PeerState) GetLocalAs() uint32 {
	if m != nil {
		return m.LocalAs
	}
	return 0
}

func (m *PeerState) GetMessages() *Messages {
	if m != nil {
		return m.Messages
	}
	return nil
}

func (m *PeerState) GetNeighborAddress() string {
	if m != nil {
		return m.NeighborAddress
	}
	return ""
}

func (m *PeerState) GetPeerAs() uint32 {
	if m != nil {
		return m.PeerAs
	}
	return 0
}

func (m *PeerState) GetPeerGroup() string {
	if m != nil {
		return m.PeerGroup
	}
	return ""
}

func (m *PeerState) GetPeerType() uint32 {
	if m != nil {
		return m.PeerType
	}
	return 0
}

func (m *PeerState) GetQueues() *Queues {
	if m != nil {
		return m.Queues
	}
	return nil
}

func (m *PeerState) GetRemovePrivateAs() uint32 {
	if m != nil {
		return m.RemovePrivateAs
	}
	return 0
}

func (m *PeerState) GetRouteFlapDamping() bool {
	if m != nil {
		return m.RouteFlapDamping
	}
	return false
}

func (m *PeerState) GetSendCommunity() uint32 {
	if m != nil {
		return m.SendCommunity
	}
	return 0
}

func (m *PeerState) GetSessionState() PeerState_SessionState {
	if m != nil {
		return m.SessionState
	}
	return PeerState_UNKNOWN
}

func (m *PeerState) GetAdminState() PeerState_AdminState {
	if m != nil {
		return m.AdminState
	}
	return PeerState_UP
}

func (m *PeerState) GetOutQ() uint32 {
	if m != nil {
		return m.OutQ
	}
	return 0
}

func (m *PeerState) GetFlops() uint32 {
	if m != nil {
		return m.Flops
	}
	return 0
}

func (m *PeerState) GetRemoteCap() []*google_protobuf.Any {
	if m != nil {
		return m.RemoteCap
	}
	return nil
}

func (m *PeerState) GetLocalCap() []*google_protobuf.Any {
	if m != nil {
		return m.LocalCap
	}
	return nil
}

func (m *PeerState) GetRouterId() string {
	if m != nil {
		return m.RouterId
	}
	return ""
}

type Messages struct {
	Received *Message `protobuf:"bytes,1,opt,name=received" json:"received,omitempty"`
	Sent     *Message `protobuf:"bytes,2,opt,name=sent" json:"sent,omitempty"`
}

func (m *Messages) Reset()                    { *m = Messages{} }
func (m *Messages) String() string            { return proto.CompactTextString(m) }
func (*Messages) ProtoMessage()               {}
func (*Messages) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} }

func (m *Messages) GetReceived() *Message {
	if m != nil {
		return m.Received
	}
	return nil
}

func (m *Messages) GetSent() *Message {
	if m != nil {
		return m.Sent
	}
	return nil
}

type Message struct {
	Notification   uint64 `protobuf:"varint,1,opt,name=notification" json:"notification,omitempty"`
	Update         uint64 `protobuf:"varint,2,opt,name=update" json:"update,omitempty"`
	Open           uint64 `protobuf:"varint,3,opt,name=open" json:"open,omitempty"`
	Keepalive      uint64 `protobuf:"varint,4,opt,name=keepalive" json:"keepalive,omitempty"`
	Refresh        uint64 `protobuf:"varint,5,opt,name=refresh" json:"refresh,omitempty"`
	Discarded      uint64 `protobuf:"varint,6,opt,name=discarded" json:"discarded,omitempty"`
	Total          uint64 `protobuf:"varint,7,opt,name=total" json:"total,omitempty"`
	WithdrawUpdate uint64 `protobuf:"varint,8,opt,name=withdraw_update,json=withdrawUpdate" json:"withdraw_update,omitempty"`
	WithdrawPrefix uint64 `protobuf:"varint,9,opt,name=withdraw_prefix,json=withdrawPrefix" json:"withdraw_prefix,omitempty"`
}

func (m *Message) Reset()                    { *m = Message{} }
func (m *Message) String() string            { return proto.CompactTextString(m) }
func (*Message) ProtoMessage()               {}
func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} }

func (m *Message) GetNotification() uint64 {
	if m != nil {
		return m.Notification
	}
	return 0
}

func (m *Message) GetUpdate() uint64 {
	if m != nil {
		return m.Update
	}
	return 0
}

func (m *Message) GetOpen() uint64 {
	if m != nil {
		return m.Open
	}
	return 0
}

func (m *Message) GetKeepalive() uint64 {
	if m != nil {
		return m.Keepalive
	}
	return 0
}

func (m *Message) GetRefresh() uint64 {
	if m != nil {
		return m.Refresh
	}
	return 0
}

func (m *Message) GetDiscarded() uint64 {
	if m != nil {
		return m.Discarded
	}
	return 0
}

func (m *Message) GetTotal() uint64 {
	if m != nil {
		return m.Total
	}
	return 0
}

func (m *Message) GetWithdrawUpdate() uint64 {
	if m != nil {
		return m.WithdrawUpdate
	}
	return 0
}

func (m *Message) GetWithdrawPrefix() uint64 {
	if m != nil {
		return m.WithdrawPrefix
	}
	return 0
}

type Queues struct {
	Input  uint32 `protobuf:"varint,1,opt,name=input" json:"input,omitempty"`
	Output uint32 `protobuf:"varint,2,opt,name=output" json:"output,omitempty"`
}

func (m *Queues) Reset()                    { *m = Queues{} }
func (m *Queues) String() string            { return proto.CompactTextString(m) }
func (*Queues) ProtoMessage()               {}
func (*Queues) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} }

func (m *Queues) GetInput() uint32 {
	if m != nil {
		return m.Input
	}
	return 0
}

func (m *Queues) GetOutput() uint32 {
	if m != nil {
		return m.Output
	}
	return 0
}

type Timers struct {
	Config *TimersConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	State  *TimersState  `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
}

func (m *Timers) Reset()                    { *m = Timers{} }
func (m *Timers) String() string            { return proto.CompactTextString(m) }
func (*Timers) ProtoMessage()               {}
func (*Timers) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} }

func (m *Timers) GetConfig() *TimersConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *Timers) GetState() *TimersState {
	if m != nil {
		return m.State
	}
	return nil
}

type TimersConfig struct {
	ConnectRetry                 uint64 `protobuf:"varint,1,opt,name=connect_retry,json=connectRetry" json:"connect_retry,omitempty"`
	HoldTime                     uint64 `protobuf:"varint,2,opt,name=hold_time,json=holdTime" json:"hold_time,omitempty"`
	KeepaliveInterval            uint64 `protobuf:"varint,3,opt,name=keepalive_interval,json=keepaliveInterval" json:"keepalive_interval,omitempty"`
	MinimumAdvertisementInterval uint64 `protobuf:"varint,4,opt,name=minimum_advertisement_interval,json=minimumAdvertisementInterval" json:"minimum_advertisement_interval,omitempty"`
}

func (m *TimersConfig) Reset()                    { *m = TimersConfig{} }
func (m *TimersConfig) String() string            { return proto.CompactTextString(m) }
func (*TimersConfig) ProtoMessage()               {}
func (*TimersConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} }

func (m *TimersConfig) GetConnectRetry() uint64 {
	if m != nil {
		return m.ConnectRetry
	}
	return 0
}

func (m *TimersConfig) GetHoldTime() uint64 {
	if m != nil {
		return m.HoldTime
	}
	return 0
}

func (m *TimersConfig) GetKeepaliveInterval() uint64 {
	if m != nil {
		return m.KeepaliveInterval
	}
	return 0
}

func (m *TimersConfig) GetMinimumAdvertisementInterval() uint64 {
	if m != nil {
		return m.MinimumAdvertisementInterval
	}
	return 0
}

type TimersState struct {
	ConnectRetry                 uint64                      `protobuf:"varint,1,opt,name=connect_retry,json=connectRetry" json:"connect_retry,omitempty"`
	HoldTime                     uint64                      `protobuf:"varint,2,opt,name=hold_time,json=holdTime" json:"hold_time,omitempty"`
	KeepaliveInterval            uint64                      `protobuf:"varint,3,opt,name=keepalive_interval,json=keepaliveInterval" json:"keepalive_interval,omitempty"`
	MinimumAdvertisementInterval uint64                      `protobuf:"varint,4,opt,name=minimum_advertisement_interval,json=minimumAdvertisementInterval" json:"minimum_advertisement_interval,omitempty"`
	NegotiatedHoldTime           uint64                      `protobuf:"varint,5,opt,name=negotiated_hold_time,json=negotiatedHoldTime" json:"negotiated_hold_time,omitempty"`
	Uptime                       *google_protobuf2.Timestamp `protobuf:"bytes,6,opt,name=uptime" json:"uptime,omitempty"`
	Downtime                     *google_protobuf2.Timestamp `protobuf:"bytes,7,opt,name=downtime" json:"downtime,omitempty"`
}

func (m *TimersState) Reset()                    { *m = TimersState{} }
func (m *TimersState) String() string            { return proto.CompactTextString(m) }
func (*TimersState) ProtoMessage()               {}
func (*TimersState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} }

func (m *TimersState) GetConnectRetry() uint64 {
	if m != nil {
		return m.ConnectRetry
	}
	return 0
}

func (m *TimersState) GetHoldTime() uint64 {
	if m != nil {
		return m.HoldTime
	}
	return 0
}

func (m *TimersState) GetKeepaliveInterval() uint64 {
	if m != nil {
		return m.KeepaliveInterval
	}
	return 0
}

func (m *TimersState) GetMinimumAdvertisementInterval() uint64 {
	if m != nil {
		return m.MinimumAdvertisementInterval
	}
	return 0
}

func (m *TimersState) GetNegotiatedHoldTime() uint64 {
	if m != nil {
		return m.NegotiatedHoldTime
	}
	return 0
}

func (m *TimersState) GetUptime() *google_protobuf2.Timestamp {
	if m != nil {
		return m.Uptime
	}
	return nil
}

func (m *TimersState) GetDowntime() *google_protobuf2.Timestamp {
	if m != nil {
		return m.Downtime
	}
	return nil
}

type Transport struct {
	LocalAddress  string `protobuf:"bytes,1,opt,name=local_address,json=localAddress" json:"local_address,omitempty"`
	LocalPort     uint32 `protobuf:"varint,2,opt,name=local_port,json=localPort" json:"local_port,omitempty"`
	MtuDiscovery  bool   `protobuf:"varint,3,opt,name=mtu_discovery,json=mtuDiscovery" json:"mtu_discovery,omitempty"`
	PassiveMode   bool   `protobuf:"varint,4,opt,name=passive_mode,json=passiveMode" json:"passive_mode,omitempty"`
	RemoteAddress string `protobuf:"bytes,5,opt,name=remote_address,json=remoteAddress" json:"remote_address,omitempty"`
	RemotePort    uint32 `protobuf:"varint,6,opt,name=remote_port,json=remotePort" json:"remote_port,omitempty"`
	TcpMss        uint32 `protobuf:"varint,7,opt,name=tcp_mss,json=tcpMss" json:"tcp_mss,omitempty"`
}

func (m *Transport) Reset()                    { *m = Transport{} }
func (m *Transport) String() string            { return proto.CompactTextString(m) }
func (*Transport) ProtoMessage()               {}
func (*Transport) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} }

func (m *Transport) GetLocalAddress() string {
	if m != nil {
		return m.LocalAddress
	}
	return ""
}

func (m *Transport) GetLocalPort() uint32 {
	if m != nil {
		return m.LocalPort
	}
	return 0
}

func (m *Transport) GetMtuDiscovery() bool {
	if m != nil {
		return m.MtuDiscovery
	}
	return false
}

func (m *Transport) GetPassiveMode() bool {
	if m != nil {
		return m.PassiveMode
	}
	return false
}

func (m *Transport) GetRemoteAddress() string {
	if m != nil {
		return m.RemoteAddress
	}
	return ""
}

func (m *Transport) GetRemotePort() uint32 {
	if m != nil {
		return m.RemotePort
	}
	return 0
}

func (m *Transport) GetTcpMss() uint32 {
	if m != nil {
		return m.TcpMss
	}
	return 0
}

type RouteServer struct {
	RouteServerClient bool `protobuf:"varint,1,opt,name=route_server_client,json=routeServerClient" json:"route_server_client,omitempty"`
}

func (m *RouteServer) Reset()                    { *m = RouteServer{} }
func (m *RouteServer) String() string            { return proto.CompactTextString(m) }
func (*RouteServer) ProtoMessage()               {}
func (*RouteServer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} }

func (m *RouteServer) GetRouteServerClient() bool {
	if m != nil {
		return m.RouteServerClient
	}
	return false
}

type GracefulRestart struct {
	Enabled             bool   `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
	RestartTime         uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime" json:"restart_time,omitempty"`
	HelperOnly          bool   `protobuf:"varint,3,opt,name=helper_only,json=helperOnly" json:"helper_only,omitempty"`
	DeferralTime        uint32 `protobuf:"varint,4,opt,name=deferral_time,json=deferralTime" json:"deferral_time,omitempty"`
	NotificationEnabled bool   `protobuf:"varint,5,opt,name=notification_enabled,json=notificationEnabled" json:"notification_enabled,omitempty"`
	LonglivedEnabled    bool   `protobuf:"varint,6,opt,name=longlived_enabled,json=longlivedEnabled" json:"longlived_enabled,omitempty"`
	StaleRoutesTime     uint32 `protobuf:"varint,7,opt,name=stale_routes_time,json=staleRoutesTime" json:"stale_routes_time,omitempty"`
	PeerRestartTime     uint32 `protobuf:"varint,8,opt,name=peer_restart_time,json=peerRestartTime" json:"peer_restart_time,omitempty"`
	PeerRestarting      bool   `protobuf:"varint,9,opt,name=peer_restarting,json=peerRestarting" json:"peer_restarting,omitempty"`
	LocalRestarting     bool   `protobuf:"varint,10,opt,name=local_restarting,json=localRestarting" json:"local_restarting,omitempty"`
	Mode                string `protobuf:"bytes,11,opt,name=mode" json:"mode,omitempty"`
}

func (m *GracefulRestart) Reset()                    { *m = GracefulRestart{} }
func (m *GracefulRestart) String() string            { return proto.CompactTextString(m) }
func (*GracefulRestart) ProtoMessage()               {}
func (*GracefulRestart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }

func (m *GracefulRestart) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *GracefulRestart) GetRestartTime() uint32 {
	if m != nil {
		return m.RestartTime
	}
	return 0
}

func (m *GracefulRestart) GetHelperOnly() bool {
	if m != nil {
		return m.HelperOnly
	}
	return false
}

func (m *GracefulRestart) GetDeferralTime() uint32 {
	if m != nil {
		return m.DeferralTime
	}
	return 0
}

func (m *GracefulRestart) GetNotificationEnabled() bool {
	if m != nil {
		return m.NotificationEnabled
	}
	return false
}

func (m *GracefulRestart) GetLonglivedEnabled() bool {
	if m != nil {
		return m.LonglivedEnabled
	}
	return false
}

func (m *GracefulRestart) GetStaleRoutesTime() uint32 {
	if m != nil {
		return m.StaleRoutesTime
	}
	return 0
}

func (m *GracefulRestart) GetPeerRestartTime() uint32 {
	if m != nil {
		return m.PeerRestartTime
	}
	return 0
}

func (m *GracefulRestart) GetPeerRestarting() bool {
	if m != nil {
		return m.PeerRestarting
	}
	return false
}

func (m *GracefulRestart) GetLocalRestarting() bool {
	if m != nil {
		return m.LocalRestarting
	}
	return false
}

func (m *GracefulRestart) GetMode() string {
	if m != nil {
		return m.Mode
	}
	return ""
}

type MpGracefulRestartConfig struct {
	Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
}

func (m *MpGracefulRestartConfig) Reset()                    { *m = MpGracefulRestartConfig{} }
func (m *MpGracefulRestartConfig) String() string            { return proto.CompactTextString(m) }
func (*MpGracefulRestartConfig) ProtoMessage()               {}
func (*MpGracefulRestartConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }

func (m *MpGracefulRestartConfig) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

type MpGracefulRestartState struct {
	Enabled          bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
	Received         bool `protobuf:"varint,2,opt,name=received" json:"received,omitempty"`
	Advertised       bool `protobuf:"varint,3,opt,name=advertised" json:"advertised,omitempty"`
	EndOfRibReceived bool `protobuf:"varint,4,opt,name=end_of_rib_received,json=endOfRibReceived" json:"end_of_rib_received,omitempty"`
	EndOfRibSent     bool `protobuf:"varint,5,opt,name=end_of_rib_sent,json=endOfRibSent" json:"end_of_rib_sent,omitempty"`
}

func (m *MpGracefulRestartState) Reset()                    { *m = MpGracefulRestartState{} }
func (m *MpGracefulRestartState) String() string            { return proto.CompactTextString(m) }
func (*MpGracefulRestartState) ProtoMessage()               {}
func (*MpGracefulRestartState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }

func (m *MpGracefulRestartState) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *MpGracefulRestartState) GetReceived() bool {
	if m != nil {
		return m.Received
	}
	return false
}

func (m *MpGracefulRestartState) GetAdvertised() bool {
	if m != nil {
		return m.Advertised
	}
	return false
}

func (m *MpGracefulRestartState) GetEndOfRibReceived() bool {
	if m != nil {
		return m.EndOfRibReceived
	}
	return false
}

func (m *MpGracefulRestartState) GetEndOfRibSent() bool {
	if m != nil {
		return m.EndOfRibSent
	}
	return false
}

type MpGracefulRestart struct {
	Config *MpGracefulRestartConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	State  *MpGracefulRestartState  `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
}

func (m *MpGracefulRestart) Reset()                    { *m = MpGracefulRestart{} }
func (m *MpGracefulRestart) String() string            { return proto.CompactTextString(m) }
func (*MpGracefulRestart) ProtoMessage()               {}
func (*MpGracefulRestart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} }

func (m *MpGracefulRestart) GetConfig() *MpGracefulRestartConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *MpGracefulRestart) GetState() *MpGracefulRestartState {
	if m != nil {
		return m.State
	}
	return nil
}

type AfiSafiConfig struct {
	Family  *Family `protobuf:"bytes,1,opt,name=family" json:"family,omitempty"`
	Enabled bool    `protobuf:"varint,2,opt,name=enabled" json:"enabled,omitempty"`
}

func (m *AfiSafiConfig) Reset()                    { *m = AfiSafiConfig{} }
func (m *AfiSafiConfig) String() string            { return proto.CompactTextString(m) }
func (*AfiSafiConfig) ProtoMessage()               {}
func (*AfiSafiConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} }

func (m *AfiSafiConfig) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

func (m *AfiSafiConfig) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

type AfiSafiState struct {
	Family     *Family `protobuf:"bytes,1,opt,name=family" json:"family,omitempty"`
	Enabled    bool    `protobuf:"varint,2,opt,name=enabled" json:"enabled,omitempty"`
	Received   uint64  `protobuf:"varint,3,opt,name=received" json:"received,omitempty"`
	Accepted   uint64  `protobuf:"varint,4,opt,name=accepted" json:"accepted,omitempty"`
	Advertised uint64  `protobuf:"varint,5,opt,name=advertised" json:"advertised,omitempty"`
}

func (m *AfiSafiState) Reset()                    { *m = AfiSafiState{} }
func (m *AfiSafiState) String() string            { return proto.CompactTextString(m) }
func (*AfiSafiState) ProtoMessage()               {}
func (*AfiSafiState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} }

func (m *AfiSafiState) GetFamily() *Family {
	if m != nil {
		return m.Family
	}
	return nil
}

func (m *AfiSafiState) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *AfiSafiState) GetReceived() uint64 {
	if m != nil {
		return m.Received
	}
	return 0
}

func (m *AfiSafiState) GetAccepted() uint64 {
	if m != nil {
		return m.Accepted
	}
	return 0
}

func (m *AfiSafiState) GetAdvertised() uint64 {
	if m != nil {
		return m.Advertised
	}
	return 0
}

type RouteSelectionOptionsConfig struct {
	AlwaysCompareMed         bool `protobuf:"varint,1,opt,name=always_compare_med,json=alwaysCompareMed" json:"always_compare_med,omitempty"`
	IgnoreAsPathLength       bool `protobuf:"varint,2,opt,name=ignore_as_path_length,json=ignoreAsPathLength" json:"ignore_as_path_length,omitempty"`
	ExternalCompareRouterId  bool `protobuf:"varint,3,opt,name=external_compare_router_id,json=externalCompareRouterId" json:"external_compare_router_id,omitempty"`
	AdvertiseInactiveRoutes  bool `protobuf:"varint,4,opt,name=advertise_inactive_routes,json=advertiseInactiveRoutes" json:"advertise_inactive_routes,omitempty"`
	EnableAigp               bool `protobuf:"varint,5,opt,name=enable_aigp,json=enableAigp" json:"enable_aigp,omitempty"`
	IgnoreNextHopIgpMetric   bool `protobuf:"varint,6,opt,name=ignore_next_hop_igp_metric,json=ignoreNextHopIgpMetric" json:"ignore_next_hop_igp_metric,omitempty"`
	DisableBestPathSelection bool `protobuf:"varint,7,opt,name=disable_best_path_selection,json=disableBestPathSelection" json:"disable_best_path_selection,omitempty"`
}

func (m *RouteSelectionOptionsConfig) Reset()                    { *m = RouteSelectionOptionsConfig{} }
func (m *RouteSelectionOptionsConfig) String() string            { return proto.CompactTextString(m) }
func (*RouteSelectionOptionsConfig) ProtoMessage()               {}
func (*RouteSelectionOptionsConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} }

func (m *RouteSelectionOptionsConfig) GetAlwaysCompareMed() bool {
	if m != nil {
		return m.AlwaysCompareMed
	}
	return false
}

func (m *RouteSelectionOptionsConfig) GetIgnoreAsPathLength() bool {
	if m != nil {
		return m.IgnoreAsPathLength
	}
	return false
}

func (m *RouteSelectionOptionsConfig) GetExternalCompareRouterId() bool {
	if m != nil {
		return m.ExternalCompareRouterId
	}
	return false
}

func (m *RouteSelectionOptionsConfig) GetAdvertiseInactiveRoutes() bool {
	if m != nil {
		return m.AdvertiseInactiveRoutes
	}
	return false
}

func (m *RouteSelectionOptionsConfig) GetEnableAigp() bool {
	if m != nil {
		return m.EnableAigp
	}
	return false
}

func (m *RouteSelectionOptionsConfig) GetIgnoreNextHopIgpMetric() bool {
	if m != nil {
		return m.IgnoreNextHopIgpMetric
	}
	return false
}

func (m *RouteSelectionOptionsConfig) GetDisableBestPathSelection() bool {
	if m != nil {
		return m.DisableBestPathSelection
	}
	return false
}

type RouteSelectionOptionsState struct {
	AlwaysCompareMed         bool `protobuf:"varint,1,opt,name=always_compare_med,json=alwaysCompareMed" json:"always_compare_med,omitempty"`
	IgnoreAsPathLength       bool `protobuf:"varint,2,opt,name=ignore_as_path_length,json=ignoreAsPathLength" json:"ignore_as_path_length,omitempty"`
	ExternalCompareRouterId  bool `protobuf:"varint,3,opt,name=external_compare_router_id,json=externalCompareRouterId" json:"external_compare_router_id,omitempty"`
	AdvertiseInactiveRoutes  bool `protobuf:"varint,4,opt,name=advertise_inactive_routes,json=advertiseInactiveRoutes" json:"advertise_inactive_routes,omitempty"`
	EnableAigp               bool `protobuf:"varint,5,opt,name=enable_aigp,json=enableAigp" json:"enable_aigp,omitempty"`
	IgnoreNextHopIgpMetric   bool `protobuf:"varint,6,opt,name=ignore_next_hop_igp_metric,json=ignoreNextHopIgpMetric" json:"ignore_next_hop_igp_metric,omitempty"`
	DisableBestPathSelection bool `protobuf:"varint,7,opt,name=disable_best_path_selection,json=disableBestPathSelection" json:"disable_best_path_selection,omitempty"`
}

func (m *RouteSelectionOptionsState) Reset()                    { *m = RouteSelectionOptionsState{} }
func (m *RouteSelectionOptionsState) String() string            { return proto.CompactTextString(m) }
func (*RouteSelectionOptionsState) ProtoMessage()               {}
func (*RouteSelectionOptionsState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} }

func (m *RouteSelectionOptionsState) GetAlwaysCompareMed() bool {
	if m != nil {
		return m.AlwaysCompareMed
	}
	return false
}

func (m *RouteSelectionOptionsState) GetIgnoreAsPathLength() bool {
	if m != nil {
		return m.IgnoreAsPathLength
	}
	return false
}

func (m *RouteSelectionOptionsState) GetExternalCompareRouterId() bool {
	if m != nil {
		return m.ExternalCompareRouterId
	}
	return false
}

func (m *RouteSelectionOptionsState) GetAdvertiseInactiveRoutes() bool {
	if m != nil {
		return m.AdvertiseInactiveRoutes
	}
	return false
}

func (m *RouteSelectionOptionsState) GetEnableAigp() bool {
	if m != nil {
		return m.EnableAigp
	}
	return false
}

func (m *RouteSelectionOptionsState) GetIgnoreNextHopIgpMetric() bool {
	if m != nil {
		return m.IgnoreNextHopIgpMetric
	}
	return false
}

func (m *RouteSelectionOptionsState) GetDisableBestPathSelection() bool {
	if m != nil {
		return m.DisableBestPathSelection
	}
	return false
}

type RouteSelectionOptions struct {
	Config *RouteSelectionOptionsConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	State  *RouteSelectionOptionsState  `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
}

func (m *RouteSelectionOptions) Reset()                    { *m = RouteSelectionOptions{} }
func (m *RouteSelectionOptions) String() string            { return proto.CompactTextString(m) }
func (*RouteSelectionOptions) ProtoMessage()               {}
func (*RouteSelectionOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} }

func (m *RouteSelectionOptions) GetConfig() *RouteSelectionOptionsConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *RouteSelectionOptions) GetState() *RouteSelectionOptionsState {
	if m != nil {
		return m.State
	}
	return nil
}

type UseMultiplePathsConfig struct {
	Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
}

func (m *UseMultiplePathsConfig) Reset()                    { *m = UseMultiplePathsConfig{} }
func (m *UseMultiplePathsConfig) String() string            { return proto.CompactTextString(m) }
func (*UseMultiplePathsConfig) ProtoMessage()               {}
func (*UseMultiplePathsConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{100} }

func (m *UseMultiplePathsConfig) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

type UseMultiplePathsState struct {
	Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
}

func (m *UseMultiplePathsState) Reset()                    { *m = UseMultiplePathsState{} }
func (m *UseMultiplePathsState) String() string            { return proto.CompactTextString(m) }
func (*UseMultiplePathsState) ProtoMessage()               {}
func (*UseMultiplePathsState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{101} }

func (m *UseMultiplePathsState) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

type EbgpConfig struct {
	AllowMultipleAs bool   `protobuf:"varint,1,opt,name=allow_multiple_as,json=allowMultipleAs" json:"allow_multiple_as,omitempty"`
	MaximumPaths    uint32 `protobuf:"varint,2,opt,name=maximum_paths,json=maximumPaths" json:"maximum_paths,omitempty"`
}

func (m *EbgpConfig) Reset()                    { *m = EbgpConfig{} }
func (m *EbgpConfig) String() string            { return proto.CompactTextString(m) }
func (*EbgpConfig) ProtoMessage()               {}
func (*EbgpConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{102} }

func (m *EbgpConfig) GetAllowMultipleAs() bool {
	if m != nil {
		return m.AllowMultipleAs
	}
	return false
}

func (m *EbgpConfig) GetMaximumPaths() uint32 {
	if m != nil {
		return m.MaximumPaths
	}
	return 0
}

type EbgpState struct {
	AllowMultipleAs bool   `protobuf:"varint,1,opt,name=allow_multiple_as,json=allowMultipleAs" json:"allow_multiple_as,omitempty"`
	MaximumPaths    uint32 `protobuf:"varint,2,opt,name=maximum_paths,json=maximumPaths" json:"maximum_paths,omitempty"`
}

func (m *EbgpState) Reset()                    { *m = EbgpState{} }
func (m *EbgpState) String() string            { return proto.CompactTextString(m) }
func (*EbgpState) ProtoMessage()               {}
func (*EbgpState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{103} }

func (m *EbgpState) GetAllowMultipleAs() bool {
	if m != nil {
		return m.AllowMultipleAs
	}
	return false
}

func (m *EbgpState) GetMaximumPaths() uint32 {
	if m != nil {
		return m.MaximumPaths
	}
	return 0
}

type Ebgp struct {
	Config *EbgpConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	State  *EbgpState  `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
}

func (m *Ebgp) Reset()                    { *m = Ebgp{} }
func (m *Ebgp) String() string            { return proto.CompactTextString(m) }
func (*Ebgp) ProtoMessage()               {}
func (*Ebgp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{104} }

func (m *Ebgp) GetConfig() *EbgpConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *Ebgp) GetState() *EbgpState {
	if m != nil {
		return m.State
	}
	return nil
}

type IbgpConfig struct {
	MaximumPaths uint32 `protobuf:"varint,1,opt,name=maximum_paths,json=maximumPaths" json:"maximum_paths,omitempty"`
}

func (m *IbgpConfig) Reset()                    { *m = IbgpConfig{} }
func (m *IbgpConfig) String() string            { return proto.CompactTextString(m) }
func (*IbgpConfig) ProtoMessage()               {}
func (*IbgpConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{105} }

func (m *IbgpConfig) GetMaximumPaths() uint32 {
	if m != nil {
		return m.MaximumPaths
	}
	return 0
}

type IbgpState struct {
	MaximumPaths uint32 `protobuf:"varint,1,opt,name=maximum_paths,json=maximumPaths" json:"maximum_paths,omitempty"`
}

func (m *IbgpState) Reset()                    { *m = IbgpState{} }
func (m *IbgpState) String() string            { return proto.CompactTextString(m) }
func (*IbgpState) ProtoMessage()               {}
func (*IbgpState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{106} }

func (m *IbgpState) GetMaximumPaths() uint32 {
	if m != nil {
		return m.MaximumPaths
	}
	return 0
}

type Ibgp struct {
	Config *IbgpConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	State  *IbgpState  `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
}

func (m *Ibgp) Reset()                    { *m = Ibgp{} }
func (m *Ibgp) String() string            { return proto.CompactTextString(m) }
func (*Ibgp) ProtoMessage()               {}
func (*Ibgp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{107} }

func (m *Ibgp) GetConfig() *IbgpConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *Ibgp) GetState() *IbgpState {
	if m != nil {
		return m.State
	}
	return nil
}

type UseMultiplePaths struct {
	Config *UseMultiplePathsConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	State  *UseMultiplePathsState  `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
	Ebgp   *Ebgp                   `protobuf:"bytes,3,opt,name=ebgp" json:"ebgp,omitempty"`
	Ibgp   *Ibgp                   `protobuf:"bytes,4,opt,name=ibgp" json:"ibgp,omitempty"`
}

func (m *UseMultiplePaths) Reset()                    { *m = UseMultiplePaths{} }
func (m *UseMultiplePaths) String() string            { return proto.CompactTextString(m) }
func (*UseMultiplePaths) ProtoMessage()               {}
func (*UseMultiplePaths) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{108} }

func (m *UseMultiplePaths) GetConfig() *UseMultiplePathsConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *UseMultiplePaths) GetState() *UseMultiplePathsState {
	if m != nil {
		return m.State
	}
	return nil
}

func (m *UseMultiplePaths) GetEbgp() *Ebgp {
	if m != nil {
		return m.Ebgp
	}
	return nil
}

func (m *UseMultiplePaths) GetIbgp() *Ibgp {
	if m != nil {
		return m.Ibgp
	}
	return nil
}

type RouteTargetMembershipConfig struct {
	DeferralTime uint32 `protobuf:"varint,1,opt,name=deferral_time,json=deferralTime" json:"deferral_time,omitempty"`
}

func (m *RouteTargetMembershipConfig) Reset()                    { *m = RouteTargetMembershipConfig{} }
func (m *RouteTargetMembershipConfig) String() string            { return proto.CompactTextString(m) }
func (*RouteTargetMembershipConfig) ProtoMessage()               {}
func (*RouteTargetMembershipConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{109} }

func (m *RouteTargetMembershipConfig) GetDeferralTime() uint32 {
	if m != nil {
		return m.DeferralTime
	}
	return 0
}

type RouteTargetMembershipState struct {
	DeferralTime uint32 `protobuf:"varint,1,opt,name=deferral_time,json=deferralTime" json:"deferral_time,omitempty"`
}

func (m *RouteTargetMembershipState) Reset()                    { *m = RouteTargetMembershipState{} }
func (m *RouteTargetMembershipState) String() string            { return proto.CompactTextString(m) }
func (*RouteTargetMembershipState) ProtoMessage()               {}
func (*RouteTargetMembershipState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{110} }

func (m *RouteTargetMembershipState) GetDeferralTime() uint32 {
	if m != nil {
		return m.DeferralTime
	}
	return 0
}

type RouteTargetMembership struct {
	Config *RouteTargetMembershipConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	State  *RouteTargetMembershipState  `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
}

func (m *RouteTargetMembership) Reset()                    { *m = RouteTargetMembership{} }
func (m *RouteTargetMembership) String() string            { return proto.CompactTextString(m) }
func (*RouteTargetMembership) ProtoMessage()               {}
func (*RouteTargetMembership) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{111} }

func (m *RouteTargetMembership) GetConfig() *RouteTargetMembershipConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *RouteTargetMembership) GetState() *RouteTargetMembershipState {
	if m != nil {
		return m.State
	}
	return nil
}

type LongLivedGracefulRestartConfig struct {
	Enabled     bool   `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
	RestartTime uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime" json:"restart_time,omitempty"`
}

func (m *LongLivedGracefulRestartConfig) Reset()         { *m = LongLivedGracefulRestartConfig{} }
func (m *LongLivedGracefulRestartConfig) String() string { return proto.CompactTextString(m) }
func (*LongLivedGracefulRestartConfig) ProtoMessage()    {}
func (*LongLivedGracefulRestartConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{112}
}

func (m *LongLivedGracefulRestartConfig) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *LongLivedGracefulRestartConfig) GetRestartTime() uint32 {
	if m != nil {
		return m.RestartTime
	}
	return 0
}

type LongLivedGracefulRestartState struct {
	Enabled                 bool   `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
	Received                bool   `protobuf:"varint,2,opt,name=received" json:"received,omitempty"`
	Advertised              bool   `protobuf:"varint,3,opt,name=advertised" json:"advertised,omitempty"`
	PeerRestartTime         uint32 `protobuf:"varint,4,opt,name=peer_restart_time,json=peerRestartTime" json:"peer_restart_time,omitempty"`
	PeerRestartTimerExpired bool   `protobuf:"varint,5,opt,name=peer_restart_timer_expired,json=peerRestartTimerExpired" json:"peer_restart_timer_expired,omitempty"`
}

func (m *LongLivedGracefulRestartState) Reset()                    { *m = LongLivedGracefulRestartState{} }
func (m *LongLivedGracefulRestartState) String() string            { return proto.CompactTextString(m) }
func (*LongLivedGracefulRestartState) ProtoMessage()               {}
func (*LongLivedGracefulRestartState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{113} }

func (m *LongLivedGracefulRestartState) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *LongLivedGracefulRestartState) GetReceived() bool {
	if m != nil {
		return m.Received
	}
	return false
}

func (m *LongLivedGracefulRestartState) GetAdvertised() bool {
	if m != nil {
		return m.Advertised
	}
	return false
}

func (m *LongLivedGracefulRestartState) GetPeerRestartTime() uint32 {
	if m != nil {
		return m.PeerRestartTime
	}
	return 0
}

func (m *LongLivedGracefulRestartState) GetPeerRestartTimerExpired() bool {
	if m != nil {
		return m.PeerRestartTimerExpired
	}
	return false
}

type LongLivedGracefulRestart struct {
	Config *LongLivedGracefulRestartConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	State  *LongLivedGracefulRestartState  `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
}

func (m *LongLivedGracefulRestart) Reset()                    { *m = LongLivedGracefulRestart{} }
func (m *LongLivedGracefulRestart) String() string            { return proto.CompactTextString(m) }
func (*LongLivedGracefulRestart) ProtoMessage()               {}
func (*LongLivedGracefulRestart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{114} }

func (m *LongLivedGracefulRestart) GetConfig() *LongLivedGracefulRestartConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *LongLivedGracefulRestart) GetState() *LongLivedGracefulRestartState {
	if m != nil {
		return m.State
	}
	return nil
}

type AfiSafi struct {
	MpGracefulRestart *MpGracefulRestart `protobuf:"bytes,1,opt,name=mp_graceful_restart,json=mpGracefulRestart" json:"mp_graceful_restart,omitempty"`
	Config            *AfiSafiConfig     `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
	State             *AfiSafiState      `protobuf:"bytes,3,opt,name=state" json:"state,omitempty"`
	ApplyPolicy       *ApplyPolicy       `protobuf:"bytes,4,opt,name=apply_policy,json=applyPolicy" json:"apply_policy,omitempty"`
	// TODO:
	// Support the following structures:
	// - Ipv4Unicast
	// - Ipv6Unicast
	// - Ipv4LabelledUnicast
	// - Ipv6LabelledUnicast
	// - L3vpnIpv4Unicast
	// - L3vpnIpv6Unicast
	// - L3vpnIpv4Multicast
	// - L3vpnIpv6Multicast
	// - L2vpnVpls
	// - L2vpnEvpn
	RouteSelectionOptions    *RouteSelectionOptions    `protobuf:"bytes,5,opt,name=route_selection_options,json=routeSelectionOptions" json:"route_selection_options,omitempty"`
	UseMultiplePaths         *UseMultiplePaths         `protobuf:"bytes,6,opt,name=use_multiple_paths,json=useMultiplePaths" json:"use_multiple_paths,omitempty"`
	PrefixLimits             *PrefixLimit              `protobuf:"bytes,7,opt,name=prefix_limits,json=prefixLimits" json:"prefix_limits,omitempty"`
	RouteTargetMembership    *RouteTargetMembership    `protobuf:"bytes,8,opt,name=route_target_membership,json=routeTargetMembership" json:"route_target_membership,omitempty"`
	LongLivedGracefulRestart *LongLivedGracefulRestart `protobuf:"bytes,9,opt,name=long_lived_graceful_restart,json=longLivedGracefulRestart" json:"long_lived_graceful_restart,omitempty"`
	AddPaths                 *AddPaths                 `protobuf:"bytes,10,opt,name=add_paths,json=addPaths" json:"add_paths,omitempty"`
}

func (m *AfiSafi) Reset()                    { *m = AfiSafi{} }
func (m *AfiSafi) String() string            { return proto.CompactTextString(m) }
func (*AfiSafi) ProtoMessage()               {}
func (*AfiSafi) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{115} }

func (m *AfiSafi) GetMpGracefulRestart() *MpGracefulRestart {
	if m != nil {
		return m.MpGracefulRestart
	}
	return nil
}

func (m *AfiSafi) GetConfig() *AfiSafiConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *AfiSafi) GetState() *AfiSafiState {
	if m != nil {
		return m.State
	}
	return nil
}

func (m *AfiSafi) GetApplyPolicy() *ApplyPolicy {
	if m != nil {
		return m.ApplyPolicy
	}
	return nil
}

func (m *AfiSafi) GetRouteSelectionOptions() *RouteSelectionOptions {
	if m != nil {
		return m.RouteSelectionOptions
	}
	return nil
}

func (m *AfiSafi) GetUseMultiplePaths() *UseMultiplePaths {
	if m != nil {
		return m.UseMultiplePaths
	}
	return nil
}

func (m *AfiSafi) GetPrefixLimits() *PrefixLimit {
	if m != nil {
		return m.PrefixLimits
	}
	return nil
}

func (m *AfiSafi) GetRouteTargetMembership() *RouteTargetMembership {
	if m != nil {
		return m.RouteTargetMembership
	}
	return nil
}

func (m *AfiSafi) GetLongLivedGracefulRestart() *LongLivedGracefulRestart {
	if m != nil {
		return m.LongLivedGracefulRestart
	}
	return nil
}

func (m *AfiSafi) GetAddPaths() *AddPaths {
	if m != nil {
		return m.AddPaths
	}
	return nil
}

type AddPathsConfig struct {
	Receive bool   `protobuf:"varint,1,opt,name=receive" json:"receive,omitempty"`
	SendMax uint32 `protobuf:"varint,2,opt,name=send_max,json=sendMax" json:"send_max,omitempty"`
}

func (m *AddPathsConfig) Reset()                    { *m = AddPathsConfig{} }
func (m *AddPathsConfig) String() string            { return proto.CompactTextString(m) }
func (*AddPathsConfig) ProtoMessage()               {}
func (*AddPathsConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{116} }

func (m *AddPathsConfig) GetReceive() bool {
	if m != nil {
		return m.Receive
	}
	return false
}

func (m *AddPathsConfig) GetSendMax() uint32 {
	if m != nil {
		return m.SendMax
	}
	return 0
}

type AddPathsState struct {
	Receive bool   `protobuf:"varint,1,opt,name=receive" json:"receive,omitempty"`
	SendMax uint32 `protobuf:"varint,2,opt,name=send_max,json=sendMax" json:"send_max,omitempty"`
}

func (m *AddPathsState) Reset()                    { *m = AddPathsState{} }
func (m *AddPathsState) String() string            { return proto.CompactTextString(m) }
func (*AddPathsState) ProtoMessage()               {}
func (*AddPathsState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{117} }

func (m *AddPathsState) GetReceive() bool {
	if m != nil {
		return m.Receive
	}
	return false
}

func (m *AddPathsState) GetSendMax() uint32 {
	if m != nil {
		return m.SendMax
	}
	return 0
}

type AddPaths struct {
	Config *AddPathsConfig `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	State  *AddPathsState  `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
}

func (m *AddPaths) Reset()                    { *m = AddPaths{} }
func (m *AddPaths) String() string            { return proto.CompactTextString(m) }
func (*AddPaths) ProtoMessage()               {}
func (*AddPaths) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{118} }

func (m *AddPaths) GetConfig() *AddPathsConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *AddPaths) GetState() *AddPathsState {
	if m != nil {
		return m.State
	}
	return nil
}

type Prefix struct {
	IpPrefix      string `protobuf:"bytes,1,opt,name=ip_prefix,json=ipPrefix" json:"ip_prefix,omitempty"`
	MaskLengthMin uint32 `protobuf:"varint,2,opt,name=mask_length_min,json=maskLengthMin" json:"mask_length_min,omitempty"`
	MaskLengthMax uint32 `protobuf:"varint,3,opt,name=mask_length_max,json=maskLengthMax" json:"mask_length_max,omitempty"`
}

func (m *Prefix) Reset()                    { *m = Prefix{} }
func (m *Prefix) String() string            { return proto.CompactTextString(m) }
func (*Prefix) ProtoMessage()               {}
func (*Prefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{119} }

func (m *Prefix) GetIpPrefix() string {
	if m != nil {
		return m.IpPrefix
	}
	return ""
}

func (m *Prefix) GetMaskLengthMin() uint32 {
	if m != nil {
		return m.MaskLengthMin
	}
	return 0
}

func (m *Prefix) GetMaskLengthMax() uint32 {
	if m != nil {
		return m.MaskLengthMax
	}
	return 0
}

type DefinedSet struct {
	DefinedType DefinedType `protobuf:"varint,1,opt,name=defined_type,json=definedType,enum=gobgpapi.DefinedType" json:"defined_type,omitempty"`
	Name        string      `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	List        []string    `protobuf:"bytes,3,rep,name=list" json:"list,omitempty"`
	Prefixes    []*Prefix   `protobuf:"bytes,4,rep,name=prefixes" json:"prefixes,omitempty"`
}

func (m *DefinedSet) Reset()                    { *m = DefinedSet{} }
func (m *DefinedSet) String() string            { return proto.CompactTextString(m) }
func (*DefinedSet) ProtoMessage()               {}
func (*DefinedSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{120} }

func (m *DefinedSet) GetDefinedType() DefinedType {
	if m != nil {
		return m.DefinedType
	}
	return DefinedType_PREFIX
}

func (m *DefinedSet) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *DefinedSet) GetList() []string {
	if m != nil {
		return m.List
	}
	return nil
}

func (m *DefinedSet) GetPrefixes() []*Prefix {
	if m != nil {
		return m.Prefixes
	}
	return nil
}

type MatchSet struct {
	MatchType MatchType `protobuf:"varint,1,opt,name=match_type,json=matchType,enum=gobgpapi.MatchType" json:"match_type,omitempty"`
	Name      string    `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
}

func (m *MatchSet) Reset()                    { *m = MatchSet{} }
func (m *MatchSet) String() string            { return proto.CompactTextString(m) }
func (*MatchSet) ProtoMessage()               {}
func (*MatchSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{121} }

func (m *MatchSet) GetMatchType() MatchType {
	if m != nil {
		return m.MatchType
	}
	return MatchType_ANY
}

func (m *MatchSet) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type AsPathLength struct {
	LengthType AsPathLengthType `protobuf:"varint,1,opt,name=length_type,json=lengthType,enum=gobgpapi.AsPathLengthType" json:"length_type,omitempty"`
	Length     uint32           `protobuf:"varint,2,opt,name=length" json:"length,omitempty"`
}

func (m *AsPathLength) Reset()                    { *m = AsPathLength{} }
func (m *AsPathLength) String() string            { return proto.CompactTextString(m) }
func (*AsPathLength) ProtoMessage()               {}
func (*AsPathLength) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{122} }

func (m *AsPathLength) GetLengthType() AsPathLengthType {
	if m != nil {
		return m.LengthType
	}
	return AsPathLengthType_EQ
}

func (m *AsPathLength) GetLength() uint32 {
	if m != nil {
		return m.Length
	}
	return 0
}

type Conditions struct {
	PrefixSet         *MatchSet            `protobuf:"bytes,1,opt,name=prefix_set,json=prefixSet" json:"prefix_set,omitempty"`
	NeighborSet       *MatchSet            `protobuf:"bytes,2,opt,name=neighbor_set,json=neighborSet" json:"neighbor_set,omitempty"`
	AsPathLength      *AsPathLength        `protobuf:"bytes,3,opt,name=as_path_length,json=asPathLength" json:"as_path_length,omitempty"`
	AsPathSet         *MatchSet            `protobuf:"bytes,4,opt,name=as_path_set,json=asPathSet" json:"as_path_set,omitempty"`
	CommunitySet      *MatchSet            `protobuf:"bytes,5,opt,name=community_set,json=communitySet" json:"community_set,omitempty"`
	ExtCommunitySet   *MatchSet            `protobuf:"bytes,6,opt,name=ext_community_set,json=extCommunitySet" json:"ext_community_set,omitempty"`
	RpkiResult        int32                `protobuf:"varint,7,opt,name=rpki_result,json=rpkiResult" json:"rpki_result,omitempty"`
	RouteType         Conditions_RouteType `protobuf:"varint,8,opt,name=route_type,json=routeType,enum=gobgpapi.Conditions_RouteType" json:"route_type,omitempty"`
	LargeCommunitySet *MatchSet            `protobuf:"bytes,9,opt,name=large_community_set,json=largeCommunitySet" json:"large_community_set,omitempty"`
	NextHopInList     []string             `protobuf:"bytes,10,rep,name=next_hop_in_list,json=nextHopInList" json:"next_hop_in_list,omitempty"`
	AfiSafiIn         []*Family            `protobuf:"bytes,11,rep,name=afi_safi_in,json=afiSafiIn" json:"afi_safi_in,omitempty"`
}

func (m *Conditions) Reset()                    { *m = Conditions{} }
func (m *Conditions) String() string            { return proto.CompactTextString(m) }
func (*Conditions) ProtoMessage()               {}
func (*Conditions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{123} }

func (m *Conditions) GetPrefixSet() *MatchSet {
	if m != nil {
		return m.PrefixSet
	}
	return nil
}

func (m *Conditions) GetNeighborSet() *MatchSet {
	if m != nil {
		return m.NeighborSet
	}
	return nil
}

func (m *Conditions) GetAsPathLength() *AsPathLength {
	if m != nil {
		return m.AsPathLength
	}
	return nil
}

func (m *Conditions) GetAsPathSet() *MatchSet {
	if m != nil {
		return m.AsPathSet
	}
	return nil
}

func (m *Conditions) GetCommunitySet() *MatchSet {
	if m != nil {
		return m.CommunitySet
	}
	return nil
}

func (m *Conditions) GetExtCommunitySet() *MatchSet {
	if m != nil {
		return m.ExtCommunitySet
	}
	return nil
}

func (m *Conditions) GetRpkiResult() int32 {
	if m != nil {
		return m.RpkiResult
	}
	return 0
}

func (m *Conditions) GetRouteType() Conditions_RouteType {
	if m != nil {
		return m.RouteType
	}
	return Conditions_ROUTE_TYPE_NONE
}

func (m *Conditions) GetLargeCommunitySet() *MatchSet {
	if m != nil {
		return m.LargeCommunitySet
	}
	return nil
}

func (m *Conditions) GetNextHopInList() []string {
	if m != nil {
		return m.NextHopInList
	}
	return nil
}

func (m *Conditions) GetAfiSafiIn() []*Family {
	if m != nil {
		return m.AfiSafiIn
	}
	return nil
}

type CommunityAction struct {
	ActionType  CommunityActionType `protobuf:"varint,1,opt,name=action_type,json=actionType,enum=gobgpapi.CommunityActionType" json:"action_type,omitempty"`
	Communities []string            `protobuf:"bytes,2,rep,name=communities" json:"communities,omitempty"`
}

func (m *CommunityAction) Reset()                    { *m = CommunityAction{} }
func (m *CommunityAction) String() string            { return proto.CompactTextString(m) }
func (*CommunityAction) ProtoMessage()               {}
func (*CommunityAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{124} }

func (m *CommunityAction) GetActionType() CommunityActionType {
	if m != nil {
		return m.ActionType
	}
	return CommunityActionType_COMMUNITY_ADD
}

func (m *CommunityAction) GetCommunities() []string {
	if m != nil {
		return m.Communities
	}
	return nil
}

type MedAction struct {
	ActionType MedActionType `protobuf:"varint,1,opt,name=action_type,json=actionType,enum=gobgpapi.MedActionType" json:"action_type,omitempty"`
	Value      int64         `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
}

func (m *MedAction) Reset()                    { *m = MedAction{} }
func (m *MedAction) String() string            { return proto.CompactTextString(m) }
func (*MedAction) ProtoMessage()               {}
func (*MedAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{125} }

func (m *MedAction) GetActionType() MedActionType {
	if m != nil {
		return m.ActionType
	}
	return MedActionType_MED_MOD
}

func (m *MedAction) GetValue() int64 {
	if m != nil {
		return m.Value
	}
	return 0
}

type AsPrependAction struct {
	Asn         uint32 `protobuf:"varint,1,opt,name=asn" json:"asn,omitempty"`
	Repeat      uint32 `protobuf:"varint,2,opt,name=repeat" json:"repeat,omitempty"`
	UseLeftMost bool   `protobuf:"varint,3,opt,name=use_left_most,json=useLeftMost" json:"use_left_most,omitempty"`
}

func (m *AsPrependAction) Reset()                    { *m = AsPrependAction{} }
func (m *AsPrependAction) String() string            { return proto.CompactTextString(m) }
func (*AsPrependAction) ProtoMessage()               {}
func (*AsPrependAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{126} }

func (m *AsPrependAction) GetAsn() uint32 {
	if m != nil {
		return m.Asn
	}
	return 0
}

func (m *AsPrependAction) GetRepeat() uint32 {
	if m != nil {
		return m.Repeat
	}
	return 0
}

func (m *AsPrependAction) GetUseLeftMost() bool {
	if m != nil {
		return m.UseLeftMost
	}
	return false
}

type NexthopAction struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Self    bool   `protobuf:"varint,2,opt,name=self" json:"self,omitempty"`
}

func (m *NexthopAction) Reset()                    { *m = NexthopAction{} }
func (m *NexthopAction) String() string            { return proto.CompactTextString(m) }
func (*NexthopAction) ProtoMessage()               {}
func (*NexthopAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{127} }

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

func (m *NexthopAction) GetSelf() bool {
	if m != nil {
		return m.Self
	}
	return false
}

type LocalPrefAction struct {
	Value uint32 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"`
}

func (m *LocalPrefAction) Reset()                    { *m = LocalPrefAction{} }
func (m *LocalPrefAction) String() string            { return proto.CompactTextString(m) }
func (*LocalPrefAction) ProtoMessage()               {}
func (*LocalPrefAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{128} }

func (m *LocalPrefAction) GetValue() uint32 {
	if m != nil {
		return m.Value
	}
	return 0
}

type Actions struct {
	RouteAction    RouteAction      `protobuf:"varint,1,opt,name=route_action,json=routeAction,enum=gobgpapi.RouteAction" json:"route_action,omitempty"`
	Community      *CommunityAction `protobuf:"bytes,2,opt,name=community" json:"community,omitempty"`
	Med            *MedAction       `protobuf:"bytes,3,opt,name=med" json:"med,omitempty"`
	AsPrepend      *AsPrependAction `protobuf:"bytes,4,opt,name=as_prepend,json=asPrepend" json:"as_prepend,omitempty"`
	ExtCommunity   *CommunityAction `protobuf:"bytes,5,opt,name=ext_community,json=extCommunity" json:"ext_community,omitempty"`
	Nexthop        *NexthopAction   `protobuf:"bytes,6,opt,name=nexthop" json:"nexthop,omitempty"`
	LocalPref      *LocalPrefAction `protobuf:"bytes,7,opt,name=local_pref,json=localPref" json:"local_pref,omitempty"`
	LargeCommunity *CommunityAction `protobuf:"bytes,8,opt,name=large_community,json=largeCommunity" json:"large_community,omitempty"`
}

func (m *Actions) Reset()                    { *m = Actions{} }
func (m *Actions) String() string            { return proto.CompactTextString(m) }
func (*Actions) ProtoMessage()               {}
func (*Actions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{129} }

func (m *Actions) GetRouteAction() RouteAction {
	if m != nil {
		return m.RouteAction
	}
	return RouteAction_NONE
}

func (m *Actions) GetCommunity() *CommunityAction {
	if m != nil {
		return m.Community
	}
	return nil
}

func (m *Actions) GetMed() *MedAction {
	if m != nil {
		return m.Med
	}
	return nil
}

func (m *Actions) GetAsPrepend() *AsPrependAction {
	if m != nil {
		return m.AsPrepend
	}
	return nil
}

func (m *Actions) GetExtCommunity() *CommunityAction {
	if m != nil {
		return m.ExtCommunity
	}
	return nil
}

func (m *Actions) GetNexthop() *NexthopAction {
	if m != nil {
		return m.Nexthop
	}
	return nil
}

func (m *Actions) GetLocalPref() *LocalPrefAction {
	if m != nil {
		return m.LocalPref
	}
	return nil
}

func (m *Actions) GetLargeCommunity() *CommunityAction {
	if m != nil {
		return m.LargeCommunity
	}
	return nil
}

type Statement struct {
	Name       string      `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Conditions *Conditions `protobuf:"bytes,2,opt,name=conditions" json:"conditions,omitempty"`
	Actions    *Actions    `protobuf:"bytes,3,opt,name=actions" json:"actions,omitempty"`
}

func (m *Statement) Reset()                    { *m = Statement{} }
func (m *Statement) String() string            { return proto.CompactTextString(m) }
func (*Statement) ProtoMessage()               {}
func (*Statement) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{130} }

func (m *Statement) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Statement) GetConditions() *Conditions {
	if m != nil {
		return m.Conditions
	}
	return nil
}

func (m *Statement) GetActions() *Actions {
	if m != nil {
		return m.Actions
	}
	return nil
}

type Policy struct {
	Name       string       `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Statements []*Statement `protobuf:"bytes,2,rep,name=statements" json:"statements,omitempty"`
}

func (m *Policy) Reset()                    { *m = Policy{} }
func (m *Policy) String() string            { return proto.CompactTextString(m) }
func (*Policy) ProtoMessage()               {}
func (*Policy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{131} }

func (m *Policy) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Policy) GetStatements() []*Statement {
	if m != nil {
		return m.Statements
	}
	return nil
}

type PolicyAssignment struct {
	Name          string          `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Direction     PolicyDirection `protobuf:"varint,2,opt,name=direction,enum=gobgpapi.PolicyDirection" json:"direction,omitempty"`
	Policies      []*Policy       `protobuf:"bytes,4,rep,name=policies" json:"policies,omitempty"`
	DefaultAction RouteAction     `protobuf:"varint,5,opt,name=default_action,json=defaultAction,enum=gobgpapi.RouteAction" json:"default_action,omitempty"`
}

func (m *PolicyAssignment) Reset()                    { *m = PolicyAssignment{} }
func (m *PolicyAssignment) String() string            { return proto.CompactTextString(m) }
func (*PolicyAssignment) ProtoMessage()               {}
func (*PolicyAssignment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{132} }

func (m *PolicyAssignment) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *PolicyAssignment) GetDirection() PolicyDirection {
	if m != nil {
		return m.Direction
	}
	return PolicyDirection_UNKNOWN
}

func (m *PolicyAssignment) GetPolicies() []*Policy {
	if m != nil {
		return m.Policies
	}
	return nil
}

func (m *PolicyAssignment) GetDefaultAction() RouteAction {
	if m != nil {
		return m.DefaultAction
	}
	return RouteAction_NONE
}

type RoutingPolicy struct {
	DefinedSets []*DefinedSet `protobuf:"bytes,1,rep,name=defined_sets,json=definedSets" json:"defined_sets,omitempty"`
	Policies    []*Policy     `protobuf:"bytes,2,rep,name=policies" json:"policies,omitempty"`
}

func (m *RoutingPolicy) Reset()                    { *m = RoutingPolicy{} }
func (m *RoutingPolicy) String() string            { return proto.CompactTextString(m) }
func (*RoutingPolicy) ProtoMessage()               {}
func (*RoutingPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{133} }

func (m *RoutingPolicy) GetDefinedSets() []*DefinedSet {
	if m != nil {
		return m.DefinedSets
	}
	return nil
}

func (m *RoutingPolicy) GetPolicies() []*Policy {
	if m != nil {
		return m.Policies
	}
	return nil
}

type Roa struct {
	As        uint32    `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
	Prefixlen uint32    `protobuf:"varint,2,opt,name=prefixlen" json:"prefixlen,omitempty"`
	Maxlen    uint32    `protobuf:"varint,3,opt,name=maxlen" json:"maxlen,omitempty"`
	Prefix    string    `protobuf:"bytes,4,opt,name=prefix" json:"prefix,omitempty"`
	Conf      *RPKIConf `protobuf:"bytes,5,opt,name=conf" json:"conf,omitempty"`
}

func (m *Roa) Reset()                    { *m = Roa{} }
func (m *Roa) String() string            { return proto.CompactTextString(m) }
func (*Roa) ProtoMessage()               {}
func (*Roa) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{134} }

func (m *Roa) GetAs() uint32 {
	if m != nil {
		return m.As
	}
	return 0
}

func (m *Roa) GetPrefixlen() uint32 {
	if m != nil {
		return m.Prefixlen
	}
	return 0
}

func (m *Roa) GetMaxlen() uint32 {
	if m != nil {
		return m.Maxlen
	}
	return 0
}

func (m *Roa) GetPrefix() string {
	if m != nil {
		return m.Prefix
	}
	return ""
}

func (m *Roa) GetConf() *RPKIConf {
	if m != nil {
		return m.Conf
	}
	return nil
}

type Vrf struct {
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// Route Distinguisher must be one of
	// RouteDistinguisherTwoOctetAS,
	// RouteDistinguisherIPAddressAS,
	// or RouteDistinguisherFourOctetAS.
	Rd *google_protobuf.Any `protobuf:"bytes,2,opt,name=rd" json:"rd,omitempty"`
	// List of the Import Route Targets. Each must be one of
	// TwoOctetAsSpecificExtended,
	// IPv4AddressSpecificExtended,
	// or FourOctetAsSpecificExtended.
	ImportRt []*google_protobuf.Any `protobuf:"bytes,3,rep,name=import_rt,json=importRt" json:"import_rt,omitempty"`
	// List of the Export Route Targets. Each must be one of
	// TwoOctetAsSpecificExtended,
	// IPv4AddressSpecificExtended,
	// or FourOctetAsSpecificExtended.
	ExportRt []*google_protobuf.Any `protobuf:"bytes,4,rep,name=export_rt,json=exportRt" json:"export_rt,omitempty"`
	Id       uint32                 `protobuf:"varint,5,opt,name=id" json:"id,omitempty"`
}

func (m *Vrf) Reset()                    { *m = Vrf{} }
func (m *Vrf) String() string            { return proto.CompactTextString(m) }
func (*Vrf) ProtoMessage()               {}
func (*Vrf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{135} }

func (m *Vrf) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Vrf) GetRd() *google_protobuf.Any {
	if m != nil {
		return m.Rd
	}
	return nil
}

func (m *Vrf) GetImportRt() []*google_protobuf.Any {
	if m != nil {
		return m.ImportRt
	}
	return nil
}

func (m *Vrf) GetExportRt() []*google_protobuf.Any {
	if m != nil {
		return m.ExportRt
	}
	return nil
}

func (m *Vrf) GetId() uint32 {
	if m != nil {
		return m.Id
	}
	return 0
}

type DefaultRouteDistance struct {
	ExternalRouteDistance uint32 `protobuf:"varint,1,opt,name=external_route_distance,json=externalRouteDistance" json:"external_route_distance,omitempty"`
	InternalRouteDistance uint32 `protobuf:"varint,2,opt,name=internal_route_distance,json=internalRouteDistance" json:"internal_route_distance,omitempty"`
}

func (m *DefaultRouteDistance) Reset()                    { *m = DefaultRouteDistance{} }
func (m *DefaultRouteDistance) String() string            { return proto.CompactTextString(m) }
func (*DefaultRouteDistance) ProtoMessage()               {}
func (*DefaultRouteDistance) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{136} }

func (m *DefaultRouteDistance) GetExternalRouteDistance() uint32 {
	if m != nil {
		return m.ExternalRouteDistance
	}
	return 0
}

func (m *DefaultRouteDistance) GetInternalRouteDistance() uint32 {
	if m != nil {
		return m.InternalRouteDistance
	}
	return 0
}

type Global struct {
	As                    uint32                       `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
	RouterId              string                       `protobuf:"bytes,2,opt,name=router_id,json=routerId" json:"router_id,omitempty"`
	ListenPort            int32                        `protobuf:"varint,3,opt,name=listen_port,json=listenPort" json:"listen_port,omitempty"`
	ListenAddresses       []string                     `protobuf:"bytes,4,rep,name=listen_addresses,json=listenAddresses" json:"listen_addresses,omitempty"`
	Families              []uint32                     `protobuf:"varint,5,rep,packed,name=families" json:"families,omitempty"`
	UseMultiplePaths      bool                         `protobuf:"varint,6,opt,name=use_multiple_paths,json=useMultiplePaths" json:"use_multiple_paths,omitempty"`
	RouteSelectionOptions *RouteSelectionOptionsConfig `protobuf:"bytes,7,opt,name=route_selection_options,json=routeSelectionOptions" json:"route_selection_options,omitempty"`
	DefaultRouteDistance  *DefaultRouteDistance        `protobuf:"bytes,8,opt,name=default_route_distance,json=defaultRouteDistance" json:"default_route_distance,omitempty"`
	Confederation         *Confederation               `protobuf:"bytes,9,opt,name=confederation" json:"confederation,omitempty"`
	GracefulRestart       *GracefulRestart             `protobuf:"bytes,10,opt,name=graceful_restart,json=gracefulRestart" json:"graceful_restart,omitempty"`
	ApplyPolicy           *ApplyPolicy                 `protobuf:"bytes,11,opt,name=apply_policy,json=applyPolicy" json:"apply_policy,omitempty"`
}

func (m *Global) Reset()                    { *m = Global{} }
func (m *Global) String() string            { return proto.CompactTextString(m) }
func (*Global) ProtoMessage()               {}
func (*Global) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{137} }

func (m *Global) GetAs() uint32 {
	if m != nil {
		return m.As
	}
	return 0
}

func (m *Global) GetRouterId() string {
	if m != nil {
		return m.RouterId
	}
	return ""
}

func (m *Global) GetListenPort() int32 {
	if m != nil {
		return m.ListenPort
	}
	return 0
}

func (m *Global) GetListenAddresses() []string {
	if m != nil {
		return m.ListenAddresses
	}
	return nil
}

func (m *Global) GetFamilies() []uint32 {
	if m != nil {
		return m.Families
	}
	return nil
}

func (m *Global) GetUseMultiplePaths() bool {
	if m != nil {
		return m.UseMultiplePaths
	}
	return false
}

func (m *Global) GetRouteSelectionOptions() *RouteSelectionOptionsConfig {
	if m != nil {
		return m.RouteSelectionOptions
	}
	return nil
}

func (m *Global) GetDefaultRouteDistance() *DefaultRouteDistance {
	if m != nil {
		return m.DefaultRouteDistance
	}
	return nil
}

func (m *Global) GetConfederation() *Confederation {
	if m != nil {
		return m.Confederation
	}
	return nil
}

func (m *Global) GetGracefulRestart() *GracefulRestart {
	if m != nil {
		return m.GracefulRestart
	}
	return nil
}

func (m *Global) GetApplyPolicy() *ApplyPolicy {
	if m != nil {
		return m.ApplyPolicy
	}
	return nil
}

type Confederation struct {
	Enabled      bool     `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
	Identifier   uint32   `protobuf:"varint,2,opt,name=identifier" json:"identifier,omitempty"`
	MemberAsList []uint32 `protobuf:"varint,3,rep,packed,name=member_as_list,json=memberAsList" json:"member_as_list,omitempty"`
}

func (m *Confederation) Reset()                    { *m = Confederation{} }
func (m *Confederation) String() string            { return proto.CompactTextString(m) }
func (*Confederation) ProtoMessage()               {}
func (*Confederation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{138} }

func (m *Confederation) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *Confederation) GetIdentifier() uint32 {
	if m != nil {
		return m.Identifier
	}
	return 0
}

func (m *Confederation) GetMemberAsList() []uint32 {
	if m != nil {
		return m.MemberAsList
	}
	return nil
}

type RPKIConf struct {
	Address    string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	RemotePort uint32 `protobuf:"varint,2,opt,name=remote_port,json=remotePort" json:"remote_port,omitempty"`
}

func (m *RPKIConf) Reset()                    { *m = RPKIConf{} }
func (m *RPKIConf) String() string            { return proto.CompactTextString(m) }
func (*RPKIConf) ProtoMessage()               {}
func (*RPKIConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{139} }

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

func (m *RPKIConf) GetRemotePort() uint32 {
	if m != nil {
		return m.RemotePort
	}
	return 0
}

type RPKIState struct {
	Uptime        *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=uptime" json:"uptime,omitempty"`
	Downtime      *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=downtime" json:"downtime,omitempty"`
	Up            bool                        `protobuf:"varint,3,opt,name=up" json:"up,omitempty"`
	RecordIpv4    uint32                      `protobuf:"varint,4,opt,name=record_ipv4,json=recordIpv4" json:"record_ipv4,omitempty"`
	RecordIpv6    uint32                      `protobuf:"varint,5,opt,name=record_ipv6,json=recordIpv6" json:"record_ipv6,omitempty"`
	PrefixIpv4    uint32                      `protobuf:"varint,6,opt,name=prefix_ipv4,json=prefixIpv4" json:"prefix_ipv4,omitempty"`
	PrefixIpv6    uint32                      `protobuf:"varint,7,opt,name=prefix_ipv6,json=prefixIpv6" json:"prefix_ipv6,omitempty"`
	Serial        uint32                      `protobuf:"varint,8,opt,name=serial" json:"serial,omitempty"`
	ReceivedIpv4  int64                       `protobuf:"varint,9,opt,name=received_ipv4,json=receivedIpv4" json:"received_ipv4,omitempty"`
	ReceivedIpv6  int64                       `protobuf:"varint,10,opt,name=received_ipv6,json=receivedIpv6" json:"received_ipv6,omitempty"`
	SerialNotify  int64                       `protobuf:"varint,11,opt,name=serial_notify,json=serialNotify" json:"serial_notify,omitempty"`
	CacheReset    int64                       `protobuf:"varint,12,opt,name=cache_reset,json=cacheReset" json:"cache_reset,omitempty"`
	CacheResponse int64                       `protobuf:"varint,13,opt,name=cache_response,json=cacheResponse" json:"cache_response,omitempty"`
	EndOfData     int64                       `protobuf:"varint,14,opt,name=end_of_data,json=endOfData" json:"end_of_data,omitempty"`
	Error         int64                       `protobuf:"varint,15,opt,name=error" json:"error,omitempty"`
	SerialQuery   int64                       `protobuf:"varint,16,opt,name=serial_query,json=serialQuery" json:"serial_query,omitempty"`
	ResetQuery    int64                       `protobuf:"varint,17,opt,name=reset_query,json=resetQuery" json:"reset_query,omitempty"`
}

func (m *RPKIState) Reset()                    { *m = RPKIState{} }
func (m *RPKIState) String() string            { return proto.CompactTextString(m) }
func (*RPKIState) ProtoMessage()               {}
func (*RPKIState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{140} }

func (m *RPKIState) GetUptime() *google_protobuf2.Timestamp {
	if m != nil {
		return m.Uptime
	}
	return nil
}

func (m *RPKIState) GetDowntime() *google_protobuf2.Timestamp {
	if m != nil {
		return m.Downtime
	}
	return nil
}

func (m *RPKIState) GetUp() bool {
	if m != nil {
		return m.Up
	}
	return false
}

func (m *RPKIState) GetRecordIpv4() uint32 {
	if m != nil {
		return m.RecordIpv4
	}
	return 0
}

func (m *RPKIState) GetRecordIpv6() uint32 {
	if m != nil {
		return m.RecordIpv6
	}
	return 0
}

func (m *RPKIState) GetPrefixIpv4() uint32 {
	if m != nil {
		return m.PrefixIpv4
	}
	return 0
}

func (m *RPKIState) GetPrefixIpv6() uint32 {
	if m != nil {
		return m.PrefixIpv6
	}
	return 0
}

func (m *RPKIState) GetSerial() uint32 {
	if m != nil {
		return m.Serial
	}
	return 0
}

func (m *RPKIState) GetReceivedIpv4() int64 {
	if m != nil {
		return m.ReceivedIpv4
	}
	return 0
}

func (m *RPKIState) GetReceivedIpv6() int64 {
	if m != nil {
		return m.ReceivedIpv6
	}
	return 0
}

func (m *RPKIState) GetSerialNotify() int64 {
	if m != nil {
		return m.SerialNotify
	}
	return 0
}

func (m *RPKIState) GetCacheReset() int64 {
	if m != nil {
		return m.CacheReset
	}
	return 0
}

func (m *RPKIState) GetCacheResponse() int64 {
	if m != nil {
		return m.CacheResponse
	}
	return 0
}

func (m *RPKIState) GetEndOfData() int64 {
	if m != nil {
		return m.EndOfData
	}
	return 0
}

func (m *RPKIState) GetError() int64 {
	if m != nil {
		return m.Error
	}
	return 0
}

func (m *RPKIState) GetSerialQuery() int64 {
	if m != nil {
		return m.SerialQuery
	}
	return 0
}

func (m *RPKIState) GetResetQuery() int64 {
	if m != nil {
		return m.ResetQuery
	}
	return 0
}

type Rpki struct {
	Conf  *RPKIConf  `protobuf:"bytes,1,opt,name=conf" json:"conf,omitempty"`
	State *RPKIState `protobuf:"bytes,2,opt,name=state" json:"state,omitempty"`
}

func (m *Rpki) Reset()                    { *m = Rpki{} }
func (m *Rpki) String() string            { return proto.CompactTextString(m) }
func (*Rpki) ProtoMessage()               {}
func (*Rpki) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{141} }

func (m *Rpki) GetConf() *RPKIConf {
	if m != nil {
		return m.Conf
	}
	return nil
}

func (m *Rpki) GetState() *RPKIState {
	if m != nil {
		return m.State
	}
	return nil
}

func init() {
	proto.RegisterType((*StartBgpRequest)(nil), "gobgpapi.StartBgpRequest")
	proto.RegisterType((*StopBgpRequest)(nil), "gobgpapi.StopBgpRequest")
	proto.RegisterType((*GetBgpRequest)(nil), "gobgpapi.GetBgpRequest")
	proto.RegisterType((*GetBgpResponse)(nil), "gobgpapi.GetBgpResponse")
	proto.RegisterType((*AddPeerRequest)(nil), "gobgpapi.AddPeerRequest")
	proto.RegisterType((*DeletePeerRequest)(nil), "gobgpapi.DeletePeerRequest")
	proto.RegisterType((*ListPeerRequest)(nil), "gobgpapi.ListPeerRequest")
	proto.RegisterType((*ListPeerResponse)(nil), "gobgpapi.ListPeerResponse")
	proto.RegisterType((*UpdatePeerRequest)(nil), "gobgpapi.UpdatePeerRequest")
	proto.RegisterType((*UpdatePeerResponse)(nil), "gobgpapi.UpdatePeerResponse")
	proto.RegisterType((*ResetPeerRequest)(nil), "gobgpapi.ResetPeerRequest")
	proto.RegisterType((*ShutdownPeerRequest)(nil), "gobgpapi.ShutdownPeerRequest")
	proto.RegisterType((*EnablePeerRequest)(nil), "gobgpapi.EnablePeerRequest")
	proto.RegisterType((*DisablePeerRequest)(nil), "gobgpapi.DisablePeerRequest")
	proto.RegisterType((*MonitorPeerRequest)(nil), "gobgpapi.MonitorPeerRequest")
	proto.RegisterType((*MonitorPeerResponse)(nil), "gobgpapi.MonitorPeerResponse")
	proto.RegisterType((*AddPeerGroupRequest)(nil), "gobgpapi.AddPeerGroupRequest")
	proto.RegisterType((*DeletePeerGroupRequest)(nil), "gobgpapi.DeletePeerGroupRequest")
	proto.RegisterType((*UpdatePeerGroupRequest)(nil), "gobgpapi.UpdatePeerGroupRequest")
	proto.RegisterType((*UpdatePeerGroupResponse)(nil), "gobgpapi.UpdatePeerGroupResponse")
	proto.RegisterType((*AddDynamicNeighborRequest)(nil), "gobgpapi.AddDynamicNeighborRequest")
	proto.RegisterType((*AddPathRequest)(nil), "gobgpapi.AddPathRequest")
	proto.RegisterType((*AddPathResponse)(nil), "gobgpapi.AddPathResponse")
	proto.RegisterType((*DeletePathRequest)(nil), "gobgpapi.DeletePathRequest")
	proto.RegisterType((*ListPathRequest)(nil), "gobgpapi.ListPathRequest")
	proto.RegisterType((*ListPathResponse)(nil), "gobgpapi.ListPathResponse")
	proto.RegisterType((*AddPathStreamRequest)(nil), "gobgpapi.AddPathStreamRequest")
	proto.RegisterType((*GetTableRequest)(nil), "gobgpapi.GetTableRequest")
	proto.RegisterType((*GetTableResponse)(nil), "gobgpapi.GetTableResponse")
	proto.RegisterType((*MonitorTableRequest)(nil), "gobgpapi.MonitorTableRequest")
	proto.RegisterType((*MonitorTableResponse)(nil), "gobgpapi.MonitorTableResponse")
	proto.RegisterType((*AddVrfRequest)(nil), "gobgpapi.AddVrfRequest")
	proto.RegisterType((*DeleteVrfRequest)(nil), "gobgpapi.DeleteVrfRequest")
	proto.RegisterType((*ListVrfRequest)(nil), "gobgpapi.ListVrfRequest")
	proto.RegisterType((*ListVrfResponse)(nil), "gobgpapi.ListVrfResponse")
	proto.RegisterType((*AddPolicyRequest)(nil), "gobgpapi.AddPolicyRequest")
	proto.RegisterType((*DeletePolicyRequest)(nil), "gobgpapi.DeletePolicyRequest")
	proto.RegisterType((*ListPolicyRequest)(nil), "gobgpapi.ListPolicyRequest")
	proto.RegisterType((*ListPolicyResponse)(nil), "gobgpapi.ListPolicyResponse")
	proto.RegisterType((*SetPoliciesRequest)(nil), "gobgpapi.SetPoliciesRequest")
	proto.RegisterType((*AddDefinedSetRequest)(nil), "gobgpapi.AddDefinedSetRequest")
	proto.RegisterType((*DeleteDefinedSetRequest)(nil), "gobgpapi.DeleteDefinedSetRequest")
	proto.RegisterType((*ListDefinedSetRequest)(nil), "gobgpapi.ListDefinedSetRequest")
	proto.RegisterType((*ListDefinedSetResponse)(nil), "gobgpapi.ListDefinedSetResponse")
	proto.RegisterType((*AddStatementRequest)(nil), "gobgpapi.AddStatementRequest")
	proto.RegisterType((*DeleteStatementRequest)(nil), "gobgpapi.DeleteStatementRequest")
	proto.RegisterType((*ListStatementRequest)(nil), "gobgpapi.ListStatementRequest")
	proto.RegisterType((*ListStatementResponse)(nil), "gobgpapi.ListStatementResponse")
	proto.RegisterType((*AddPolicyAssignmentRequest)(nil), "gobgpapi.AddPolicyAssignmentRequest")
	proto.RegisterType((*DeletePolicyAssignmentRequest)(nil), "gobgpapi.DeletePolicyAssignmentRequest")
	proto.RegisterType((*ListPolicyAssignmentRequest)(nil), "gobgpapi.ListPolicyAssignmentRequest")
	proto.RegisterType((*ListPolicyAssignmentResponse)(nil), "gobgpapi.ListPolicyAssignmentResponse")
	proto.RegisterType((*SetPolicyAssignmentRequest)(nil), "gobgpapi.SetPolicyAssignmentRequest")
	proto.RegisterType((*AddRpkiRequest)(nil), "gobgpapi.AddRpkiRequest")
	proto.RegisterType((*DeleteRpkiRequest)(nil), "gobgpapi.DeleteRpkiRequest")
	proto.RegisterType((*ListRpkiRequest)(nil), "gobgpapi.ListRpkiRequest")
	proto.RegisterType((*ListRpkiResponse)(nil), "gobgpapi.ListRpkiResponse")
	proto.RegisterType((*EnableRpkiRequest)(nil), "gobgpapi.EnableRpkiRequest")
	proto.RegisterType((*DisableRpkiRequest)(nil), "gobgpapi.DisableRpkiRequest")
	proto.RegisterType((*ResetRpkiRequest)(nil), "gobgpapi.ResetRpkiRequest")
	proto.RegisterType((*ListRpkiTableRequest)(nil), "gobgpapi.ListRpkiTableRequest")
	proto.RegisterType((*ListRpkiTableResponse)(nil), "gobgpapi.ListRpkiTableResponse")
	proto.RegisterType((*EnableZebraRequest)(nil), "gobgpapi.EnableZebraRequest")
	proto.RegisterType((*EnableMrtRequest)(nil), "gobgpapi.EnableMrtRequest")
	proto.RegisterType((*DisableMrtRequest)(nil), "gobgpapi.DisableMrtRequest")
	proto.RegisterType((*AddBmpRequest)(nil), "gobgpapi.AddBmpRequest")
	proto.RegisterType((*DeleteBmpRequest)(nil), "gobgpapi.DeleteBmpRequest")
	proto.RegisterType((*Family)(nil), "gobgpapi.Family")
	proto.RegisterType((*Validation)(nil), "gobgpapi.Validation")
	proto.RegisterType((*Path)(nil), "gobgpapi.Path")
	proto.RegisterType((*Destination)(nil), "gobgpapi.Destination")
	proto.RegisterType((*TableLookupPrefix)(nil), "gobgpapi.TableLookupPrefix")
	proto.RegisterType((*Peer)(nil), "gobgpapi.Peer")
	proto.RegisterType((*PeerGroup)(nil), "gobgpapi.PeerGroup")
	proto.RegisterType((*DynamicNeighbor)(nil), "gobgpapi.DynamicNeighbor")
	proto.RegisterType((*ApplyPolicy)(nil), "gobgpapi.ApplyPolicy")
	proto.RegisterType((*PrefixLimit)(nil), "gobgpapi.PrefixLimit")
	proto.RegisterType((*PeerConf)(nil), "gobgpapi.PeerConf")
	proto.RegisterType((*PeerGroupConf)(nil), "gobgpapi.PeerGroupConf")
	proto.RegisterType((*PeerGroupState)(nil), "gobgpapi.PeerGroupState")
	proto.RegisterType((*EbgpMultihop)(nil), "gobgpapi.EbgpMultihop")
	proto.RegisterType((*RouteReflector)(nil), "gobgpapi.RouteReflector")
	proto.RegisterType((*PeerState)(nil), "gobgpapi.PeerState")
	proto.RegisterType((*Messages)(nil), "gobgpapi.Messages")
	proto.RegisterType((*Message)(nil), "gobgpapi.Message")
	proto.RegisterType((*Queues)(nil), "gobgpapi.Queues")
	proto.RegisterType((*Timers)(nil), "gobgpapi.Timers")
	proto.RegisterType((*TimersConfig)(nil), "gobgpapi.TimersConfig")
	proto.RegisterType((*TimersState)(nil), "gobgpapi.TimersState")
	proto.RegisterType((*Transport)(nil), "gobgpapi.Transport")
	proto.RegisterType((*RouteServer)(nil), "gobgpapi.RouteServer")
	proto.RegisterType((*GracefulRestart)(nil), "gobgpapi.GracefulRestart")
	proto.RegisterType((*MpGracefulRestartConfig)(nil), "gobgpapi.MpGracefulRestartConfig")
	proto.RegisterType((*MpGracefulRestartState)(nil), "gobgpapi.MpGracefulRestartState")
	proto.RegisterType((*MpGracefulRestart)(nil), "gobgpapi.MpGracefulRestart")
	proto.RegisterType((*AfiSafiConfig)(nil), "gobgpapi.AfiSafiConfig")
	proto.RegisterType((*AfiSafiState)(nil), "gobgpapi.AfiSafiState")
	proto.RegisterType((*RouteSelectionOptionsConfig)(nil), "gobgpapi.RouteSelectionOptionsConfig")
	proto.RegisterType((*RouteSelectionOptionsState)(nil), "gobgpapi.RouteSelectionOptionsState")
	proto.RegisterType((*RouteSelectionOptions)(nil), "gobgpapi.RouteSelectionOptions")
	proto.RegisterType((*UseMultiplePathsConfig)(nil), "gobgpapi.UseMultiplePathsConfig")
	proto.RegisterType((*UseMultiplePathsState)(nil), "gobgpapi.UseMultiplePathsState")
	proto.RegisterType((*EbgpConfig)(nil), "gobgpapi.EbgpConfig")
	proto.RegisterType((*EbgpState)(nil), "gobgpapi.EbgpState")
	proto.RegisterType((*Ebgp)(nil), "gobgpapi.Ebgp")
	proto.RegisterType((*IbgpConfig)(nil), "gobgpapi.IbgpConfig")
	proto.RegisterType((*IbgpState)(nil), "gobgpapi.IbgpState")
	proto.RegisterType((*Ibgp)(nil), "gobgpapi.Ibgp")
	proto.RegisterType((*UseMultiplePaths)(nil), "gobgpapi.UseMultiplePaths")
	proto.RegisterType((*RouteTargetMembershipConfig)(nil), "gobgpapi.RouteTargetMembershipConfig")
	proto.RegisterType((*RouteTargetMembershipState)(nil), "gobgpapi.RouteTargetMembershipState")
	proto.RegisterType((*RouteTargetMembership)(nil), "gobgpapi.RouteTargetMembership")
	proto.RegisterType((*LongLivedGracefulRestartConfig)(nil), "gobgpapi.LongLivedGracefulRestartConfig")
	proto.RegisterType((*LongLivedGracefulRestartState)(nil), "gobgpapi.LongLivedGracefulRestartState")
	proto.RegisterType((*LongLivedGracefulRestart)(nil), "gobgpapi.LongLivedGracefulRestart")
	proto.RegisterType((*AfiSafi)(nil), "gobgpapi.AfiSafi")
	proto.RegisterType((*AddPathsConfig)(nil), "gobgpapi.AddPathsConfig")
	proto.RegisterType((*AddPathsState)(nil), "gobgpapi.AddPathsState")
	proto.RegisterType((*AddPaths)(nil), "gobgpapi.AddPaths")
	proto.RegisterType((*Prefix)(nil), "gobgpapi.Prefix")
	proto.RegisterType((*DefinedSet)(nil), "gobgpapi.DefinedSet")
	proto.RegisterType((*MatchSet)(nil), "gobgpapi.MatchSet")
	proto.RegisterType((*AsPathLength)(nil), "gobgpapi.AsPathLength")
	proto.RegisterType((*Conditions)(nil), "gobgpapi.Conditions")
	proto.RegisterType((*CommunityAction)(nil), "gobgpapi.CommunityAction")
	proto.RegisterType((*MedAction)(nil), "gobgpapi.MedAction")
	proto.RegisterType((*AsPrependAction)(nil), "gobgpapi.AsPrependAction")
	proto.RegisterType((*NexthopAction)(nil), "gobgpapi.NexthopAction")
	proto.RegisterType((*LocalPrefAction)(nil), "gobgpapi.LocalPrefAction")
	proto.RegisterType((*Actions)(nil), "gobgpapi.Actions")
	proto.RegisterType((*Statement)(nil), "gobgpapi.Statement")
	proto.RegisterType((*Policy)(nil), "gobgpapi.Policy")
	proto.RegisterType((*PolicyAssignment)(nil), "gobgpapi.PolicyAssignment")
	proto.RegisterType((*RoutingPolicy)(nil), "gobgpapi.RoutingPolicy")
	proto.RegisterType((*Roa)(nil), "gobgpapi.Roa")
	proto.RegisterType((*Vrf)(nil), "gobgpapi.Vrf")
	proto.RegisterType((*DefaultRouteDistance)(nil), "gobgpapi.DefaultRouteDistance")
	proto.RegisterType((*Global)(nil), "gobgpapi.Global")
	proto.RegisterType((*Confederation)(nil), "gobgpapi.Confederation")
	proto.RegisterType((*RPKIConf)(nil), "gobgpapi.RPKIConf")
	proto.RegisterType((*RPKIState)(nil), "gobgpapi.RPKIState")
	proto.RegisterType((*Rpki)(nil), "gobgpapi.Rpki")
	proto.RegisterEnum("gobgpapi.TableType", TableType_name, TableType_value)
	proto.RegisterEnum("gobgpapi.TableLookupOption", TableLookupOption_name, TableLookupOption_value)
	proto.RegisterEnum("gobgpapi.DefinedType", DefinedType_name, DefinedType_value)
	proto.RegisterEnum("gobgpapi.MatchType", MatchType_name, MatchType_value)
	proto.RegisterEnum("gobgpapi.AsPathLengthType", AsPathLengthType_name, AsPathLengthType_value)
	proto.RegisterEnum("gobgpapi.RouteAction", RouteAction_name, RouteAction_value)
	proto.RegisterEnum("gobgpapi.CommunityActionType", CommunityActionType_name, CommunityActionType_value)
	proto.RegisterEnum("gobgpapi.MedActionType", MedActionType_name, MedActionType_value)
	proto.RegisterEnum("gobgpapi.PolicyDirection", PolicyDirection_name, PolicyDirection_value)
	proto.RegisterEnum("gobgpapi.ResetPeerRequest_SoftResetDirection", ResetPeerRequest_SoftResetDirection_name, ResetPeerRequest_SoftResetDirection_value)
	proto.RegisterEnum("gobgpapi.ListPathRequest_SortType", ListPathRequest_SortType_name, ListPathRequest_SortType_value)
	proto.RegisterEnum("gobgpapi.AddBmpRequest_MonitoringPolicy", AddBmpRequest_MonitoringPolicy_name, AddBmpRequest_MonitoringPolicy_value)
	proto.RegisterEnum("gobgpapi.Family_Afi", Family_Afi_name, Family_Afi_value)
	proto.RegisterEnum("gobgpapi.Family_Safi", Family_Safi_name, Family_Safi_value)
	proto.RegisterEnum("gobgpapi.Validation_State", Validation_State_name, Validation_State_value)
	proto.RegisterEnum("gobgpapi.Validation_Reason", Validation_Reason_name, Validation_Reason_value)
	proto.RegisterEnum("gobgpapi.PeerConf_RemovePrivateAs", PeerConf_RemovePrivateAs_name, PeerConf_RemovePrivateAs_value)
	proto.RegisterEnum("gobgpapi.PeerGroupConf_RemovePrivateAs", PeerGroupConf_RemovePrivateAs_name, PeerGroupConf_RemovePrivateAs_value)
	proto.RegisterEnum("gobgpapi.PeerGroupState_RemovePrivateAs", PeerGroupState_RemovePrivateAs_name, PeerGroupState_RemovePrivateAs_value)
	proto.RegisterEnum("gobgpapi.PeerState_SessionState", PeerState_SessionState_name, PeerState_SessionState_value)
	proto.RegisterEnum("gobgpapi.PeerState_AdminState", PeerState_AdminState_name, PeerState_AdminState_value)
	proto.RegisterEnum("gobgpapi.Conditions_RouteType", Conditions_RouteType_name, Conditions_RouteType_value)
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// Client API for GobgpApi service

type GobgpApiClient interface {
	StartBgp(ctx context.Context, in *StartBgpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	StopBgp(ctx context.Context, in *StopBgpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	GetBgp(ctx context.Context, in *GetBgpRequest, opts ...grpc.CallOption) (*GetBgpResponse, error)
	AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DeletePeer(ctx context.Context, in *DeletePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ListPeer(ctx context.Context, in *ListPeerRequest, opts ...grpc.CallOption) (GobgpApi_ListPeerClient, error)
	UpdatePeer(ctx context.Context, in *UpdatePeerRequest, opts ...grpc.CallOption) (*UpdatePeerResponse, error)
	ResetPeer(ctx context.Context, in *ResetPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ShutdownPeer(ctx context.Context, in *ShutdownPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	EnablePeer(ctx context.Context, in *EnablePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DisablePeer(ctx context.Context, in *DisablePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	MonitorPeer(ctx context.Context, in *MonitorPeerRequest, opts ...grpc.CallOption) (GobgpApi_MonitorPeerClient, error)
	AddPeerGroup(ctx context.Context, in *AddPeerGroupRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DeletePeerGroup(ctx context.Context, in *DeletePeerGroupRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	UpdatePeerGroup(ctx context.Context, in *UpdatePeerGroupRequest, opts ...grpc.CallOption) (*UpdatePeerGroupResponse, error)
	AddDynamicNeighbor(ctx context.Context, in *AddDynamicNeighborRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	AddPath(ctx context.Context, in *AddPathRequest, opts ...grpc.CallOption) (*AddPathResponse, error)
	DeletePath(ctx context.Context, in *DeletePathRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ListPath(ctx context.Context, in *ListPathRequest, opts ...grpc.CallOption) (GobgpApi_ListPathClient, error)
	AddPathStream(ctx context.Context, opts ...grpc.CallOption) (GobgpApi_AddPathStreamClient, error)
	GetTable(ctx context.Context, in *GetTableRequest, opts ...grpc.CallOption) (*GetTableResponse, error)
	MonitorTable(ctx context.Context, in *MonitorTableRequest, opts ...grpc.CallOption) (GobgpApi_MonitorTableClient, error)
	AddVrf(ctx context.Context, in *AddVrfRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DeleteVrf(ctx context.Context, in *DeleteVrfRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ListVrf(ctx context.Context, in *ListVrfRequest, opts ...grpc.CallOption) (GobgpApi_ListVrfClient, error)
	AddPolicy(ctx context.Context, in *AddPolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DeletePolicy(ctx context.Context, in *DeletePolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ListPolicy(ctx context.Context, in *ListPolicyRequest, opts ...grpc.CallOption) (GobgpApi_ListPolicyClient, error)
	SetPolicies(ctx context.Context, in *SetPoliciesRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	AddDefinedSet(ctx context.Context, in *AddDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DeleteDefinedSet(ctx context.Context, in *DeleteDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ListDefinedSet(ctx context.Context, in *ListDefinedSetRequest, opts ...grpc.CallOption) (GobgpApi_ListDefinedSetClient, error)
	AddStatement(ctx context.Context, in *AddStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DeleteStatement(ctx context.Context, in *DeleteStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ListStatement(ctx context.Context, in *ListStatementRequest, opts ...grpc.CallOption) (GobgpApi_ListStatementClient, error)
	AddPolicyAssignment(ctx context.Context, in *AddPolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DeletePolicyAssignment(ctx context.Context, in *DeletePolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ListPolicyAssignment(ctx context.Context, in *ListPolicyAssignmentRequest, opts ...grpc.CallOption) (GobgpApi_ListPolicyAssignmentClient, error)
	SetPolicyAssignment(ctx context.Context, in *SetPolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	AddRpki(ctx context.Context, in *AddRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DeleteRpki(ctx context.Context, in *DeleteRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ListRpki(ctx context.Context, in *ListRpkiRequest, opts ...grpc.CallOption) (GobgpApi_ListRpkiClient, error)
	EnableRpki(ctx context.Context, in *EnableRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DisableRpki(ctx context.Context, in *DisableRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ResetRpki(ctx context.Context, in *ResetRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	ListRpkiTable(ctx context.Context, in *ListRpkiTableRequest, opts ...grpc.CallOption) (GobgpApi_ListRpkiTableClient, error)
	EnableZebra(ctx context.Context, in *EnableZebraRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	EnableMrt(ctx context.Context, in *EnableMrtRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DisableMrt(ctx context.Context, in *DisableMrtRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	AddBmp(ctx context.Context, in *AddBmpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
	DeleteBmp(ctx context.Context, in *DeleteBmpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
}

type gobgpApiClient struct {
	cc *grpc.ClientConn
}

func NewGobgpApiClient(cc *grpc.ClientConn) GobgpApiClient {
	return &gobgpApiClient{cc}
}

func (c *gobgpApiClient) StartBgp(ctx context.Context, in *StartBgpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/StartBgp", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) StopBgp(ctx context.Context, in *StopBgpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/StopBgp", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) GetBgp(ctx context.Context, in *GetBgpRequest, opts ...grpc.CallOption) (*GetBgpResponse, error) {
	out := new(GetBgpResponse)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetBgp", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPeer", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeletePeer(ctx context.Context, in *DeletePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePeer", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ListPeer(ctx context.Context, in *ListPeerRequest, opts ...grpc.CallOption) (GobgpApi_ListPeerClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[0], c.cc, "/gobgpapi.GobgpApi/ListPeer", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiListPeerClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_ListPeerClient interface {
	Recv() (*ListPeerResponse, error)
	grpc.ClientStream
}

type gobgpApiListPeerClient struct {
	grpc.ClientStream
}

func (x *gobgpApiListPeerClient) Recv() (*ListPeerResponse, error) {
	m := new(ListPeerResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) UpdatePeer(ctx context.Context, in *UpdatePeerRequest, opts ...grpc.CallOption) (*UpdatePeerResponse, error) {
	out := new(UpdatePeerResponse)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/UpdatePeer", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ResetPeer(ctx context.Context, in *ResetPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ResetPeer", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ShutdownPeer(ctx context.Context, in *ShutdownPeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ShutdownPeer", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) EnablePeer(ctx context.Context, in *EnablePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnablePeer", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DisablePeer(ctx context.Context, in *DisablePeerRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DisablePeer", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) MonitorPeer(ctx context.Context, in *MonitorPeerRequest, opts ...grpc.CallOption) (GobgpApi_MonitorPeerClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[1], c.cc, "/gobgpapi.GobgpApi/MonitorPeer", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiMonitorPeerClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_MonitorPeerClient interface {
	Recv() (*MonitorPeerResponse, error)
	grpc.ClientStream
}

type gobgpApiMonitorPeerClient struct {
	grpc.ClientStream
}

func (x *gobgpApiMonitorPeerClient) Recv() (*MonitorPeerResponse, error) {
	m := new(MonitorPeerResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) AddPeerGroup(ctx context.Context, in *AddPeerGroupRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPeerGroup", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeletePeerGroup(ctx context.Context, in *DeletePeerGroupRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePeerGroup", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) UpdatePeerGroup(ctx context.Context, in *UpdatePeerGroupRequest, opts ...grpc.CallOption) (*UpdatePeerGroupResponse, error) {
	out := new(UpdatePeerGroupResponse)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/UpdatePeerGroup", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) AddDynamicNeighbor(ctx context.Context, in *AddDynamicNeighborRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddDynamicNeighbor", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) AddPath(ctx context.Context, in *AddPathRequest, opts ...grpc.CallOption) (*AddPathResponse, error) {
	out := new(AddPathResponse)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPath", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeletePath(ctx context.Context, in *DeletePathRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePath", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ListPath(ctx context.Context, in *ListPathRequest, opts ...grpc.CallOption) (GobgpApi_ListPathClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[2], c.cc, "/gobgpapi.GobgpApi/ListPath", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiListPathClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_ListPathClient interface {
	Recv() (*ListPathResponse, error)
	grpc.ClientStream
}

type gobgpApiListPathClient struct {
	grpc.ClientStream
}

func (x *gobgpApiListPathClient) Recv() (*ListPathResponse, error) {
	m := new(ListPathResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) AddPathStream(ctx context.Context, opts ...grpc.CallOption) (GobgpApi_AddPathStreamClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[3], c.cc, "/gobgpapi.GobgpApi/AddPathStream", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiAddPathStreamClient{stream}
	return x, nil
}

type GobgpApi_AddPathStreamClient interface {
	Send(*AddPathStreamRequest) error
	CloseAndRecv() (*google_protobuf1.Empty, error)
	grpc.ClientStream
}

type gobgpApiAddPathStreamClient struct {
	grpc.ClientStream
}

func (x *gobgpApiAddPathStreamClient) Send(m *AddPathStreamRequest) error {
	return x.ClientStream.SendMsg(m)
}

func (x *gobgpApiAddPathStreamClient) CloseAndRecv() (*google_protobuf1.Empty, error) {
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	m := new(google_protobuf1.Empty)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) GetTable(ctx context.Context, in *GetTableRequest, opts ...grpc.CallOption) (*GetTableResponse, error) {
	out := new(GetTableResponse)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetTable", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) MonitorTable(ctx context.Context, in *MonitorTableRequest, opts ...grpc.CallOption) (GobgpApi_MonitorTableClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[4], c.cc, "/gobgpapi.GobgpApi/MonitorTable", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiMonitorTableClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_MonitorTableClient interface {
	Recv() (*MonitorTableResponse, error)
	grpc.ClientStream
}

type gobgpApiMonitorTableClient struct {
	grpc.ClientStream
}

func (x *gobgpApiMonitorTableClient) Recv() (*MonitorTableResponse, error) {
	m := new(MonitorTableResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) AddVrf(ctx context.Context, in *AddVrfRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddVrf", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeleteVrf(ctx context.Context, in *DeleteVrfRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteVrf", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ListVrf(ctx context.Context, in *ListVrfRequest, opts ...grpc.CallOption) (GobgpApi_ListVrfClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[5], c.cc, "/gobgpapi.GobgpApi/ListVrf", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiListVrfClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_ListVrfClient interface {
	Recv() (*ListVrfResponse, error)
	grpc.ClientStream
}

type gobgpApiListVrfClient struct {
	grpc.ClientStream
}

func (x *gobgpApiListVrfClient) Recv() (*ListVrfResponse, error) {
	m := new(ListVrfResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) AddPolicy(ctx context.Context, in *AddPolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPolicy", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeletePolicy(ctx context.Context, in *DeletePolicyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePolicy", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ListPolicy(ctx context.Context, in *ListPolicyRequest, opts ...grpc.CallOption) (GobgpApi_ListPolicyClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[6], c.cc, "/gobgpapi.GobgpApi/ListPolicy", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiListPolicyClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_ListPolicyClient interface {
	Recv() (*ListPolicyResponse, error)
	grpc.ClientStream
}

type gobgpApiListPolicyClient struct {
	grpc.ClientStream
}

func (x *gobgpApiListPolicyClient) Recv() (*ListPolicyResponse, error) {
	m := new(ListPolicyResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) SetPolicies(ctx context.Context, in *SetPoliciesRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/SetPolicies", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) AddDefinedSet(ctx context.Context, in *AddDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddDefinedSet", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeleteDefinedSet(ctx context.Context, in *DeleteDefinedSetRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteDefinedSet", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ListDefinedSet(ctx context.Context, in *ListDefinedSetRequest, opts ...grpc.CallOption) (GobgpApi_ListDefinedSetClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[7], c.cc, "/gobgpapi.GobgpApi/ListDefinedSet", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiListDefinedSetClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_ListDefinedSetClient interface {
	Recv() (*ListDefinedSetResponse, error)
	grpc.ClientStream
}

type gobgpApiListDefinedSetClient struct {
	grpc.ClientStream
}

func (x *gobgpApiListDefinedSetClient) Recv() (*ListDefinedSetResponse, error) {
	m := new(ListDefinedSetResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) AddStatement(ctx context.Context, in *AddStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddStatement", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeleteStatement(ctx context.Context, in *DeleteStatementRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteStatement", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ListStatement(ctx context.Context, in *ListStatementRequest, opts ...grpc.CallOption) (GobgpApi_ListStatementClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[8], c.cc, "/gobgpapi.GobgpApi/ListStatement", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiListStatementClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_ListStatementClient interface {
	Recv() (*ListStatementResponse, error)
	grpc.ClientStream
}

type gobgpApiListStatementClient struct {
	grpc.ClientStream
}

func (x *gobgpApiListStatementClient) Recv() (*ListStatementResponse, error) {
	m := new(ListStatementResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) AddPolicyAssignment(ctx context.Context, in *AddPolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddPolicyAssignment", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeletePolicyAssignment(ctx context.Context, in *DeletePolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeletePolicyAssignment", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ListPolicyAssignment(ctx context.Context, in *ListPolicyAssignmentRequest, opts ...grpc.CallOption) (GobgpApi_ListPolicyAssignmentClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[9], c.cc, "/gobgpapi.GobgpApi/ListPolicyAssignment", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiListPolicyAssignmentClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_ListPolicyAssignmentClient interface {
	Recv() (*ListPolicyAssignmentResponse, error)
	grpc.ClientStream
}

type gobgpApiListPolicyAssignmentClient struct {
	grpc.ClientStream
}

func (x *gobgpApiListPolicyAssignmentClient) Recv() (*ListPolicyAssignmentResponse, error) {
	m := new(ListPolicyAssignmentResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) SetPolicyAssignment(ctx context.Context, in *SetPolicyAssignmentRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/SetPolicyAssignment", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) AddRpki(ctx context.Context, in *AddRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddRpki", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeleteRpki(ctx context.Context, in *DeleteRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteRpki", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ListRpki(ctx context.Context, in *ListRpkiRequest, opts ...grpc.CallOption) (GobgpApi_ListRpkiClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[10], c.cc, "/gobgpapi.GobgpApi/ListRpki", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiListRpkiClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_ListRpkiClient interface {
	Recv() (*ListRpkiResponse, error)
	grpc.ClientStream
}

type gobgpApiListRpkiClient struct {
	grpc.ClientStream
}

func (x *gobgpApiListRpkiClient) Recv() (*ListRpkiResponse, error) {
	m := new(ListRpkiResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) EnableRpki(ctx context.Context, in *EnableRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableRpki", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DisableRpki(ctx context.Context, in *DisableRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DisableRpki", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ResetRpki(ctx context.Context, in *ResetRpkiRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ResetRpki", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) ListRpkiTable(ctx context.Context, in *ListRpkiTableRequest, opts ...grpc.CallOption) (GobgpApi_ListRpkiTableClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[11], c.cc, "/gobgpapi.GobgpApi/ListRpkiTable", opts...)
	if err != nil {
		return nil, err
	}
	x := &gobgpApiListRpkiTableClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GobgpApi_ListRpkiTableClient interface {
	Recv() (*ListRpkiTableResponse, error)
	grpc.ClientStream
}

type gobgpApiListRpkiTableClient struct {
	grpc.ClientStream
}

func (x *gobgpApiListRpkiTableClient) Recv() (*ListRpkiTableResponse, error) {
	m := new(ListRpkiTableResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *gobgpApiClient) EnableZebra(ctx context.Context, in *EnableZebraRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableZebra", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) EnableMrt(ctx context.Context, in *EnableMrtRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/EnableMrt", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DisableMrt(ctx context.Context, in *DisableMrtRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DisableMrt", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) AddBmp(ctx context.Context, in *AddBmpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/AddBmp", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *gobgpApiClient) DeleteBmp(ctx context.Context, in *DeleteBmpRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
	out := new(google_protobuf1.Empty)
	err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/DeleteBmp", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for GobgpApi service

type GobgpApiServer interface {
	StartBgp(context.Context, *StartBgpRequest) (*google_protobuf1.Empty, error)
	StopBgp(context.Context, *StopBgpRequest) (*google_protobuf1.Empty, error)
	GetBgp(context.Context, *GetBgpRequest) (*GetBgpResponse, error)
	AddPeer(context.Context, *AddPeerRequest) (*google_protobuf1.Empty, error)
	DeletePeer(context.Context, *DeletePeerRequest) (*google_protobuf1.Empty, error)
	ListPeer(*ListPeerRequest, GobgpApi_ListPeerServer) error
	UpdatePeer(context.Context, *UpdatePeerRequest) (*UpdatePeerResponse, error)
	ResetPeer(context.Context, *ResetPeerRequest) (*google_protobuf1.Empty, error)
	ShutdownPeer(context.Context, *ShutdownPeerRequest) (*google_protobuf1.Empty, error)
	EnablePeer(context.Context, *EnablePeerRequest) (*google_protobuf1.Empty, error)
	DisablePeer(context.Context, *DisablePeerRequest) (*google_protobuf1.Empty, error)
	MonitorPeer(*MonitorPeerRequest, GobgpApi_MonitorPeerServer) error
	AddPeerGroup(context.Context, *AddPeerGroupRequest) (*google_protobuf1.Empty, error)
	DeletePeerGroup(context.Context, *DeletePeerGroupRequest) (*google_protobuf1.Empty, error)
	UpdatePeerGroup(context.Context, *UpdatePeerGroupRequest) (*UpdatePeerGroupResponse, error)
	AddDynamicNeighbor(context.Context, *AddDynamicNeighborRequest) (*google_protobuf1.Empty, error)
	AddPath(context.Context, *AddPathRequest) (*AddPathResponse, error)
	DeletePath(context.Context, *DeletePathRequest) (*google_protobuf1.Empty, error)
	ListPath(*ListPathRequest, GobgpApi_ListPathServer) error
	AddPathStream(GobgpApi_AddPathStreamServer) error
	GetTable(context.Context, *GetTableRequest) (*GetTableResponse, error)
	MonitorTable(*MonitorTableRequest, GobgpApi_MonitorTableServer) error
	AddVrf(context.Context, *AddVrfRequest) (*google_protobuf1.Empty, error)
	DeleteVrf(context.Context, *DeleteVrfRequest) (*google_protobuf1.Empty, error)
	ListVrf(*ListVrfRequest, GobgpApi_ListVrfServer) error
	AddPolicy(context.Context, *AddPolicyRequest) (*google_protobuf1.Empty, error)
	DeletePolicy(context.Context, *DeletePolicyRequest) (*google_protobuf1.Empty, error)
	ListPolicy(*ListPolicyRequest, GobgpApi_ListPolicyServer) error
	SetPolicies(context.Context, *SetPoliciesRequest) (*google_protobuf1.Empty, error)
	AddDefinedSet(context.Context, *AddDefinedSetRequest) (*google_protobuf1.Empty, error)
	DeleteDefinedSet(context.Context, *DeleteDefinedSetRequest) (*google_protobuf1.Empty, error)
	ListDefinedSet(*ListDefinedSetRequest, GobgpApi_ListDefinedSetServer) error
	AddStatement(context.Context, *AddStatementRequest) (*google_protobuf1.Empty, error)
	DeleteStatement(context.Context, *DeleteStatementRequest) (*google_protobuf1.Empty, error)
	ListStatement(*ListStatementRequest, GobgpApi_ListStatementServer) error
	AddPolicyAssignment(context.Context, *AddPolicyAssignmentRequest) (*google_protobuf1.Empty, error)
	DeletePolicyAssignment(context.Context, *DeletePolicyAssignmentRequest) (*google_protobuf1.Empty, error)
	ListPolicyAssignment(*ListPolicyAssignmentRequest, GobgpApi_ListPolicyAssignmentServer) error
	SetPolicyAssignment(context.Context, *SetPolicyAssignmentRequest) (*google_protobuf1.Empty, error)
	AddRpki(context.Context, *AddRpkiRequest) (*google_protobuf1.Empty, error)
	DeleteRpki(context.Context, *DeleteRpkiRequest) (*google_protobuf1.Empty, error)
	ListRpki(*ListRpkiRequest, GobgpApi_ListRpkiServer) error
	EnableRpki(context.Context, *EnableRpkiRequest) (*google_protobuf1.Empty, error)
	DisableRpki(context.Context, *DisableRpkiRequest) (*google_protobuf1.Empty, error)
	ResetRpki(context.Context, *ResetRpkiRequest) (*google_protobuf1.Empty, error)
	ListRpkiTable(*ListRpkiTableRequest, GobgpApi_ListRpkiTableServer) error
	EnableZebra(context.Context, *EnableZebraRequest) (*google_protobuf1.Empty, error)
	EnableMrt(context.Context, *EnableMrtRequest) (*google_protobuf1.Empty, error)
	DisableMrt(context.Context, *DisableMrtRequest) (*google_protobuf1.Empty, error)
	AddBmp(context.Context, *AddBmpRequest) (*google_protobuf1.Empty, error)
	DeleteBmp(context.Context, *DeleteBmpRequest) (*google_protobuf1.Empty, error)
}

func RegisterGobgpApiServer(s *grpc.Server, srv GobgpApiServer) {
	s.RegisterService(&_GobgpApi_serviceDesc, srv)
}

func _GobgpApi_StartBgp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StartBgpRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).StartBgp(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/StartBgp",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).StartBgp(ctx, req.(*StartBgpRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_StopBgp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StopBgpRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).StopBgp(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/StopBgp",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).StopBgp(ctx, req.(*StopBgpRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_GetBgp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetBgpRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).GetBgp(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/GetBgp",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).GetBgp(ctx, req.(*GetBgpRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_AddPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddPeerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddPeer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddPeer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddPeer(ctx, req.(*AddPeerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeletePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeletePeerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeletePeer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeletePeer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeletePeer(ctx, req.(*DeletePeerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ListPeer_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ListPeerRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).ListPeer(m, &gobgpApiListPeerServer{stream})
}

type GobgpApi_ListPeerServer interface {
	Send(*ListPeerResponse) error
	grpc.ServerStream
}

type gobgpApiListPeerServer struct {
	grpc.ServerStream
}

func (x *gobgpApiListPeerServer) Send(m *ListPeerResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_UpdatePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdatePeerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).UpdatePeer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/UpdatePeer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).UpdatePeer(ctx, req.(*UpdatePeerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ResetPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ResetPeerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).ResetPeer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/ResetPeer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).ResetPeer(ctx, req.(*ResetPeerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ShutdownPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ShutdownPeerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).ShutdownPeer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/ShutdownPeer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).ShutdownPeer(ctx, req.(*ShutdownPeerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_EnablePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnablePeerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).EnablePeer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/EnablePeer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).EnablePeer(ctx, req.(*EnablePeerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DisablePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DisablePeerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DisablePeer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DisablePeer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DisablePeer(ctx, req.(*DisablePeerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_MonitorPeer_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(MonitorPeerRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).MonitorPeer(m, &gobgpApiMonitorPeerServer{stream})
}

type GobgpApi_MonitorPeerServer interface {
	Send(*MonitorPeerResponse) error
	grpc.ServerStream
}

type gobgpApiMonitorPeerServer struct {
	grpc.ServerStream
}

func (x *gobgpApiMonitorPeerServer) Send(m *MonitorPeerResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_AddPeerGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddPeerGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddPeerGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddPeerGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddPeerGroup(ctx, req.(*AddPeerGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeletePeerGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeletePeerGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeletePeerGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeletePeerGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeletePeerGroup(ctx, req.(*DeletePeerGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_UpdatePeerGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdatePeerGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).UpdatePeerGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/UpdatePeerGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).UpdatePeerGroup(ctx, req.(*UpdatePeerGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_AddDynamicNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddDynamicNeighborRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddDynamicNeighbor(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddDynamicNeighbor",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddDynamicNeighbor(ctx, req.(*AddDynamicNeighborRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_AddPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddPathRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddPath(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddPath",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddPath(ctx, req.(*AddPathRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeletePath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeletePathRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeletePath(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeletePath",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeletePath(ctx, req.(*DeletePathRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ListPath_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ListPathRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).ListPath(m, &gobgpApiListPathServer{stream})
}

type GobgpApi_ListPathServer interface {
	Send(*ListPathResponse) error
	grpc.ServerStream
}

type gobgpApiListPathServer struct {
	grpc.ServerStream
}

func (x *gobgpApiListPathServer) Send(m *ListPathResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_AddPathStream_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(GobgpApiServer).AddPathStream(&gobgpApiAddPathStreamServer{stream})
}

type GobgpApi_AddPathStreamServer interface {
	SendAndClose(*google_protobuf1.Empty) error
	Recv() (*AddPathStreamRequest, error)
	grpc.ServerStream
}

type gobgpApiAddPathStreamServer struct {
	grpc.ServerStream
}

func (x *gobgpApiAddPathStreamServer) SendAndClose(m *google_protobuf1.Empty) error {
	return x.ServerStream.SendMsg(m)
}

func (x *gobgpApiAddPathStreamServer) Recv() (*AddPathStreamRequest, error) {
	m := new(AddPathStreamRequest)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func _GobgpApi_GetTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetTableRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).GetTable(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/GetTable",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).GetTable(ctx, req.(*GetTableRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_MonitorTable_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(MonitorTableRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).MonitorTable(m, &gobgpApiMonitorTableServer{stream})
}

type GobgpApi_MonitorTableServer interface {
	Send(*MonitorTableResponse) error
	grpc.ServerStream
}

type gobgpApiMonitorTableServer struct {
	grpc.ServerStream
}

func (x *gobgpApiMonitorTableServer) Send(m *MonitorTableResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_AddVrf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddVrfRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddVrf(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddVrf",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddVrf(ctx, req.(*AddVrfRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeleteVrf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteVrfRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeleteVrf(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeleteVrf",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeleteVrf(ctx, req.(*DeleteVrfRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ListVrf_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ListVrfRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).ListVrf(m, &gobgpApiListVrfServer{stream})
}

type GobgpApi_ListVrfServer interface {
	Send(*ListVrfResponse) error
	grpc.ServerStream
}

type gobgpApiListVrfServer struct {
	grpc.ServerStream
}

func (x *gobgpApiListVrfServer) Send(m *ListVrfResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_AddPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddPolicyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddPolicy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddPolicy",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddPolicy(ctx, req.(*AddPolicyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeletePolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeletePolicyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeletePolicy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeletePolicy",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeletePolicy(ctx, req.(*DeletePolicyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ListPolicy_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ListPolicyRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).ListPolicy(m, &gobgpApiListPolicyServer{stream})
}

type GobgpApi_ListPolicyServer interface {
	Send(*ListPolicyResponse) error
	grpc.ServerStream
}

type gobgpApiListPolicyServer struct {
	grpc.ServerStream
}

func (x *gobgpApiListPolicyServer) Send(m *ListPolicyResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_SetPolicies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetPoliciesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).SetPolicies(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/SetPolicies",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).SetPolicies(ctx, req.(*SetPoliciesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_AddDefinedSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddDefinedSetRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddDefinedSet(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddDefinedSet",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddDefinedSet(ctx, req.(*AddDefinedSetRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeleteDefinedSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteDefinedSetRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeleteDefinedSet(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeleteDefinedSet",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeleteDefinedSet(ctx, req.(*DeleteDefinedSetRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ListDefinedSet_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ListDefinedSetRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).ListDefinedSet(m, &gobgpApiListDefinedSetServer{stream})
}

type GobgpApi_ListDefinedSetServer interface {
	Send(*ListDefinedSetResponse) error
	grpc.ServerStream
}

type gobgpApiListDefinedSetServer struct {
	grpc.ServerStream
}

func (x *gobgpApiListDefinedSetServer) Send(m *ListDefinedSetResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_AddStatement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddStatementRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddStatement(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddStatement",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddStatement(ctx, req.(*AddStatementRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeleteStatement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteStatementRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeleteStatement(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeleteStatement",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeleteStatement(ctx, req.(*DeleteStatementRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ListStatement_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ListStatementRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).ListStatement(m, &gobgpApiListStatementServer{stream})
}

type GobgpApi_ListStatementServer interface {
	Send(*ListStatementResponse) error
	grpc.ServerStream
}

type gobgpApiListStatementServer struct {
	grpc.ServerStream
}

func (x *gobgpApiListStatementServer) Send(m *ListStatementResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_AddPolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddPolicyAssignmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddPolicyAssignment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddPolicyAssignment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddPolicyAssignment(ctx, req.(*AddPolicyAssignmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeletePolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeletePolicyAssignmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeletePolicyAssignment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeletePolicyAssignment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeletePolicyAssignment(ctx, req.(*DeletePolicyAssignmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ListPolicyAssignment_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ListPolicyAssignmentRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).ListPolicyAssignment(m, &gobgpApiListPolicyAssignmentServer{stream})
}

type GobgpApi_ListPolicyAssignmentServer interface {
	Send(*ListPolicyAssignmentResponse) error
	grpc.ServerStream
}

type gobgpApiListPolicyAssignmentServer struct {
	grpc.ServerStream
}

func (x *gobgpApiListPolicyAssignmentServer) Send(m *ListPolicyAssignmentResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_SetPolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetPolicyAssignmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).SetPolicyAssignment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/SetPolicyAssignment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).SetPolicyAssignment(ctx, req.(*SetPolicyAssignmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_AddRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddRpkiRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddRpki(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddRpki",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddRpki(ctx, req.(*AddRpkiRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeleteRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteRpkiRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeleteRpki(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeleteRpki",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeleteRpki(ctx, req.(*DeleteRpkiRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ListRpki_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ListRpkiRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).ListRpki(m, &gobgpApiListRpkiServer{stream})
}

type GobgpApi_ListRpkiServer interface {
	Send(*ListRpkiResponse) error
	grpc.ServerStream
}

type gobgpApiListRpkiServer struct {
	grpc.ServerStream
}

func (x *gobgpApiListRpkiServer) Send(m *ListRpkiResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_EnableRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableRpkiRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).EnableRpki(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/EnableRpki",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).EnableRpki(ctx, req.(*EnableRpkiRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DisableRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DisableRpkiRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DisableRpki(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DisableRpki",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DisableRpki(ctx, req.(*DisableRpkiRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ResetRpki_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ResetRpkiRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).ResetRpki(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/ResetRpki",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).ResetRpki(ctx, req.(*ResetRpkiRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_ListRpkiTable_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(ListRpkiTableRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GobgpApiServer).ListRpkiTable(m, &gobgpApiListRpkiTableServer{stream})
}

type GobgpApi_ListRpkiTableServer interface {
	Send(*ListRpkiTableResponse) error
	grpc.ServerStream
}

type gobgpApiListRpkiTableServer struct {
	grpc.ServerStream
}

func (x *gobgpApiListRpkiTableServer) Send(m *ListRpkiTableResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GobgpApi_EnableZebra_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableZebraRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).EnableZebra(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/EnableZebra",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).EnableZebra(ctx, req.(*EnableZebraRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_EnableMrt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableMrtRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).EnableMrt(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/EnableMrt",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).EnableMrt(ctx, req.(*EnableMrtRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DisableMrt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DisableMrtRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DisableMrt(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DisableMrt",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DisableMrt(ctx, req.(*DisableMrtRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_AddBmp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddBmpRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).AddBmp(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/AddBmp",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).AddBmp(ctx, req.(*AddBmpRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GobgpApi_DeleteBmp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteBmpRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GobgpApiServer).DeleteBmp(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/gobgpapi.GobgpApi/DeleteBmp",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GobgpApiServer).DeleteBmp(ctx, req.(*DeleteBmpRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _GobgpApi_serviceDesc = grpc.ServiceDesc{
	ServiceName: "gobgpapi.GobgpApi",
	HandlerType: (*GobgpApiServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "StartBgp",
			Handler:    _GobgpApi_StartBgp_Handler,
		},
		{
			MethodName: "StopBgp",
			Handler:    _GobgpApi_StopBgp_Handler,
		},
		{
			MethodName: "GetBgp",
			Handler:    _GobgpApi_GetBgp_Handler,
		},
		{
			MethodName: "AddPeer",
			Handler:    _GobgpApi_AddPeer_Handler,
		},
		{
			MethodName: "DeletePeer",
			Handler:    _GobgpApi_DeletePeer_Handler,
		},
		{
			MethodName: "UpdatePeer",
			Handler:    _GobgpApi_UpdatePeer_Handler,
		},
		{
			MethodName: "ResetPeer",
			Handler:    _GobgpApi_ResetPeer_Handler,
		},
		{
			MethodName: "ShutdownPeer",
			Handler:    _GobgpApi_ShutdownPeer_Handler,
		},
		{
			MethodName: "EnablePeer",
			Handler:    _GobgpApi_EnablePeer_Handler,
		},
		{
			MethodName: "DisablePeer",
			Handler:    _GobgpApi_DisablePeer_Handler,
		},
		{
			MethodName: "AddPeerGroup",
			Handler:    _GobgpApi_AddPeerGroup_Handler,
		},
		{
			MethodName: "DeletePeerGroup",
			Handler:    _GobgpApi_DeletePeerGroup_Handler,
		},
		{
			MethodName: "UpdatePeerGroup",
			Handler:    _GobgpApi_UpdatePeerGroup_Handler,
		},
		{
			MethodName: "AddDynamicNeighbor",
			Handler:    _GobgpApi_AddDynamicNeighbor_Handler,
		},
		{
			MethodName: "AddPath",
			Handler:    _GobgpApi_AddPath_Handler,
		},
		{
			MethodName: "DeletePath",
			Handler:    _GobgpApi_DeletePath_Handler,
		},
		{
			MethodName: "GetTable",
			Handler:    _GobgpApi_GetTable_Handler,
		},
		{
			MethodName: "AddVrf",
			Handler:    _GobgpApi_AddVrf_Handler,
		},
		{
			MethodName: "DeleteVrf",
			Handler:    _GobgpApi_DeleteVrf_Handler,
		},
		{
			MethodName: "AddPolicy",
			Handler:    _GobgpApi_AddPolicy_Handler,
		},
		{
			MethodName: "DeletePolicy",
			Handler:    _GobgpApi_DeletePolicy_Handler,
		},
		{
			MethodName: "SetPolicies",
			Handler:    _GobgpApi_SetPolicies_Handler,
		},
		{
			MethodName: "AddDefinedSet",
			Handler:    _GobgpApi_AddDefinedSet_Handler,
		},
		{
			MethodName: "DeleteDefinedSet",
			Handler:    _GobgpApi_DeleteDefinedSet_Handler,
		},
		{
			MethodName: "AddStatement",
			Handler:    _GobgpApi_AddStatement_Handler,
		},
		{
			MethodName: "DeleteStatement",
			Handler:    _GobgpApi_DeleteStatement_Handler,
		},
		{
			MethodName: "AddPolicyAssignment",
			Handler:    _GobgpApi_AddPolicyAssignment_Handler,
		},
		{
			MethodName: "DeletePolicyAssignment",
			Handler:    _GobgpApi_DeletePolicyAssignment_Handler,
		},
		{
			MethodName: "SetPolicyAssignment",
			Handler:    _GobgpApi_SetPolicyAssignment_Handler,
		},
		{
			MethodName: "AddRpki",
			Handler:    _GobgpApi_AddRpki_Handler,
		},
		{
			MethodName: "DeleteRpki",
			Handler:    _GobgpApi_DeleteRpki_Handler,
		},
		{
			MethodName: "EnableRpki",
			Handler:    _GobgpApi_EnableRpki_Handler,
		},
		{
			MethodName: "DisableRpki",
			Handler:    _GobgpApi_DisableRpki_Handler,
		},
		{
			MethodName: "ResetRpki",
			Handler:    _GobgpApi_ResetRpki_Handler,
		},
		{
			MethodName: "EnableZebra",
			Handler:    _GobgpApi_EnableZebra_Handler,
		},
		{
			MethodName: "EnableMrt",
			Handler:    _GobgpApi_EnableMrt_Handler,
		},
		{
			MethodName: "DisableMrt",
			Handler:    _GobgpApi_DisableMrt_Handler,
		},
		{
			MethodName: "AddBmp",
			Handler:    _GobgpApi_AddBmp_Handler,
		},
		{
			MethodName: "DeleteBmp",
			Handler:    _GobgpApi_DeleteBmp_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "ListPeer",
			Handler:       _GobgpApi_ListPeer_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "MonitorPeer",
			Handler:       _GobgpApi_MonitorPeer_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ListPath",
			Handler:       _GobgpApi_ListPath_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "AddPathStream",
			Handler:       _GobgpApi_AddPathStream_Handler,
			ClientStreams: true,
		},
		{
			StreamName:    "MonitorTable",
			Handler:       _GobgpApi_MonitorTable_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ListVrf",
			Handler:       _GobgpApi_ListVrf_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ListPolicy",
			Handler:       _GobgpApi_ListPolicy_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ListDefinedSet",
			Handler:       _GobgpApi_ListDefinedSet_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ListStatement",
			Handler:       _GobgpApi_ListStatement_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ListPolicyAssignment",
			Handler:       _GobgpApi_ListPolicyAssignment_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ListRpki",
			Handler:       _GobgpApi_ListRpki_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ListRpkiTable",
			Handler:       _GobgpApi_ListRpkiTable_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "gobgp.proto",
}

func init() { proto.RegisterFile("gobgp.proto", fileDescriptor0) }

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