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

package gobgpapi

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "github.com/golang/protobuf/ptypes/any"

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

type OriginAttribute struct {
	Origin uint32 `protobuf:"varint,1,opt,name=origin" json:"origin,omitempty"`
}

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

func (m *OriginAttribute) GetOrigin() uint32 {
	if m != nil {
		return m.Origin
	}
	return 0
}

type AsSegment struct {
	Type    uint32   `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	Numbers []uint32 `protobuf:"varint,2,rep,packed,name=numbers" json:"numbers,omitempty"`
}

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

func (m *AsSegment) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *AsSegment) GetNumbers() []uint32 {
	if m != nil {
		return m.Numbers
	}
	return nil
}

type AsPathAttribute struct {
	Segments []*AsSegment `protobuf:"bytes,1,rep,name=segments" json:"segments,omitempty"`
}

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

func (m *AsPathAttribute) GetSegments() []*AsSegment {
	if m != nil {
		return m.Segments
	}
	return nil
}

type NextHopAttribute struct {
	NextHop string `protobuf:"bytes,1,opt,name=next_hop,json=nextHop" json:"next_hop,omitempty"`
}

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

func (m *NextHopAttribute) GetNextHop() string {
	if m != nil {
		return m.NextHop
	}
	return ""
}

type MultiExitDiscAttribute struct {
	Med uint32 `protobuf:"varint,1,opt,name=med" json:"med,omitempty"`
}

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

func (m *MultiExitDiscAttribute) GetMed() uint32 {
	if m != nil {
		return m.Med
	}
	return 0
}

type LocalPrefAttribute struct {
	LocalPref uint32 `protobuf:"varint,1,opt,name=local_pref,json=localPref" json:"local_pref,omitempty"`
}

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

func (m *LocalPrefAttribute) GetLocalPref() uint32 {
	if m != nil {
		return m.LocalPref
	}
	return 0
}

type AtomicAggregateAttribute struct {
}

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

type AggregatorAttribute struct {
	As      uint32 `protobuf:"varint,2,opt,name=as" json:"as,omitempty"`
	Address string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
}

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

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

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

type CommunitiesAttribute struct {
	Communities []uint32 `protobuf:"varint,1,rep,packed,name=communities" json:"communities,omitempty"`
}

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

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

type OriginatorIdAttribute struct {
	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
}

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

func (m *OriginatorIdAttribute) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

type ClusterListAttribute struct {
	Ids []string `protobuf:"bytes,1,rep,name=ids" json:"ids,omitempty"`
}

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

func (m *ClusterListAttribute) GetIds() []string {
	if m != nil {
		return m.Ids
	}
	return nil
}

// IPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=1
// - AFI=2, SAFI=1
type IPAddressPrefix struct {
	PrefixLen uint32 `protobuf:"varint,1,opt,name=prefix_len,json=prefixLen" json:"prefix_len,omitempty"`
	Prefix    string `protobuf:"bytes,2,opt,name=prefix" json:"prefix,omitempty"`
}

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

func (m *IPAddressPrefix) GetPrefixLen() uint32 {
	if m != nil {
		return m.PrefixLen
	}
	return 0
}

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

// LabeledIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=4
// - AFI=2, SAFI=4
type LabeledIPAddressPrefix struct {
	Labels    []uint32 `protobuf:"varint,1,rep,packed,name=labels" json:"labels,omitempty"`
	PrefixLen uint32   `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen" json:"prefix_len,omitempty"`
	Prefix    string   `protobuf:"bytes,3,opt,name=prefix" json:"prefix,omitempty"`
}

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

func (m *LabeledIPAddressPrefix) GetLabels() []uint32 {
	if m != nil {
		return m.Labels
	}
	return nil
}

func (m *LabeledIPAddressPrefix) GetPrefixLen() uint32 {
	if m != nil {
		return m.PrefixLen
	}
	return 0
}

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

// EncapsulationNLRI represents the NLRI for:
// - AFI=1, SAFI=7
// - AFI=2, SAFI=7
type EncapsulationNLRI struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
}

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

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

type RouteDistinguisherTwoOctetAS struct {
	Admin    uint32 `protobuf:"varint,1,opt,name=admin" json:"admin,omitempty"`
	Assigned uint32 `protobuf:"varint,2,opt,name=assigned" json:"assigned,omitempty"`
}

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

func (m *RouteDistinguisherTwoOctetAS) GetAdmin() uint32 {
	if m != nil {
		return m.Admin
	}
	return 0
}

func (m *RouteDistinguisherTwoOctetAS) GetAssigned() uint32 {
	if m != nil {
		return m.Assigned
	}
	return 0
}

type RouteDistinguisherIPAddress struct {
	Admin    string `protobuf:"bytes,1,opt,name=admin" json:"admin,omitempty"`
	Assigned uint32 `protobuf:"varint,2,opt,name=assigned" json:"assigned,omitempty"`
}

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

func (m *RouteDistinguisherIPAddress) GetAdmin() string {
	if m != nil {
		return m.Admin
	}
	return ""
}

func (m *RouteDistinguisherIPAddress) GetAssigned() uint32 {
	if m != nil {
		return m.Assigned
	}
	return 0
}

type RouteDistinguisherFourOctetAS struct {
	Admin    uint32 `protobuf:"varint,1,opt,name=admin" json:"admin,omitempty"`
	Assigned uint32 `protobuf:"varint,2,opt,name=assigned" json:"assigned,omitempty"`
}

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

func (m *RouteDistinguisherFourOctetAS) GetAdmin() uint32 {
	if m != nil {
		return m.Admin
	}
	return 0
}

func (m *RouteDistinguisherFourOctetAS) GetAssigned() uint32 {
	if m != nil {
		return m.Assigned
	}
	return 0
}

type EthernetSegmentIdentifier struct {
	Type  uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

func (m *EthernetSegmentIdentifier) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *EthernetSegmentIdentifier) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

// EVPNEthernetAutoDiscoveryRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=1
type EVPNEthernetAutoDiscoveryRoute struct {
	// One of:
	// - RouteDistinguisherTwoOctetAS
	// - RouteDistinguisherIPAddressAS
	// - RouteDistinguisherFourOctetAS
	Rd          *google_protobuf.Any       `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
	Esi         *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi" json:"esi,omitempty"`
	EthernetTag uint32                     `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"`
	Label       uint32                     `protobuf:"varint,4,opt,name=label" json:"label,omitempty"`
}

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

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

func (m *EVPNEthernetAutoDiscoveryRoute) GetEsi() *EthernetSegmentIdentifier {
	if m != nil {
		return m.Esi
	}
	return nil
}

func (m *EVPNEthernetAutoDiscoveryRoute) GetEthernetTag() uint32 {
	if m != nil {
		return m.EthernetTag
	}
	return 0
}

func (m *EVPNEthernetAutoDiscoveryRoute) GetLabel() uint32 {
	if m != nil {
		return m.Label
	}
	return 0
}

// EVPNMACIPAdvertisementRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=2
type EVPNMACIPAdvertisementRoute struct {
	// One of:
	// - RouteDistinguisherTwoOctetAS
	// - RouteDistinguisherIPAddressAS
	// - RouteDistinguisherFourOctetAS
	Rd          *google_protobuf.Any       `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
	Esi         *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi" json:"esi,omitempty"`
	EthernetTag uint32                     `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"`
	MacAddress  string                     `protobuf:"bytes,4,opt,name=mac_address,json=macAddress" json:"mac_address,omitempty"`
	IpAddress   string                     `protobuf:"bytes,5,opt,name=ip_address,json=ipAddress" json:"ip_address,omitempty"`
	Labels      []uint32                   `protobuf:"varint,6,rep,packed,name=labels" json:"labels,omitempty"`
}

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

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

func (m *EVPNMACIPAdvertisementRoute) GetEsi() *EthernetSegmentIdentifier {
	if m != nil {
		return m.Esi
	}
	return nil
}

func (m *EVPNMACIPAdvertisementRoute) GetEthernetTag() uint32 {
	if m != nil {
		return m.EthernetTag
	}
	return 0
}

func (m *EVPNMACIPAdvertisementRoute) GetMacAddress() string {
	if m != nil {
		return m.MacAddress
	}
	return ""
}

func (m *EVPNMACIPAdvertisementRoute) GetIpAddress() string {
	if m != nil {
		return m.IpAddress
	}
	return ""
}

func (m *EVPNMACIPAdvertisementRoute) GetLabels() []uint32 {
	if m != nil {
		return m.Labels
	}
	return nil
}

// EVPNInclusiveMulticastEthernetTagRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=3
type EVPNInclusiveMulticastEthernetTagRoute struct {
	// One of:
	// - RouteDistinguisherTwoOctetAS
	// - RouteDistinguisherIPAddressAS
	// - RouteDistinguisherFourOctetAS
	Rd          *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
	EthernetTag uint32               `protobuf:"varint,2,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"`
	IpAddress   string               `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress" json:"ip_address,omitempty"`
}

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

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

func (m *EVPNInclusiveMulticastEthernetTagRoute) GetEthernetTag() uint32 {
	if m != nil {
		return m.EthernetTag
	}
	return 0
}

func (m *EVPNInclusiveMulticastEthernetTagRoute) GetIpAddress() string {
	if m != nil {
		return m.IpAddress
	}
	return ""
}

// EVPNEthernetSegmentRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=4
type EVPNEthernetSegmentRoute struct {
	// One of:
	// - RouteDistinguisherTwoOctetAS
	// - RouteDistinguisherIPAddressAS
	// - RouteDistinguisherFourOctetAS
	Rd        *google_protobuf.Any       `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
	Esi       *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi" json:"esi,omitempty"`
	IpAddress string                     `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress" json:"ip_address,omitempty"`
}

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

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

func (m *EVPNEthernetSegmentRoute) GetEsi() *EthernetSegmentIdentifier {
	if m != nil {
		return m.Esi
	}
	return nil
}

func (m *EVPNEthernetSegmentRoute) GetIpAddress() string {
	if m != nil {
		return m.IpAddress
	}
	return ""
}

// EVPNIPPrefixRoute represents the NLRI for:
// - AFI=25, SAFI=70, RouteType=5
type EVPNIPPrefixRoute struct {
	// One of:
	// - RouteDistinguisherTwoOctetAS
	// - RouteDistinguisherIPAddressAS
	// - RouteDistinguisherFourOctetAS
	Rd          *google_protobuf.Any       `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
	Esi         *EthernetSegmentIdentifier `protobuf:"bytes,2,opt,name=esi" json:"esi,omitempty"`
	EthernetTag uint32                     `protobuf:"varint,3,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"`
	IpPrefix    string                     `protobuf:"bytes,4,opt,name=ip_prefix,json=ipPrefix" json:"ip_prefix,omitempty"`
	IpPrefixLen uint32                     `protobuf:"varint,5,opt,name=ip_prefix_len,json=ipPrefixLen" json:"ip_prefix_len,omitempty"`
	GwAddress   string                     `protobuf:"bytes,6,opt,name=gw_address,json=gwAddress" json:"gw_address,omitempty"`
	Label       uint32                     `protobuf:"varint,7,opt,name=label" json:"label,omitempty"`
}

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

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

func (m *EVPNIPPrefixRoute) GetEsi() *EthernetSegmentIdentifier {
	if m != nil {
		return m.Esi
	}
	return nil
}

func (m *EVPNIPPrefixRoute) GetEthernetTag() uint32 {
	if m != nil {
		return m.EthernetTag
	}
	return 0
}

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

func (m *EVPNIPPrefixRoute) GetIpPrefixLen() uint32 {
	if m != nil {
		return m.IpPrefixLen
	}
	return 0
}

func (m *EVPNIPPrefixRoute) GetGwAddress() string {
	if m != nil {
		return m.GwAddress
	}
	return ""
}

func (m *EVPNIPPrefixRoute) GetLabel() uint32 {
	if m != nil {
		return m.Label
	}
	return 0
}

// LabeledVPNIPAddressPrefix represents the NLRI for:
// - AFI=1, SAFI=128
// - AFI=2, SAFI=128
type LabeledVPNIPAddressPrefix struct {
	Labels []uint32 `protobuf:"varint,1,rep,packed,name=labels" json:"labels,omitempty"`
	// One of:
	// - TwoOctetAsSpecificExtended
	// - IPv4AddressSpecificExtended
	// - FourOctetAsSpecificExtended
	Rd        *google_protobuf.Any `protobuf:"bytes,2,opt,name=rd" json:"rd,omitempty"`
	PrefixLen uint32               `protobuf:"varint,3,opt,name=prefix_len,json=prefixLen" json:"prefix_len,omitempty"`
	Prefix    string               `protobuf:"bytes,4,opt,name=prefix" json:"prefix,omitempty"`
}

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

func (m *LabeledVPNIPAddressPrefix) GetLabels() []uint32 {
	if m != nil {
		return m.Labels
	}
	return nil
}

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

func (m *LabeledVPNIPAddressPrefix) GetPrefixLen() uint32 {
	if m != nil {
		return m.PrefixLen
	}
	return 0
}

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

// RouteTargetMembershipNLRI represents the NLRI for:
// - AFI=1, SAFI=132
type RouteTargetMembershipNLRI struct {
	As uint32 `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
	// One of:
	// - TwoOctetAsSpecificExtended
	// - IPv4AddressSpecificExtended
	// - FourOctetAsSpecificExtended
	Rt *google_protobuf.Any `protobuf:"bytes,2,opt,name=rt" json:"rt,omitempty"`
}

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

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

func (m *RouteTargetMembershipNLRI) GetRt() *google_protobuf.Any {
	if m != nil {
		return m.Rt
	}
	return nil
}

type FlowSpecIPPrefix struct {
	Type      uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	PrefixLen uint32 `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen" json:"prefix_len,omitempty"`
	Prefix    string `protobuf:"bytes,3,opt,name=prefix" json:"prefix,omitempty"`
	// IPv6 only
	Offset uint32 `protobuf:"varint,4,opt,name=offset" json:"offset,omitempty"`
}

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

func (m *FlowSpecIPPrefix) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *FlowSpecIPPrefix) GetPrefixLen() uint32 {
	if m != nil {
		return m.PrefixLen
	}
	return 0
}

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

func (m *FlowSpecIPPrefix) GetOffset() uint32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

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

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

func (m *FlowSpecMAC) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

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

type FlowSpecComponentItem struct {
	// Operator for Numeric type, Operand for Bitmask type
	Op    uint32 `protobuf:"varint,1,opt,name=op" json:"op,omitempty"`
	Value uint64 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
}

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

func (m *FlowSpecComponentItem) GetOp() uint32 {
	if m != nil {
		return m.Op
	}
	return 0
}

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

type FlowSpecComponent struct {
	Type  uint32                   `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	Items []*FlowSpecComponentItem `protobuf:"bytes,2,rep,name=items" json:"items,omitempty"`
}

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

func (m *FlowSpecComponent) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *FlowSpecComponent) GetItems() []*FlowSpecComponentItem {
	if m != nil {
		return m.Items
	}
	return nil
}

// FlowSpecNLRI represents the NLRI for:
// - AFI=1, SAFI=133
// - AFI=2, SAFI=133
type FlowSpecNLRI struct {
	// One of:
	// - FlowSpecIPPrefix
	// - FlowSpecMAC
	// - FlowSpecComponent
	Rules []*google_protobuf.Any `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
}

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

func (m *FlowSpecNLRI) GetRules() []*google_protobuf.Any {
	if m != nil {
		return m.Rules
	}
	return nil
}

// VPNFlowSpecNLRI represents the NLRI for:
// - AFI=1, SAFI=134
// - AFI=2, SAFI=134
// - AFI=25, SAFI=134
type VPNFlowSpecNLRI struct {
	// One of:
	// - RouteDistinguisherTwoOctetAS
	// - RouteDistinguisherIPAddressAS
	// - RouteDistinguisherFourOctetAS
	Rd *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"`
	// One of:
	// - FlowSpecIPPrefix
	// - FlowSpecMAC
	// - FlowSpecComponent
	Rules []*google_protobuf.Any `protobuf:"bytes,2,rep,name=rules" json:"rules,omitempty"`
}

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

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

func (m *VPNFlowSpecNLRI) GetRules() []*google_protobuf.Any {
	if m != nil {
		return m.Rules
	}
	return nil
}

// OpaqueNLRI represents the NLRI for:
// - AFI=16397, SAFI=241
type OpaqueNLRI struct {
	Key   []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

func (m *OpaqueNLRI) GetKey() []byte {
	if m != nil {
		return m.Key
	}
	return nil
}

func (m *OpaqueNLRI) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

type MpReachNLRIAttribute struct {
	Family   *Family  `protobuf:"bytes,1,opt,name=family" json:"family,omitempty"`
	NextHops []string `protobuf:"bytes,2,rep,name=next_hops,json=nextHops" json:"next_hops,omitempty"`
	// Each NLRI must be one of:
	// - IPAddressPrefix
	// - LabeledIPAddressPrefix
	// - EncapsulationNLRI
	// - EVPNEthernetAutoDiscoveryRoute
	// - EVPNMACIPAdvertisementRoute
	// - EVPNInclusiveMulticastEthernetTagRoute
	// - EVPNEthernetSegmentRoute
	// - EVPNIPPrefixRoute
	// - LabeledVPNIPAddressPrefix
	// - RouteTargetMembershipNLRI
	// - FlowSpecNLRI
	// - VPNFlowSpecNLRI
	// - OpaqueNLRI
	Nlris []*google_protobuf.Any `protobuf:"bytes,3,rep,name=nlris" json:"nlris,omitempty"`
}

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

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

func (m *MpReachNLRIAttribute) GetNextHops() []string {
	if m != nil {
		return m.NextHops
	}
	return nil
}

func (m *MpReachNLRIAttribute) GetNlris() []*google_protobuf.Any {
	if m != nil {
		return m.Nlris
	}
	return nil
}

type MpUnreachNLRIAttribute struct {
	Family *Family `protobuf:"bytes,1,opt,name=family" json:"family,omitempty"`
	// The same as NLRI field of MpReachNLRIAttribute
	Nlris []*google_protobuf.Any `protobuf:"bytes,3,rep,name=nlris" json:"nlris,omitempty"`
}

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

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

func (m *MpUnreachNLRIAttribute) GetNlris() []*google_protobuf.Any {
	if m != nil {
		return m.Nlris
	}
	return nil
}

type TwoOctetAsSpecificExtended struct {
	IsTransitive bool   `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
	SubType      uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType" json:"sub_type,omitempty"`
	As           uint32 `protobuf:"varint,3,opt,name=as" json:"as,omitempty"`
	LocalAdmin   uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}

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

func (m *TwoOctetAsSpecificExtended) GetIsTransitive() bool {
	if m != nil {
		return m.IsTransitive
	}
	return false
}

func (m *TwoOctetAsSpecificExtended) GetSubType() uint32 {
	if m != nil {
		return m.SubType
	}
	return 0
}

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

func (m *TwoOctetAsSpecificExtended) GetLocalAdmin() uint32 {
	if m != nil {
		return m.LocalAdmin
	}
	return 0
}

type IPv4AddressSpecificExtended struct {
	IsTransitive bool   `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
	SubType      uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType" json:"sub_type,omitempty"`
	Address      string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
	LocalAdmin   uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}

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

func (m *IPv4AddressSpecificExtended) GetIsTransitive() bool {
	if m != nil {
		return m.IsTransitive
	}
	return false
}

func (m *IPv4AddressSpecificExtended) GetSubType() uint32 {
	if m != nil {
		return m.SubType
	}
	return 0
}

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

func (m *IPv4AddressSpecificExtended) GetLocalAdmin() uint32 {
	if m != nil {
		return m.LocalAdmin
	}
	return 0
}

type FourOctetAsSpecificExtended struct {
	IsTransitive bool   `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
	SubType      uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType" json:"sub_type,omitempty"`
	As           uint32 `protobuf:"varint,3,opt,name=as" json:"as,omitempty"`
	LocalAdmin   uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}

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

func (m *FourOctetAsSpecificExtended) GetIsTransitive() bool {
	if m != nil {
		return m.IsTransitive
	}
	return false
}

func (m *FourOctetAsSpecificExtended) GetSubType() uint32 {
	if m != nil {
		return m.SubType
	}
	return 0
}

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

func (m *FourOctetAsSpecificExtended) GetLocalAdmin() uint32 {
	if m != nil {
		return m.LocalAdmin
	}
	return 0
}

type ValidationExtended struct {
	State uint32 `protobuf:"varint,1,opt,name=state" json:"state,omitempty"`
}

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

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

type ColorExtended struct {
	Color uint32 `protobuf:"varint,1,opt,name=color" json:"color,omitempty"`
}

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

func (m *ColorExtended) GetColor() uint32 {
	if m != nil {
		return m.Color
	}
	return 0
}

type EncapExtended struct {
	TunnelType uint32 `protobuf:"varint,1,opt,name=tunnel_type,json=tunnelType" json:"tunnel_type,omitempty"`
}

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

func (m *EncapExtended) GetTunnelType() uint32 {
	if m != nil {
		return m.TunnelType
	}
	return 0
}

type DefaultGatewayExtended struct {
}

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

type OpaqueExtended struct {
	IsTransitive bool   `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
	Value        []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
}

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

func (m *OpaqueExtended) GetIsTransitive() bool {
	if m != nil {
		return m.IsTransitive
	}
	return false
}

func (m *OpaqueExtended) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

type ESILabelExtended struct {
	IsSingleActive bool   `protobuf:"varint,1,opt,name=is_single_active,json=isSingleActive" json:"is_single_active,omitempty"`
	Label          uint32 `protobuf:"varint,2,opt,name=label" json:"label,omitempty"`
}

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

func (m *ESILabelExtended) GetIsSingleActive() bool {
	if m != nil {
		return m.IsSingleActive
	}
	return false
}

func (m *ESILabelExtended) GetLabel() uint32 {
	if m != nil {
		return m.Label
	}
	return 0
}

type ESImportRouteTarget struct {
	EsImport string `protobuf:"bytes,1,opt,name=es_import,json=esImport" json:"es_import,omitempty"`
}

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

func (m *ESImportRouteTarget) GetEsImport() string {
	if m != nil {
		return m.EsImport
	}
	return ""
}

type MacMobilityExtended struct {
	IsSticky    bool   `protobuf:"varint,1,opt,name=is_sticky,json=isSticky" json:"is_sticky,omitempty"`
	SequenceNum uint32 `protobuf:"varint,2,opt,name=sequence_num,json=sequenceNum" json:"sequence_num,omitempty"`
}

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

func (m *MacMobilityExtended) GetIsSticky() bool {
	if m != nil {
		return m.IsSticky
	}
	return false
}

func (m *MacMobilityExtended) GetSequenceNum() uint32 {
	if m != nil {
		return m.SequenceNum
	}
	return 0
}

type RouterMacExtended struct {
	Mac string `protobuf:"bytes,1,opt,name=mac" json:"mac,omitempty"`
}

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

func (m *RouterMacExtended) GetMac() string {
	if m != nil {
		return m.Mac
	}
	return ""
}

type TrafficRateExtended struct {
	As   uint32  `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
	Rate float32 `protobuf:"fixed32,2,opt,name=rate" json:"rate,omitempty"`
}

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

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

func (m *TrafficRateExtended) GetRate() float32 {
	if m != nil {
		return m.Rate
	}
	return 0
}

type TrafficActionExtended struct {
	Terminal bool `protobuf:"varint,1,opt,name=terminal" json:"terminal,omitempty"`
	Sample   bool `protobuf:"varint,2,opt,name=sample" json:"sample,omitempty"`
}

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

func (m *TrafficActionExtended) GetTerminal() bool {
	if m != nil {
		return m.Terminal
	}
	return false
}

func (m *TrafficActionExtended) GetSample() bool {
	if m != nil {
		return m.Sample
	}
	return false
}

type RedirectTwoOctetAsSpecificExtended struct {
	As         uint32 `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
	LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}

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

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

func (m *RedirectTwoOctetAsSpecificExtended) GetLocalAdmin() uint32 {
	if m != nil {
		return m.LocalAdmin
	}
	return 0
}

type RedirectIPv4AddressSpecificExtended struct {
	Address    string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}

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

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

func (m *RedirectIPv4AddressSpecificExtended) GetLocalAdmin() uint32 {
	if m != nil {
		return m.LocalAdmin
	}
	return 0
}

type RedirectFourOctetAsSpecificExtended struct {
	As         uint32 `protobuf:"varint,1,opt,name=as" json:"as,omitempty"`
	LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}

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

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

func (m *RedirectFourOctetAsSpecificExtended) GetLocalAdmin() uint32 {
	if m != nil {
		return m.LocalAdmin
	}
	return 0
}

type TrafficRemarkExtended struct {
	Dscp uint32 `protobuf:"varint,1,opt,name=dscp" json:"dscp,omitempty"`
}

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

func (m *TrafficRemarkExtended) GetDscp() uint32 {
	if m != nil {
		return m.Dscp
	}
	return 0
}

type UnknownExtended struct {
	Type  uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

func (m *UnknownExtended) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *UnknownExtended) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

type ExtendedCommunitiesAttribute struct {
	// Each Community must be one of:
	// - TwoOctetAsSpecificExtended
	// - IPv4AddressSpecificExtended
	// - FourOctetAsSpecificExtended
	// - OpaqueExtended
	// - ESILabelExtended
	// - MacMobilityExtended
	// - RouterMacExtended
	// - TrafficRateExtended
	// - TrafficActionExtended
	// - RedirectTwoOctetAsSpecificExtended
	// - RedirectIPv4AddressSpecificExtended
	// - RedirectFourOctetAsSpecificExtended
	// - TrafficRemarkExtended
	// - UnknownExtended
	Communities []*google_protobuf.Any `protobuf:"bytes,1,rep,name=communities" json:"communities,omitempty"`
}

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

func (m *ExtendedCommunitiesAttribute) GetCommunities() []*google_protobuf.Any {
	if m != nil {
		return m.Communities
	}
	return nil
}

type As4PathAttribute struct {
	Segments []*AsSegment `protobuf:"bytes,1,rep,name=segments" json:"segments,omitempty"`
}

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

func (m *As4PathAttribute) GetSegments() []*AsSegment {
	if m != nil {
		return m.Segments
	}
	return nil
}

type As4AggregatorAttribute struct {
	As      uint32 `protobuf:"varint,2,opt,name=as" json:"as,omitempty"`
	Address string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
}

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

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

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

type PmsiTunnelAttribute struct {
	Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
	Type  uint32 `protobuf:"varint,2,opt,name=type" json:"type,omitempty"`
	Label uint32 `protobuf:"varint,3,opt,name=label" json:"label,omitempty"`
	Id    []byte `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"`
}

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

func (m *PmsiTunnelAttribute) GetFlags() uint32 {
	if m != nil {
		return m.Flags
	}
	return 0
}

func (m *PmsiTunnelAttribute) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *PmsiTunnelAttribute) GetLabel() uint32 {
	if m != nil {
		return m.Label
	}
	return 0
}

func (m *PmsiTunnelAttribute) GetId() []byte {
	if m != nil {
		return m.Id
	}
	return nil
}

type TunnelEncapSubTLVEncapsulation struct {
	Key    uint32 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"`
	Cookie []byte `protobuf:"bytes,2,opt,name=cookie,proto3" json:"cookie,omitempty"`
}

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

func (m *TunnelEncapSubTLVEncapsulation) GetKey() uint32 {
	if m != nil {
		return m.Key
	}
	return 0
}

func (m *TunnelEncapSubTLVEncapsulation) GetCookie() []byte {
	if m != nil {
		return m.Cookie
	}
	return nil
}

type TunnelEncapSubTLVProtocol struct {
	Protocol uint32 `protobuf:"varint,1,opt,name=protocol" json:"protocol,omitempty"`
}

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

func (m *TunnelEncapSubTLVProtocol) GetProtocol() uint32 {
	if m != nil {
		return m.Protocol
	}
	return 0
}

type TunnelEncapSubTLVColor struct {
	Color uint32 `protobuf:"varint,1,opt,name=color" json:"color,omitempty"`
}

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

func (m *TunnelEncapSubTLVColor) GetColor() uint32 {
	if m != nil {
		return m.Color
	}
	return 0
}

type TunnelEncapSubTLVUnknown struct {
	Type  uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

func (m *TunnelEncapSubTLVUnknown) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *TunnelEncapSubTLVUnknown) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

type TunnelEncapTLV struct {
	Type uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	// Each TLV must be one of:
	// - TunnelEncapSubTLVEncapsulation
	// - TunnelEncapSubTLVProtocol
	// - TunnelEncapSubTLVColor
	// - TunnelEncapSubTLVUnknown
	Tlvs []*google_protobuf.Any `protobuf:"bytes,2,rep,name=tlvs" json:"tlvs,omitempty"`
}

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

func (m *TunnelEncapTLV) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *TunnelEncapTLV) GetTlvs() []*google_protobuf.Any {
	if m != nil {
		return m.Tlvs
	}
	return nil
}

type TunnelEncapAttribute struct {
	Tlvs []*TunnelEncapTLV `protobuf:"bytes,1,rep,name=tlvs" json:"tlvs,omitempty"`
}

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

func (m *TunnelEncapAttribute) GetTlvs() []*TunnelEncapTLV {
	if m != nil {
		return m.Tlvs
	}
	return nil
}

type IPv6AddressSpecificExtended struct {
	IsTransitive bool   `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"`
	SubType      uint32 `protobuf:"varint,2,opt,name=sub_type,json=subType" json:"sub_type,omitempty"`
	Address      string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
	LocalAdmin   uint32 `protobuf:"varint,4,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}

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

func (m *IPv6AddressSpecificExtended) GetIsTransitive() bool {
	if m != nil {
		return m.IsTransitive
	}
	return false
}

func (m *IPv6AddressSpecificExtended) GetSubType() uint32 {
	if m != nil {
		return m.SubType
	}
	return 0
}

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

func (m *IPv6AddressSpecificExtended) GetLocalAdmin() uint32 {
	if m != nil {
		return m.LocalAdmin
	}
	return 0
}

type RedirectIPv6AddressSpecificExtended struct {
	Address    string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	LocalAdmin uint32 `protobuf:"varint,2,opt,name=local_admin,json=localAdmin" json:"local_admin,omitempty"`
}

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

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

func (m *RedirectIPv6AddressSpecificExtended) GetLocalAdmin() uint32 {
	if m != nil {
		return m.LocalAdmin
	}
	return 0
}

type IP6ExtendedCommunitiesAttribute struct {
	// Each Community must be one of:
	// - IPv6AddressSpecificExtended
	// - RedirectIPv6AddressSpecificExtended
	Communities []*google_protobuf.Any `protobuf:"bytes,1,rep,name=communities" json:"communities,omitempty"`
}

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

func (m *IP6ExtendedCommunitiesAttribute) GetCommunities() []*google_protobuf.Any {
	if m != nil {
		return m.Communities
	}
	return nil
}

type AigpTLVIGPMetric struct {
	Metric uint64 `protobuf:"varint,1,opt,name=metric" json:"metric,omitempty"`
}

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

func (m *AigpTLVIGPMetric) GetMetric() uint64 {
	if m != nil {
		return m.Metric
	}
	return 0
}

type AigpTLVUnknown struct {
	Type  uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

func (m *AigpTLVUnknown) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *AigpTLVUnknown) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

type AigpAttribute struct {
	// Each TLV must be one of:
	// - AigpTLVIGPMetric
	// - AigpTLVUnknown
	Tlvs []*google_protobuf.Any `protobuf:"bytes,1,rep,name=tlvs" json:"tlvs,omitempty"`
}

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

func (m *AigpAttribute) GetTlvs() []*google_protobuf.Any {
	if m != nil {
		return m.Tlvs
	}
	return nil
}

type LargeCommunity struct {
	GlobalAdmin uint32 `protobuf:"varint,1,opt,name=global_admin,json=globalAdmin" json:"global_admin,omitempty"`
	LocalData1  uint32 `protobuf:"varint,2,opt,name=local_data1,json=localData1" json:"local_data1,omitempty"`
	LocalData2  uint32 `protobuf:"varint,3,opt,name=local_data2,json=localData2" json:"local_data2,omitempty"`
}

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

func (m *LargeCommunity) GetGlobalAdmin() uint32 {
	if m != nil {
		return m.GlobalAdmin
	}
	return 0
}

func (m *LargeCommunity) GetLocalData1() uint32 {
	if m != nil {
		return m.LocalData1
	}
	return 0
}

func (m *LargeCommunity) GetLocalData2() uint32 {
	if m != nil {
		return m.LocalData2
	}
	return 0
}

type LargeCommunitiesAttribute struct {
	Communities []*LargeCommunity `protobuf:"bytes,1,rep,name=communities" json:"communities,omitempty"`
}

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

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

type UnknownAttribute struct {
	Flags uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
	Type  uint32 `protobuf:"varint,2,opt,name=type" json:"type,omitempty"`
	Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
}

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

func (m *UnknownAttribute) GetFlags() uint32 {
	if m != nil {
		return m.Flags
	}
	return 0
}

func (m *UnknownAttribute) GetType() uint32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *UnknownAttribute) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

func init() {
	proto.RegisterType((*OriginAttribute)(nil), "gobgpapi.OriginAttribute")
	proto.RegisterType((*AsSegment)(nil), "gobgpapi.AsSegment")
	proto.RegisterType((*AsPathAttribute)(nil), "gobgpapi.AsPathAttribute")
	proto.RegisterType((*NextHopAttribute)(nil), "gobgpapi.NextHopAttribute")
	proto.RegisterType((*MultiExitDiscAttribute)(nil), "gobgpapi.MultiExitDiscAttribute")
	proto.RegisterType((*LocalPrefAttribute)(nil), "gobgpapi.LocalPrefAttribute")
	proto.RegisterType((*AtomicAggregateAttribute)(nil), "gobgpapi.AtomicAggregateAttribute")
	proto.RegisterType((*AggregatorAttribute)(nil), "gobgpapi.AggregatorAttribute")
	proto.RegisterType((*CommunitiesAttribute)(nil), "gobgpapi.CommunitiesAttribute")
	proto.RegisterType((*OriginatorIdAttribute)(nil), "gobgpapi.OriginatorIdAttribute")
	proto.RegisterType((*ClusterListAttribute)(nil), "gobgpapi.ClusterListAttribute")
	proto.RegisterType((*IPAddressPrefix)(nil), "gobgpapi.IPAddressPrefix")
	proto.RegisterType((*LabeledIPAddressPrefix)(nil), "gobgpapi.LabeledIPAddressPrefix")
	proto.RegisterType((*EncapsulationNLRI)(nil), "gobgpapi.EncapsulationNLRI")
	proto.RegisterType((*RouteDistinguisherTwoOctetAS)(nil), "gobgpapi.RouteDistinguisherTwoOctetAS")
	proto.RegisterType((*RouteDistinguisherIPAddress)(nil), "gobgpapi.RouteDistinguisherIPAddress")
	proto.RegisterType((*RouteDistinguisherFourOctetAS)(nil), "gobgpapi.RouteDistinguisherFourOctetAS")
	proto.RegisterType((*EthernetSegmentIdentifier)(nil), "gobgpapi.EthernetSegmentIdentifier")
	proto.RegisterType((*EVPNEthernetAutoDiscoveryRoute)(nil), "gobgpapi.EVPNEthernetAutoDiscoveryRoute")
	proto.RegisterType((*EVPNMACIPAdvertisementRoute)(nil), "gobgpapi.EVPNMACIPAdvertisementRoute")
	proto.RegisterType((*EVPNInclusiveMulticastEthernetTagRoute)(nil), "gobgpapi.EVPNInclusiveMulticastEthernetTagRoute")
	proto.RegisterType((*EVPNEthernetSegmentRoute)(nil), "gobgpapi.EVPNEthernetSegmentRoute")
	proto.RegisterType((*EVPNIPPrefixRoute)(nil), "gobgpapi.EVPNIPPrefixRoute")
	proto.RegisterType((*LabeledVPNIPAddressPrefix)(nil), "gobgpapi.LabeledVPNIPAddressPrefix")
	proto.RegisterType((*RouteTargetMembershipNLRI)(nil), "gobgpapi.RouteTargetMembershipNLRI")
	proto.RegisterType((*FlowSpecIPPrefix)(nil), "gobgpapi.FlowSpecIPPrefix")
	proto.RegisterType((*FlowSpecMAC)(nil), "gobgpapi.FlowSpecMAC")
	proto.RegisterType((*FlowSpecComponentItem)(nil), "gobgpapi.FlowSpecComponentItem")
	proto.RegisterType((*FlowSpecComponent)(nil), "gobgpapi.FlowSpecComponent")
	proto.RegisterType((*FlowSpecNLRI)(nil), "gobgpapi.FlowSpecNLRI")
	proto.RegisterType((*VPNFlowSpecNLRI)(nil), "gobgpapi.VPNFlowSpecNLRI")
	proto.RegisterType((*OpaqueNLRI)(nil), "gobgpapi.OpaqueNLRI")
	proto.RegisterType((*MpReachNLRIAttribute)(nil), "gobgpapi.MpReachNLRIAttribute")
	proto.RegisterType((*MpUnreachNLRIAttribute)(nil), "gobgpapi.MpUnreachNLRIAttribute")
	proto.RegisterType((*TwoOctetAsSpecificExtended)(nil), "gobgpapi.TwoOctetAsSpecificExtended")
	proto.RegisterType((*IPv4AddressSpecificExtended)(nil), "gobgpapi.IPv4AddressSpecificExtended")
	proto.RegisterType((*FourOctetAsSpecificExtended)(nil), "gobgpapi.FourOctetAsSpecificExtended")
	proto.RegisterType((*ValidationExtended)(nil), "gobgpapi.ValidationExtended")
	proto.RegisterType((*ColorExtended)(nil), "gobgpapi.ColorExtended")
	proto.RegisterType((*EncapExtended)(nil), "gobgpapi.EncapExtended")
	proto.RegisterType((*DefaultGatewayExtended)(nil), "gobgpapi.DefaultGatewayExtended")
	proto.RegisterType((*OpaqueExtended)(nil), "gobgpapi.OpaqueExtended")
	proto.RegisterType((*ESILabelExtended)(nil), "gobgpapi.ESILabelExtended")
	proto.RegisterType((*ESImportRouteTarget)(nil), "gobgpapi.ESImportRouteTarget")
	proto.RegisterType((*MacMobilityExtended)(nil), "gobgpapi.MacMobilityExtended")
	proto.RegisterType((*RouterMacExtended)(nil), "gobgpapi.RouterMacExtended")
	proto.RegisterType((*TrafficRateExtended)(nil), "gobgpapi.TrafficRateExtended")
	proto.RegisterType((*TrafficActionExtended)(nil), "gobgpapi.TrafficActionExtended")
	proto.RegisterType((*RedirectTwoOctetAsSpecificExtended)(nil), "gobgpapi.RedirectTwoOctetAsSpecificExtended")
	proto.RegisterType((*RedirectIPv4AddressSpecificExtended)(nil), "gobgpapi.RedirectIPv4AddressSpecificExtended")
	proto.RegisterType((*RedirectFourOctetAsSpecificExtended)(nil), "gobgpapi.RedirectFourOctetAsSpecificExtended")
	proto.RegisterType((*TrafficRemarkExtended)(nil), "gobgpapi.TrafficRemarkExtended")
	proto.RegisterType((*UnknownExtended)(nil), "gobgpapi.UnknownExtended")
	proto.RegisterType((*ExtendedCommunitiesAttribute)(nil), "gobgpapi.ExtendedCommunitiesAttribute")
	proto.RegisterType((*As4PathAttribute)(nil), "gobgpapi.As4PathAttribute")
	proto.RegisterType((*As4AggregatorAttribute)(nil), "gobgpapi.As4AggregatorAttribute")
	proto.RegisterType((*PmsiTunnelAttribute)(nil), "gobgpapi.PmsiTunnelAttribute")
	proto.RegisterType((*TunnelEncapSubTLVEncapsulation)(nil), "gobgpapi.TunnelEncapSubTLVEncapsulation")
	proto.RegisterType((*TunnelEncapSubTLVProtocol)(nil), "gobgpapi.TunnelEncapSubTLVProtocol")
	proto.RegisterType((*TunnelEncapSubTLVColor)(nil), "gobgpapi.TunnelEncapSubTLVColor")
	proto.RegisterType((*TunnelEncapSubTLVUnknown)(nil), "gobgpapi.TunnelEncapSubTLVUnknown")
	proto.RegisterType((*TunnelEncapTLV)(nil), "gobgpapi.TunnelEncapTLV")
	proto.RegisterType((*TunnelEncapAttribute)(nil), "gobgpapi.TunnelEncapAttribute")
	proto.RegisterType((*IPv6AddressSpecificExtended)(nil), "gobgpapi.IPv6AddressSpecificExtended")
	proto.RegisterType((*RedirectIPv6AddressSpecificExtended)(nil), "gobgpapi.RedirectIPv6AddressSpecificExtended")
	proto.RegisterType((*IP6ExtendedCommunitiesAttribute)(nil), "gobgpapi.IP6ExtendedCommunitiesAttribute")
	proto.RegisterType((*AigpTLVIGPMetric)(nil), "gobgpapi.AigpTLVIGPMetric")
	proto.RegisterType((*AigpTLVUnknown)(nil), "gobgpapi.AigpTLVUnknown")
	proto.RegisterType((*AigpAttribute)(nil), "gobgpapi.AigpAttribute")
	proto.RegisterType((*LargeCommunity)(nil), "gobgpapi.LargeCommunity")
	proto.RegisterType((*LargeCommunitiesAttribute)(nil), "gobgpapi.LargeCommunitiesAttribute")
	proto.RegisterType((*UnknownAttribute)(nil), "gobgpapi.UnknownAttribute")
}

func init() { proto.RegisterFile("attribute.proto", fileDescriptor1) }

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