// 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 It has these top-level messages: Error Arguments ModPathArguments ModPathResponse ModPathsArguments ModNeighborArguments MrtArguments ModMrtArguments ModBmpArguments ModRpkiArguments ModVrfArguments ModDefinedSetArguments ModStatementArguments ModPolicyArguments ModPolicyAssignmentArguments ModGlobalConfigArguments Path Destination Table Peer ApplyPolicy PeerConf EbgpMultihop RouteReflector PeerState Messages Message Queues Timers TimersConfig TimersState Transport RouteServer Prefix DefinedSet MatchSet AsPathLength Conditions CommunityAction MedAction AsPrependAction Actions Statement Policy PolicyAssignment MrtMessage RPKIConf RPKIState RPKI ROA ROAResult Vrf Global */ package gobgpapi import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" 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. const _ = proto.ProtoPackageIsVersion1 type Resource int32 const ( Resource_GLOBAL Resource = 0 Resource_LOCAL Resource = 1 Resource_ADJ_IN Resource = 2 Resource_ADJ_OUT Resource = 3 Resource_VRF Resource = 4 ) var Resource_name = map[int32]string{ 0: "GLOBAL", 1: "LOCAL", 2: "ADJ_IN", 3: "ADJ_OUT", 4: "VRF", } var Resource_value = map[string]int32{ "GLOBAL": 0, "LOCAL": 1, "ADJ_IN": 2, "ADJ_OUT": 3, "VRF": 4, } func (x Resource) String() string { return proto.EnumName(Resource_name, int32(x)) } func (Resource) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } type Operation int32 const ( Operation_ADD Operation = 0 Operation_DEL Operation = 1 Operation_DEL_ALL Operation = 2 Operation_REPLACE Operation = 3 Operation_ENABLE Operation = 4 Operation_DISABLE Operation = 5 Operation_RESET Operation = 6 Operation_SOFTRESET Operation = 7 ) var Operation_name = map[int32]string{ 0: "ADD", 1: "DEL", 2: "DEL_ALL", 3: "REPLACE", 4: "ENABLE", 5: "DISABLE", 6: "RESET", 7: "SOFTRESET", } var Operation_value = map[string]int32{ "ADD": 0, "DEL": 1, "DEL_ALL": 2, "REPLACE": 3, "ENABLE": 4, "DISABLE": 5, "RESET": 6, "SOFTRESET": 7, } func (x Operation) String() string { return proto.EnumName(Operation_name, int32(x)) } func (Operation) 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 ) var DefinedType_name = map[int32]string{ 0: "PREFIX", 1: "NEIGHBOR", 2: "TAG", 3: "AS_PATH", 4: "COMMUNITY", 5: "EXT_COMMUNITY", } var DefinedType_value = map[string]int32{ "PREFIX": 0, "NEIGHBOR": 1, "TAG": 2, "AS_PATH": 3, "COMMUNITY": 4, "EXT_COMMUNITY": 5, } 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 PolicyType int32 const ( PolicyType_IN PolicyType = 0 PolicyType_IMPORT PolicyType = 1 PolicyType_EXPORT PolicyType = 2 ) var PolicyType_name = map[int32]string{ 0: "IN", 1: "IMPORT", 2: "EXPORT", } var PolicyType_value = map[string]int32{ "IN": 0, "IMPORT": 1, "EXPORT": 2, } func (x PolicyType) String() string { return proto.EnumName(PolicyType_name, int32(x)) } func (PolicyType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } type Error_ErrorCode int32 const ( Error_SUCCESS Error_ErrorCode = 0 Error_FAIL Error_ErrorCode = 1 ) var Error_ErrorCode_name = map[int32]string{ 0: "SUCCESS", 1: "FAIL", } var Error_ErrorCode_value = map[string]int32{ "SUCCESS": 0, "FAIL": 1, } func (x Error_ErrorCode) String() string { return proto.EnumName(Error_ErrorCode_name, int32(x)) } func (Error_ErrorCode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0} } type ModBmpArguments_MonitoringPolicy int32 const ( ModBmpArguments_PRE ModBmpArguments_MonitoringPolicy = 0 ModBmpArguments_POST ModBmpArguments_MonitoringPolicy = 1 ModBmpArguments_BOTH ModBmpArguments_MonitoringPolicy = 2 ) var ModBmpArguments_MonitoringPolicy_name = map[int32]string{ 0: "PRE", 1: "POST", 2: "BOTH", } var ModBmpArguments_MonitoringPolicy_value = map[string]int32{ "PRE": 0, "POST": 1, "BOTH": 2, } func (x ModBmpArguments_MonitoringPolicy) String() string { return proto.EnumName(ModBmpArguments_MonitoringPolicy_name, int32(x)) } func (ModBmpArguments_MonitoringPolicy) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 0} } type ROAResult_ValidationReason int32 const ( ROAResult_UPDATE ROAResult_ValidationReason = 0 ROAResult_WITHDRAW ROAResult_ValidationReason = 1 ROAResult_PEER_DOWN ROAResult_ValidationReason = 2 ROAResult_REVALIDATE ROAResult_ValidationReason = 3 ) var ROAResult_ValidationReason_name = map[int32]string{ 0: "UPDATE", 1: "WITHDRAW", 2: "PEER_DOWN", 3: "REVALIDATE", } var ROAResult_ValidationReason_value = map[string]int32{ "UPDATE": 0, "WITHDRAW": 1, "PEER_DOWN": 2, "REVALIDATE": 3, } func (x ROAResult_ValidationReason) String() string { return proto.EnumName(ROAResult_ValidationReason_name, int32(x)) } func (ROAResult_ValidationReason) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{50, 0} } type ROAResult_ValidationResult int32 const ( ROAResult_NONE ROAResult_ValidationResult = 0 ROAResult_NOT_FOUND ROAResult_ValidationResult = 1 ROAResult_VALID ROAResult_ValidationResult = 2 ROAResult_INVALID ROAResult_ValidationResult = 3 ) var ROAResult_ValidationResult_name = map[int32]string{ 0: "NONE", 1: "NOT_FOUND", 2: "VALID", 3: "INVALID", } var ROAResult_ValidationResult_value = map[string]int32{ "NONE": 0, "NOT_FOUND": 1, "VALID": 2, "INVALID": 3, } func (x ROAResult_ValidationResult) String() string { return proto.EnumName(ROAResult_ValidationResult_name, int32(x)) } func (ROAResult_ValidationResult) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{50, 1} } type Error struct { Code Error_ErrorCode `protobuf:"varint,1,opt,name=code,enum=gobgpapi.Error_ErrorCode" json:"code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=msg" json:"msg,omitempty"` } func (m *Error) Reset() { *m = Error{} } func (m *Error) String() string { return proto.CompactTextString(m) } func (*Error) ProtoMessage() {} func (*Error) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } type Arguments struct { Resource Resource `protobuf:"varint,1,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` Family uint32 `protobuf:"varint,2,opt,name=family" json:"family,omitempty"` Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` } func (m *Arguments) Reset() { *m = Arguments{} } func (m *Arguments) String() string { return proto.CompactTextString(m) } func (*Arguments) ProtoMessage() {} func (*Arguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } type ModPathArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Resource Resource `protobuf:"varint,2,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` Path *Path `protobuf:"bytes,4,opt,name=path" json:"path,omitempty"` // uuid field can be only used when operation is DEL Uuid []byte `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"` // family field is only used when operation is DEL_ALL Family uint32 `protobuf:"varint,6,opt,name=family" json:"family,omitempty"` } func (m *ModPathArguments) Reset() { *m = ModPathArguments{} } func (m *ModPathArguments) String() string { return proto.CompactTextString(m) } func (*ModPathArguments) ProtoMessage() {} func (*ModPathArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } func (m *ModPathArguments) GetPath() *Path { if m != nil { return m.Path } return nil } type ModPathResponse struct { Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (m *ModPathResponse) Reset() { *m = ModPathResponse{} } func (m *ModPathResponse) String() string { return proto.CompactTextString(m) } func (*ModPathResponse) ProtoMessage() {} func (*ModPathResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } type ModPathsArguments struct { Resource Resource `protobuf:"varint,1,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` Paths []*Path `protobuf:"bytes,3,rep,name=paths" json:"paths,omitempty"` } func (m *ModPathsArguments) Reset() { *m = ModPathsArguments{} } func (m *ModPathsArguments) String() string { return proto.CompactTextString(m) } func (*ModPathsArguments) ProtoMessage() {} func (*ModPathsArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } func (m *ModPathsArguments) GetPaths() []*Path { if m != nil { return m.Paths } return nil } type ModNeighborArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Peer *Peer `protobuf:"bytes,2,opt,name=peer" json:"peer,omitempty"` } func (m *ModNeighborArguments) Reset() { *m = ModNeighborArguments{} } func (m *ModNeighborArguments) String() string { return proto.CompactTextString(m) } func (*ModNeighborArguments) ProtoMessage() {} func (*ModNeighborArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } func (m *ModNeighborArguments) GetPeer() *Peer { if m != nil { return m.Peer } return nil } type MrtArguments struct { Resource Resource `protobuf:"varint,1,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` Family uint32 `protobuf:"varint,2,opt,name=family" json:"family,omitempty"` Interval uint64 `protobuf:"varint,3,opt,name=interval" json:"interval,omitempty"` NeighborAddress string `protobuf:"bytes,4,opt,name=neighbor_address" json:"neighbor_address,omitempty"` } func (m *MrtArguments) Reset() { *m = MrtArguments{} } func (m *MrtArguments) String() string { return proto.CompactTextString(m) } func (*MrtArguments) ProtoMessage() {} func (*MrtArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } type ModMrtArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Filename string `protobuf:"bytes,2,opt,name=filename" json:"filename,omitempty"` } func (m *ModMrtArguments) Reset() { *m = ModMrtArguments{} } func (m *ModMrtArguments) String() string { return proto.CompactTextString(m) } func (*ModMrtArguments) ProtoMessage() {} func (*ModMrtArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } type ModBmpArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Address string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"` Port uint32 `protobuf:"varint,3,opt,name=port" json:"port,omitempty"` Type ModBmpArguments_MonitoringPolicy `protobuf:"varint,4,opt,name=type,enum=gobgpapi.ModBmpArguments_MonitoringPolicy" json:"type,omitempty"` } func (m *ModBmpArguments) Reset() { *m = ModBmpArguments{} } func (m *ModBmpArguments) String() string { return proto.CompactTextString(m) } func (*ModBmpArguments) ProtoMessage() {} func (*ModBmpArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } type ModRpkiArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Address string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"` Port uint32 `protobuf:"varint,3,opt,name=port" json:"port,omitempty"` } func (m *ModRpkiArguments) Reset() { *m = ModRpkiArguments{} } func (m *ModRpkiArguments) String() string { return proto.CompactTextString(m) } func (*ModRpkiArguments) ProtoMessage() {} func (*ModRpkiArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } type ModVrfArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Vrf *Vrf `protobuf:"bytes,2,opt,name=vrf" json:"vrf,omitempty"` } func (m *ModVrfArguments) Reset() { *m = ModVrfArguments{} } func (m *ModVrfArguments) String() string { return proto.CompactTextString(m) } func (*ModVrfArguments) ProtoMessage() {} func (*ModVrfArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } func (m *ModVrfArguments) GetVrf() *Vrf { if m != nil { return m.Vrf } return nil } type ModDefinedSetArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Set *DefinedSet `protobuf:"bytes,2,opt,name=set" json:"set,omitempty"` } func (m *ModDefinedSetArguments) Reset() { *m = ModDefinedSetArguments{} } func (m *ModDefinedSetArguments) String() string { return proto.CompactTextString(m) } func (*ModDefinedSetArguments) ProtoMessage() {} func (*ModDefinedSetArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } func (m *ModDefinedSetArguments) GetSet() *DefinedSet { if m != nil { return m.Set } return nil } type ModStatementArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Statement *Statement `protobuf:"bytes,2,opt,name=statement" json:"statement,omitempty"` } func (m *ModStatementArguments) Reset() { *m = ModStatementArguments{} } func (m *ModStatementArguments) String() string { return proto.CompactTextString(m) } func (*ModStatementArguments) ProtoMessage() {} func (*ModStatementArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } func (m *ModStatementArguments) GetStatement() *Statement { if m != nil { return m.Statement } return nil } type ModPolicyArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Policy *Policy `protobuf:"bytes,2,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. // this flag only works with Operation_ADD ReferExistingStatements bool `protobuf:"varint,3,opt,name=refer_existing_statements" json:"refer_existing_statements,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. // this flag means nothing if it is used with Operation_ADD PreserveStatements bool `protobuf:"varint,4,opt,name=preserve_statements" json:"preserve_statements,omitempty"` } func (m *ModPolicyArguments) Reset() { *m = ModPolicyArguments{} } func (m *ModPolicyArguments) String() string { return proto.CompactTextString(m) } func (*ModPolicyArguments) ProtoMessage() {} func (*ModPolicyArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } func (m *ModPolicyArguments) GetPolicy() *Policy { if m != nil { return m.Policy } return nil } type ModPolicyAssignmentArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Assignment *PolicyAssignment `protobuf:"bytes,2,opt,name=assignment" json:"assignment,omitempty"` } func (m *ModPolicyAssignmentArguments) Reset() { *m = ModPolicyAssignmentArguments{} } func (m *ModPolicyAssignmentArguments) String() string { return proto.CompactTextString(m) } func (*ModPolicyAssignmentArguments) ProtoMessage() {} func (*ModPolicyAssignmentArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } func (m *ModPolicyAssignmentArguments) GetAssignment() *PolicyAssignment { if m != nil { return m.Assignment } return nil } type ModGlobalConfigArguments struct { Operation Operation `protobuf:"varint,1,opt,name=operation,enum=gobgpapi.Operation" json:"operation,omitempty"` Global *Global `protobuf:"bytes,2,opt,name=global" json:"global,omitempty"` } func (m *ModGlobalConfigArguments) Reset() { *m = ModGlobalConfigArguments{} } func (m *ModGlobalConfigArguments) String() string { return proto.CompactTextString(m) } func (*ModGlobalConfigArguments) ProtoMessage() {} func (*ModGlobalConfigArguments) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } func (m *ModGlobalConfigArguments) GetGlobal() *Global { if m != nil { return m.Global } return nil } type Path struct { Nlri []byte `protobuf:"bytes,1,opt,name=nlri,proto3" json:"nlri,omitempty"` Pattrs [][]byte `protobuf:"bytes,2,rep,name=pattrs,proto3" json:"pattrs,omitempty"` Age int64 `protobuf:"varint,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:"is_withdraw,omitempty"` Validation int32 `protobuf:"varint,6,opt,name=validation" json:"validation,omitempty"` NoImplicitWithdraw bool `protobuf:"varint,7,opt,name=no_implicit_withdraw" json:"no_implicit_withdraw,omitempty"` Family uint32 `protobuf:"varint,8,opt,name=family" json:"family,omitempty"` SourceAsn uint32 `protobuf:"varint,9,opt,name=source_asn" json:"source_asn,omitempty"` SourceId string `protobuf:"bytes,10,opt,name=source_id" json:"source_id,omitempty"` Filtered bool `protobuf:"varint,11,opt,name=filtered" json:"filtered,omitempty"` Stale bool `protobuf:"varint,12,opt,name=stale" json:"stale,omitempty"` IsFromExternal bool `protobuf:"varint,13,opt,name=is_from_external" json:"is_from_external,omitempty"` NeighborIp string `protobuf:"bytes,14,opt,name=neighbor_ip" json:"neighbor_ip,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{16} } 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"` LongerPrefixes bool `protobuf:"varint,3,opt,name=longer_prefixes" json:"longer_prefixes,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{17} } func (m *Destination) GetPaths() []*Path { if m != nil { return m.Paths } return nil } type Table struct { Type Resource `protobuf:"varint,1,opt,name=type,enum=gobgpapi.Resource" json:"type,omitempty"` Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` Family uint32 `protobuf:"varint,3,opt,name=family" json:"family,omitempty"` Destinations []*Destination `protobuf:"bytes,4,rep,name=destinations" json:"destinations,omitempty"` PostPolicy bool `protobuf:"varint,5,opt,name=post_policy" json:"post_policy,omitempty"` } func (m *Table) Reset() { *m = Table{} } func (m *Table) String() string { return proto.CompactTextString(m) } func (*Table) ProtoMessage() {} func (*Table) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } func (m *Table) GetDestinations() []*Destination { if m != nil { return m.Destinations } return nil } type Peer struct { Families []uint32 `protobuf:"varint,2,rep,name=families" json:"families,omitempty"` ApplyPolicy *ApplyPolicy `protobuf:"bytes,3,opt,name=apply_policy" json:"apply_policy,omitempty"` Conf *PeerConf `protobuf:"bytes,5,opt,name=conf" json:"conf,omitempty"` EbgpMultihop *EbgpMultihop `protobuf:"bytes,6,opt,name=ebgp_multihop" json:"ebgp_multihop,omitempty"` RouteReflector *RouteReflector `protobuf:"bytes,10,opt,name=route_reflector" json:"route_reflector,omitempty"` Info *PeerState `protobuf:"bytes,11,opt,name=info" json:"info,omitempty"` Timers *Timers `protobuf:"bytes,12,opt,name=timers" json:"timers,omitempty"` Transport *Transport `protobuf:"bytes,13,opt,name=transport" json:"transport,omitempty"` RouteServer *RouteServer `protobuf:"bytes,15,opt,name=route_server" json:"route_server,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{19} } 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) GetInfo() *PeerState { if m != nil { return m.Info } 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 } type ApplyPolicy struct { InPolicy *PolicyAssignment `protobuf:"bytes,1,opt,name=in_policy" json:"in_policy,omitempty"` ExportPolicy *PolicyAssignment `protobuf:"bytes,2,opt,name=export_policy" json:"export_policy,omitempty"` ImportPolicy *PolicyAssignment `protobuf:"bytes,3,opt,name=import_policy" 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{20} } 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 PeerConf struct { AuthPassword string `protobuf:"bytes,1,opt,name=auth_password" 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:"local_as,omitempty"` NeighborAddress string `protobuf:"bytes,4,opt,name=neighbor_address" json:"neighbor_address,omitempty"` PeerAs uint32 `protobuf:"varint,5,opt,name=peer_as" json:"peer_as,omitempty"` PeerGroup string `protobuf:"bytes,6,opt,name=peer_group" json:"peer_group,omitempty"` PeerType uint32 `protobuf:"varint,7,opt,name=peer_type" json:"peer_type,omitempty"` RemovePrivateAs uint32 `protobuf:"varint,8,opt,name=remove_private_as" json:"remove_private_as,omitempty"` RouteFlapDamping bool `protobuf:"varint,9,opt,name=route_flap_damping" json:"route_flap_damping,omitempty"` SendCommunity uint32 `protobuf:"varint,10,opt,name=send_community" json:"send_community,omitempty"` RemoteCap [][]byte `protobuf:"bytes,11,rep,name=remote_cap,proto3" json:"remote_cap,omitempty"` LocalCap [][]byte `protobuf:"bytes,12,rep,name=local_cap,proto3" json:"local_cap,omitempty"` Id string `protobuf:"bytes,13,opt,name=id" json:"id,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{21} } type EbgpMultihop struct { Enabled bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"` MultihopTtl uint32 `protobuf:"varint,2,opt,name=multihop_ttl" 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{22} } type RouteReflector struct { RouteReflectorClient bool `protobuf:"varint,1,opt,name=route_reflector_client" json:"route_reflector_client,omitempty"` RouteReflectorClusterId uint32 `protobuf:"varint,2,opt,name=route_reflector_cluster_id" 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{23} } type PeerState struct { AuthPassword string `protobuf:"bytes,1,opt,name=auth_password" 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:"local_as,omitempty"` Messages *Messages `protobuf:"bytes,4,opt,name=messages" json:"messages,omitempty"` NeighborAddress string `protobuf:"bytes,5,opt,name=neighbor_address" json:"neighbor_address,omitempty"` PeerAs uint32 `protobuf:"varint,6,opt,name=peer_as" json:"peer_as,omitempty"` PeerGroup string `protobuf:"bytes,7,opt,name=peer_group" json:"peer_group,omitempty"` PeerType uint32 `protobuf:"varint,8,opt,name=peer_type" 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:"remove_private_as,omitempty"` RouteFlapDamping bool `protobuf:"varint,11,opt,name=route_flap_damping" json:"route_flap_damping,omitempty"` SendCommunity uint32 `protobuf:"varint,12,opt,name=send_community" json:"send_community,omitempty"` SessionState uint32 `protobuf:"varint,13,opt,name=session_state" json:"session_state,omitempty"` SupportedCapabilities []string `protobuf:"bytes,14,rep,name=supported_capabilities" json:"supported_capabilities,omitempty"` BgpState string `protobuf:"bytes,15,opt,name=bgp_state" json:"bgp_state,omitempty"` AdminState string `protobuf:"bytes,16,opt,name=admin_state" json:"admin_state,omitempty"` Received uint32 `protobuf:"varint,17,opt,name=received" json:"received,omitempty"` Accepted uint32 `protobuf:"varint,18,opt,name=accepted" json:"accepted,omitempty"` Advertised uint32 `protobuf:"varint,19,opt,name=advertised" json:"advertised,omitempty"` OutQ uint32 `protobuf:"varint,20,opt,name=out_q" json:"out_q,omitempty"` Flops uint32 `protobuf:"varint,21,opt,name=flops" json:"flops,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{24} } func (m *PeerState) GetMessages() *Messages { if m != nil { return m.Messages } return nil } func (m *PeerState) GetQueues() *Queues { if m != nil { return m.Queues } return nil } 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{25} } 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"` } 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{26} } 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{27} } 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{28} } 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:"connect_retry,omitempty"` HoldTime uint64 `protobuf:"varint,2,opt,name=hold_time" json:"hold_time,omitempty"` KeepaliveInterval uint64 `protobuf:"varint,3,opt,name=keepalive_interval" json:"keepalive_interval,omitempty"` MinimumAdvertisementInterval uint64 `protobuf:"varint,4,opt,name=minimum_advertisement_interval" 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{29} } type TimersState struct { ConnectRetry uint64 `protobuf:"varint,1,opt,name=connect_retry" json:"connect_retry,omitempty"` HoldTime uint64 `protobuf:"varint,2,opt,name=hold_time" json:"hold_time,omitempty"` KeepaliveInterval uint64 `protobuf:"varint,3,opt,name=keepalive_interval" json:"keepalive_interval,omitempty"` MinimumAdvertisementInterval uint64 `protobuf:"varint,4,opt,name=minimum_advertisement_interval" json:"minimum_advertisement_interval,omitempty"` NegotiatedHoldTime uint64 `protobuf:"varint,5,opt,name=negotiated_hold_time" json:"negotiated_hold_time,omitempty"` Uptime uint64 `protobuf:"varint,6,opt,name=uptime" json:"uptime,omitempty"` Downtime uint64 `protobuf:"varint,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{30} } type Transport struct { LocalAddress string `protobuf:"bytes,1,opt,name=local_address" json:"local_address,omitempty"` LocalPort uint32 `protobuf:"varint,2,opt,name=local_port" json:"local_port,omitempty"` MtuDiscovery bool `protobuf:"varint,3,opt,name=mtu_discovery" json:"mtu_discovery,omitempty"` PassiveMode bool `protobuf:"varint,4,opt,name=passive_mode" json:"passive_mode,omitempty"` RemoteAddress string `protobuf:"bytes,5,opt,name=remote_address" json:"remote_address,omitempty"` RemotePort uint32 `protobuf:"varint,6,opt,name=remote_port" json:"remote_port,omitempty"` TcpMss uint32 `protobuf:"varint,7,opt,name=tcp_mss" 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{31} } type RouteServer struct { RouteServerClient bool `protobuf:"varint,1,opt,name=route_server_client" 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{32} } type Prefix struct { IpPrefix string `protobuf:"bytes,1,opt,name=ip_prefix" json:"ip_prefix,omitempty"` MaskLengthMin uint32 `protobuf:"varint,2,opt,name=mask_length_min" json:"mask_length_min,omitempty"` MaskLengthMax uint32 `protobuf:"varint,3,opt,name=mask_length_max" 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{33} } type DefinedSet struct { Type DefinedType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.DefinedType" json:"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{34} } func (m *DefinedSet) GetPrefixes() []*Prefix { if m != nil { return m.Prefixes } return nil } type MatchSet struct { Type MatchType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.MatchType" json:"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{35} } type AsPathLength struct { Type AsPathLengthType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.AsPathLengthType" json:"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{36} } type Conditions struct { PrefixSet *MatchSet `protobuf:"bytes,1,opt,name=prefix_set" json:"prefix_set,omitempty"` NeighborSet *MatchSet `protobuf:"bytes,2,opt,name=neighbor_set" json:"neighbor_set,omitempty"` AsPathLength *AsPathLength `protobuf:"bytes,3,opt,name=as_path_length" json:"as_path_length,omitempty"` AsPathSet *MatchSet `protobuf:"bytes,4,opt,name=as_path_set" json:"as_path_set,omitempty"` CommunitySet *MatchSet `protobuf:"bytes,5,opt,name=community_set" json:"community_set,omitempty"` ExtCommunitySet *MatchSet `protobuf:"bytes,6,opt,name=ext_community_set" json:"ext_community_set,omitempty"` RpkiResult int32 `protobuf:"varint,7,opt,name=rpki_result" json:"rpki_result,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{37} } 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 } type CommunityAction struct { Type CommunityActionType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.CommunityActionType" json:"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{38} } type MedAction struct { Type MedActionType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.MedActionType" json:"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{39} } 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:"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{40} } type Actions struct { RouteAction RouteAction `protobuf:"varint,1,opt,name=route_action,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:"as_prepend,omitempty"` ExtCommunity *CommunityAction `protobuf:"bytes,5,opt,name=ext_community" json:"ext_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{41} } 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 } 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{42} } 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{43} } func (m *Policy) GetStatements() []*Statement { if m != nil { return m.Statements } return nil } type PolicyAssignment struct { Type PolicyType `protobuf:"varint,1,opt,name=type,enum=gobgpapi.PolicyType" json:"type,omitempty"` Resource Resource `protobuf:"varint,2,opt,name=resource,enum=gobgpapi.Resource" json:"resource,omitempty"` Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` Policies []*Policy `protobuf:"bytes,4,rep,name=policies" json:"policies,omitempty"` Default RouteAction `protobuf:"varint,5,opt,name=default,enum=gobgpapi.RouteAction" json:"default,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{44} } func (m *PolicyAssignment) GetPolicies() []*Policy { if m != nil { return m.Policies } return nil } type MrtMessage struct { Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (m *MrtMessage) Reset() { *m = MrtMessage{} } func (m *MrtMessage) String() string { return proto.CompactTextString(m) } func (*MrtMessage) ProtoMessage() {} func (*MrtMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } type RPKIConf struct { Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` RemotePort string `protobuf:"bytes,2,opt,name=remote_port" 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{46} } type RPKIState struct { Uptime int64 `protobuf:"varint,1,opt,name=uptime" json:"uptime,omitempty"` Downtime int64 `protobuf:"varint,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:"record_ipv4,omitempty"` RecordIpv6 uint32 `protobuf:"varint,5,opt,name=record_ipv6" json:"record_ipv6,omitempty"` PrefixIpv4 uint32 `protobuf:"varint,6,opt,name=prefix_ipv4" json:"prefix_ipv4,omitempty"` PrefixIpv6 uint32 `protobuf:"varint,7,opt,name=prefix_ipv6" 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:"received_ipv4,omitempty"` ReceivedIpv6 int64 `protobuf:"varint,10,opt,name=received_ipv6" json:"received_ipv6,omitempty"` SerialNotify int64 `protobuf:"varint,11,opt,name=serial_notify" json:"serial_notify,omitempty"` CacheReset int64 `protobuf:"varint,12,opt,name=cache_reset" json:"cache_reset,omitempty"` CacheResponse int64 `protobuf:"varint,13,opt,name=cache_response" json:"cache_response,omitempty"` EndOfData int64 `protobuf:"varint,14,opt,name=end_of_data" 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:"serial_query,omitempty"` ResetQuery int64 `protobuf:"varint,17,opt,name=reset_query" 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{47} } 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{48} } 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 } 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{49} } func (m *ROA) GetConf() *RPKIConf { if m != nil { return m.Conf } return nil } type ROAResult struct { Reason ROAResult_ValidationReason `protobuf:"varint,1,opt,name=reason,enum=gobgpapi.ROAResult_ValidationReason" json:"reason,omitempty"` Address string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"` Timestamp int64 `protobuf:"varint,3,opt,name=timestamp" json:"timestamp,omitempty"` AspathAttr []byte `protobuf:"bytes,4,opt,name=aspath_attr,proto3" json:"aspath_attr,omitempty"` OriginAs uint32 `protobuf:"varint,5,opt,name=origin_as" json:"origin_as,omitempty"` Prefix string `protobuf:"bytes,6,opt,name=prefix" json:"prefix,omitempty"` OldResult ROAResult_ValidationResult `protobuf:"varint,7,opt,name=old_result,enum=gobgpapi.ROAResult_ValidationResult" json:"old_result,omitempty"` NewResult ROAResult_ValidationResult `protobuf:"varint,8,opt,name=new_result,enum=gobgpapi.ROAResult_ValidationResult" json:"new_result,omitempty"` Roas []*ROA `protobuf:"bytes,9,rep,name=roas" json:"roas,omitempty"` } func (m *ROAResult) Reset() { *m = ROAResult{} } func (m *ROAResult) String() string { return proto.CompactTextString(m) } func (*ROAResult) ProtoMessage() {} func (*ROAResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } func (m *ROAResult) GetRoas() []*ROA { if m != nil { return m.Roas } return nil } type Vrf struct { Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Rd []byte `protobuf:"bytes,2,opt,name=rd,proto3" json:"rd,omitempty"` ImportRt [][]byte `protobuf:"bytes,3,rep,name=import_rt,proto3" json:"import_rt,omitempty"` ExportRt [][]byte `protobuf:"bytes,4,rep,name=export_rt,proto3" json:"export_rt,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{51} } type Global struct { As uint32 `protobuf:"varint,1,opt,name=as" json:"as,omitempty"` RouterId string `protobuf:"bytes,2,opt,name=router_id" json:"router_id,omitempty"` ListenPort int32 `protobuf:"varint,3,opt,name=listen_port" json:"listen_port,omitempty"` ListenAddresses []string `protobuf:"bytes,4,rep,name=listen_addresses" json:"listen_addresses,omitempty"` Families []uint32 `protobuf:"varint,5,rep,name=families" json:"families,omitempty"` MplsLabelMin uint32 `protobuf:"varint,6,opt,name=mpls_label_min" json:"mpls_label_min,omitempty"` MplsLabelMax uint32 `protobuf:"varint,7,opt,name=mpls_label_max" json:"mpls_label_max,omitempty"` Collector bool `protobuf:"varint,8,opt,name=collector" json:"collector,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{52} } func init() { proto.RegisterType((*Error)(nil), "gobgpapi.Error") proto.RegisterType((*Arguments)(nil), "gobgpapi.Arguments") proto.RegisterType((*ModPathArguments)(nil), "gobgpapi.ModPathArguments") proto.RegisterType((*ModPathResponse)(nil), "gobgpapi.ModPathResponse") proto.RegisterType((*ModPathsArguments)(nil), "gobgpapi.ModPathsArguments") proto.RegisterType((*ModNeighborArguments)(nil), "gobgpapi.ModNeighborArguments") proto.RegisterType((*MrtArguments)(nil), "gobgpapi.MrtArguments") proto.RegisterType((*ModMrtArguments)(nil), "gobgpapi.ModMrtArguments") proto.RegisterType((*ModBmpArguments)(nil), "gobgpapi.ModBmpArguments") proto.RegisterType((*ModRpkiArguments)(nil), "gobgpapi.ModRpkiArguments") proto.RegisterType((*ModVrfArguments)(nil), "gobgpapi.ModVrfArguments") proto.RegisterType((*ModDefinedSetArguments)(nil), "gobgpapi.ModDefinedSetArguments") proto.RegisterType((*ModStatementArguments)(nil), "gobgpapi.ModStatementArguments") proto.RegisterType((*ModPolicyArguments)(nil), "gobgpapi.ModPolicyArguments") proto.RegisterType((*ModPolicyAssignmentArguments)(nil), "gobgpapi.ModPolicyAssignmentArguments") proto.RegisterType((*ModGlobalConfigArguments)(nil), "gobgpapi.ModGlobalConfigArguments") proto.RegisterType((*Path)(nil), "gobgpapi.Path") proto.RegisterType((*Destination)(nil), "gobgpapi.Destination") proto.RegisterType((*Table)(nil), "gobgpapi.Table") proto.RegisterType((*Peer)(nil), "gobgpapi.Peer") proto.RegisterType((*ApplyPolicy)(nil), "gobgpapi.ApplyPolicy") proto.RegisterType((*PeerConf)(nil), "gobgpapi.PeerConf") 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((*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((*Actions)(nil), "gobgpapi.Actions") proto.RegisterType((*Statement)(nil), "gobgpapi.Statement") proto.RegisterType((*Policy)(nil), "gobgpapi.Policy") proto.RegisterType((*PolicyAssignment)(nil), "gobgpapi.PolicyAssignment") proto.RegisterType((*MrtMessage)(nil), "gobgpapi.MrtMessage") proto.RegisterType((*RPKIConf)(nil), "gobgpapi.RPKIConf") proto.RegisterType((*RPKIState)(nil), "gobgpapi.RPKIState") proto.RegisterType((*RPKI)(nil), "gobgpapi.RPKI") proto.RegisterType((*ROA)(nil), "gobgpapi.ROA") proto.RegisterType((*ROAResult)(nil), "gobgpapi.ROAResult") proto.RegisterType((*Vrf)(nil), "gobgpapi.Vrf") proto.RegisterType((*Global)(nil), "gobgpapi.Global") proto.RegisterEnum("gobgpapi.Resource", Resource_name, Resource_value) proto.RegisterEnum("gobgpapi.Operation", Operation_name, Operation_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.PolicyType", PolicyType_name, PolicyType_value) proto.RegisterEnum("gobgpapi.Error_ErrorCode", Error_ErrorCode_name, Error_ErrorCode_value) proto.RegisterEnum("gobgpapi.ModBmpArguments_MonitoringPolicy", ModBmpArguments_MonitoringPolicy_name, ModBmpArguments_MonitoringPolicy_value) proto.RegisterEnum("gobgpapi.ROAResult_ValidationReason", ROAResult_ValidationReason_name, ROAResult_ValidationReason_value) proto.RegisterEnum("gobgpapi.ROAResult_ValidationResult", ROAResult_ValidationResult_name, ROAResult_ValidationResult_value) } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ grpc.ClientConn // Client API for GobgpApi service type GobgpApiClient interface { GetGlobalConfig(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Global, error) ModGlobalConfig(ctx context.Context, in *ModGlobalConfigArguments, opts ...grpc.CallOption) (*Error, error) GetNeighbors(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_GetNeighborsClient, error) GetNeighbor(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Peer, error) ModNeighbor(ctx context.Context, in *ModNeighborArguments, opts ...grpc.CallOption) (*Error, error) GetRib(ctx context.Context, in *Table, opts ...grpc.CallOption) (*Table, error) Reset(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) SoftReset(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) SoftResetIn(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) SoftResetOut(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) Shutdown(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) Enable(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) Disable(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) ModPath(ctx context.Context, in *ModPathArguments, opts ...grpc.CallOption) (*ModPathResponse, error) ModPaths(ctx context.Context, opts ...grpc.CallOption) (GobgpApi_ModPathsClient, error) MonitorRib(ctx context.Context, in *Table, opts ...grpc.CallOption) (GobgpApi_MonitorRibClient, error) MonitorBestChanged(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_MonitorBestChangedClient, error) MonitorPeerState(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_MonitorPeerStateClient, error) MonitorROAValidation(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_MonitorROAValidationClient, error) GetMrt(ctx context.Context, in *MrtArguments, opts ...grpc.CallOption) (GobgpApi_GetMrtClient, error) ModMrt(ctx context.Context, in *ModMrtArguments, opts ...grpc.CallOption) (*Error, error) ModBmp(ctx context.Context, in *ModBmpArguments, opts ...grpc.CallOption) (*Error, error) GetRPKI(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_GetRPKIClient, error) ModRPKI(ctx context.Context, in *ModRpkiArguments, opts ...grpc.CallOption) (*Error, error) GetROA(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_GetROAClient, error) GetVrfs(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_GetVrfsClient, error) ModVrf(ctx context.Context, in *ModVrfArguments, opts ...grpc.CallOption) (*Error, error) GetDefinedSet(ctx context.Context, in *DefinedSet, opts ...grpc.CallOption) (*DefinedSet, error) GetDefinedSets(ctx context.Context, in *DefinedSet, opts ...grpc.CallOption) (GobgpApi_GetDefinedSetsClient, error) ModDefinedSet(ctx context.Context, in *ModDefinedSetArguments, opts ...grpc.CallOption) (*Error, error) GetStatement(ctx context.Context, in *Statement, opts ...grpc.CallOption) (*Statement, error) GetStatements(ctx context.Context, in *Statement, opts ...grpc.CallOption) (GobgpApi_GetStatementsClient, error) ModStatement(ctx context.Context, in *ModStatementArguments, opts ...grpc.CallOption) (*Error, error) GetPolicy(ctx context.Context, in *Policy, opts ...grpc.CallOption) (*Policy, error) GetPolicies(ctx context.Context, in *Policy, opts ...grpc.CallOption) (GobgpApi_GetPoliciesClient, error) ModPolicy(ctx context.Context, in *ModPolicyArguments, opts ...grpc.CallOption) (*Error, error) GetPolicyAssignment(ctx context.Context, in *PolicyAssignment, opts ...grpc.CallOption) (*PolicyAssignment, error) ModPolicyAssignment(ctx context.Context, in *ModPolicyAssignmentArguments, opts ...grpc.CallOption) (*Error, error) } type gobgpApiClient struct { cc *grpc.ClientConn } func NewGobgpApiClient(cc *grpc.ClientConn) GobgpApiClient { return &gobgpApiClient{cc} } func (c *gobgpApiClient) GetGlobalConfig(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Global, error) { out := new(Global) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetGlobalConfig", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) ModGlobalConfig(ctx context.Context, in *ModGlobalConfigArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModGlobalConfig", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetNeighbors(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_GetNeighborsClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[0], c.cc, "/gobgpapi.GobgpApi/GetNeighbors", opts...) if err != nil { return nil, err } x := &gobgpApiGetNeighborsClient{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_GetNeighborsClient interface { Recv() (*Peer, error) grpc.ClientStream } type gobgpApiGetNeighborsClient struct { grpc.ClientStream } func (x *gobgpApiGetNeighborsClient) Recv() (*Peer, error) { m := new(Peer) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) GetNeighbor(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Peer, error) { out := new(Peer) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetNeighbor", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) ModNeighbor(ctx context.Context, in *ModNeighborArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModNeighbor", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetRib(ctx context.Context, in *Table, opts ...grpc.CallOption) (*Table, error) { out := new(Table) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetRib", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) Reset(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/Reset", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) SoftReset(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/SoftReset", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) SoftResetIn(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/SoftResetIn", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) SoftResetOut(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/SoftResetOut", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) Shutdown(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/Shutdown", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) Enable(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/Enable", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) Disable(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/Disable", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) ModPath(ctx context.Context, in *ModPathArguments, opts ...grpc.CallOption) (*ModPathResponse, error) { out := new(ModPathResponse) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModPath", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) ModPaths(ctx context.Context, opts ...grpc.CallOption) (GobgpApi_ModPathsClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[1], c.cc, "/gobgpapi.GobgpApi/ModPaths", opts...) if err != nil { return nil, err } x := &gobgpApiModPathsClient{stream} return x, nil } type GobgpApi_ModPathsClient interface { Send(*ModPathsArguments) error CloseAndRecv() (*Error, error) grpc.ClientStream } type gobgpApiModPathsClient struct { grpc.ClientStream } func (x *gobgpApiModPathsClient) Send(m *ModPathsArguments) error { return x.ClientStream.SendMsg(m) } func (x *gobgpApiModPathsClient) CloseAndRecv() (*Error, error) { if err := x.ClientStream.CloseSend(); err != nil { return nil, err } m := new(Error) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) MonitorRib(ctx context.Context, in *Table, opts ...grpc.CallOption) (GobgpApi_MonitorRibClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[2], c.cc, "/gobgpapi.GobgpApi/MonitorRib", opts...) if err != nil { return nil, err } x := &gobgpApiMonitorRibClient{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_MonitorRibClient interface { Recv() (*Destination, error) grpc.ClientStream } type gobgpApiMonitorRibClient struct { grpc.ClientStream } func (x *gobgpApiMonitorRibClient) Recv() (*Destination, error) { m := new(Destination) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) MonitorBestChanged(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_MonitorBestChangedClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[3], c.cc, "/gobgpapi.GobgpApi/MonitorBestChanged", opts...) if err != nil { return nil, err } x := &gobgpApiMonitorBestChangedClient{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_MonitorBestChangedClient interface { Recv() (*Destination, error) grpc.ClientStream } type gobgpApiMonitorBestChangedClient struct { grpc.ClientStream } func (x *gobgpApiMonitorBestChangedClient) Recv() (*Destination, error) { m := new(Destination) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) MonitorPeerState(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_MonitorPeerStateClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[4], c.cc, "/gobgpapi.GobgpApi/MonitorPeerState", opts...) if err != nil { return nil, err } x := &gobgpApiMonitorPeerStateClient{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_MonitorPeerStateClient interface { Recv() (*Peer, error) grpc.ClientStream } type gobgpApiMonitorPeerStateClient struct { grpc.ClientStream } func (x *gobgpApiMonitorPeerStateClient) Recv() (*Peer, error) { m := new(Peer) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) MonitorROAValidation(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_MonitorROAValidationClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[5], c.cc, "/gobgpapi.GobgpApi/MonitorROAValidation", opts...) if err != nil { return nil, err } x := &gobgpApiMonitorROAValidationClient{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_MonitorROAValidationClient interface { Recv() (*ROAResult, error) grpc.ClientStream } type gobgpApiMonitorROAValidationClient struct { grpc.ClientStream } func (x *gobgpApiMonitorROAValidationClient) Recv() (*ROAResult, error) { m := new(ROAResult) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) GetMrt(ctx context.Context, in *MrtArguments, opts ...grpc.CallOption) (GobgpApi_GetMrtClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[6], c.cc, "/gobgpapi.GobgpApi/GetMrt", opts...) if err != nil { return nil, err } x := &gobgpApiGetMrtClient{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_GetMrtClient interface { Recv() (*MrtMessage, error) grpc.ClientStream } type gobgpApiGetMrtClient struct { grpc.ClientStream } func (x *gobgpApiGetMrtClient) Recv() (*MrtMessage, error) { m := new(MrtMessage) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) ModMrt(ctx context.Context, in *ModMrtArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModMrt", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) ModBmp(ctx context.Context, in *ModBmpArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModBmp", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetRPKI(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_GetRPKIClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[7], c.cc, "/gobgpapi.GobgpApi/GetRPKI", opts...) if err != nil { return nil, err } x := &gobgpApiGetRPKIClient{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_GetRPKIClient interface { Recv() (*RPKI, error) grpc.ClientStream } type gobgpApiGetRPKIClient struct { grpc.ClientStream } func (x *gobgpApiGetRPKIClient) Recv() (*RPKI, error) { m := new(RPKI) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) ModRPKI(ctx context.Context, in *ModRpkiArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModRPKI", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetROA(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_GetROAClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[8], c.cc, "/gobgpapi.GobgpApi/GetROA", opts...) if err != nil { return nil, err } x := &gobgpApiGetROAClient{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_GetROAClient interface { Recv() (*ROA, error) grpc.ClientStream } type gobgpApiGetROAClient struct { grpc.ClientStream } func (x *gobgpApiGetROAClient) Recv() (*ROA, error) { m := new(ROA) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) GetVrfs(ctx context.Context, in *Arguments, opts ...grpc.CallOption) (GobgpApi_GetVrfsClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[9], c.cc, "/gobgpapi.GobgpApi/GetVrfs", opts...) if err != nil { return nil, err } x := &gobgpApiGetVrfsClient{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_GetVrfsClient interface { Recv() (*Vrf, error) grpc.ClientStream } type gobgpApiGetVrfsClient struct { grpc.ClientStream } func (x *gobgpApiGetVrfsClient) Recv() (*Vrf, error) { m := new(Vrf) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) ModVrf(ctx context.Context, in *ModVrfArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModVrf", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetDefinedSet(ctx context.Context, in *DefinedSet, opts ...grpc.CallOption) (*DefinedSet, error) { out := new(DefinedSet) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetDefinedSet", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetDefinedSets(ctx context.Context, in *DefinedSet, opts ...grpc.CallOption) (GobgpApi_GetDefinedSetsClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[10], c.cc, "/gobgpapi.GobgpApi/GetDefinedSets", opts...) if err != nil { return nil, err } x := &gobgpApiGetDefinedSetsClient{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_GetDefinedSetsClient interface { Recv() (*DefinedSet, error) grpc.ClientStream } type gobgpApiGetDefinedSetsClient struct { grpc.ClientStream } func (x *gobgpApiGetDefinedSetsClient) Recv() (*DefinedSet, error) { m := new(DefinedSet) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) ModDefinedSet(ctx context.Context, in *ModDefinedSetArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModDefinedSet", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetStatement(ctx context.Context, in *Statement, opts ...grpc.CallOption) (*Statement, error) { out := new(Statement) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetStatement", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetStatements(ctx context.Context, in *Statement, opts ...grpc.CallOption) (GobgpApi_GetStatementsClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[11], c.cc, "/gobgpapi.GobgpApi/GetStatements", opts...) if err != nil { return nil, err } x := &gobgpApiGetStatementsClient{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_GetStatementsClient interface { Recv() (*Statement, error) grpc.ClientStream } type gobgpApiGetStatementsClient struct { grpc.ClientStream } func (x *gobgpApiGetStatementsClient) Recv() (*Statement, error) { m := new(Statement) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) ModStatement(ctx context.Context, in *ModStatementArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModStatement", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetPolicy(ctx context.Context, in *Policy, opts ...grpc.CallOption) (*Policy, error) { out := new(Policy) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetPolicy", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetPolicies(ctx context.Context, in *Policy, opts ...grpc.CallOption) (GobgpApi_GetPoliciesClient, error) { stream, err := grpc.NewClientStream(ctx, &_GobgpApi_serviceDesc.Streams[12], c.cc, "/gobgpapi.GobgpApi/GetPolicies", opts...) if err != nil { return nil, err } x := &gobgpApiGetPoliciesClient{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_GetPoliciesClient interface { Recv() (*Policy, error) grpc.ClientStream } type gobgpApiGetPoliciesClient struct { grpc.ClientStream } func (x *gobgpApiGetPoliciesClient) Recv() (*Policy, error) { m := new(Policy) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *gobgpApiClient) ModPolicy(ctx context.Context, in *ModPolicyArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModPolicy", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) GetPolicyAssignment(ctx context.Context, in *PolicyAssignment, opts ...grpc.CallOption) (*PolicyAssignment, error) { out := new(PolicyAssignment) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/GetPolicyAssignment", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } func (c *gobgpApiClient) ModPolicyAssignment(ctx context.Context, in *ModPolicyAssignmentArguments, opts ...grpc.CallOption) (*Error, error) { out := new(Error) err := grpc.Invoke(ctx, "/gobgpapi.GobgpApi/ModPolicyAssignment", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } // Server API for GobgpApi service type GobgpApiServer interface { GetGlobalConfig(context.Context, *Arguments) (*Global, error) ModGlobalConfig(context.Context, *ModGlobalConfigArguments) (*Error, error) GetNeighbors(*Arguments, GobgpApi_GetNeighborsServer) error GetNeighbor(context.Context, *Arguments) (*Peer, error) ModNeighbor(context.Context, *ModNeighborArguments) (*Error, error) GetRib(context.Context, *Table) (*Table, error) Reset(context.Context, *Arguments) (*Error, error) SoftReset(context.Context, *Arguments) (*Error, error) SoftResetIn(context.Context, *Arguments) (*Error, error) SoftResetOut(context.Context, *Arguments) (*Error, error) Shutdown(context.Context, *Arguments) (*Error, error) Enable(context.Context, *Arguments) (*Error, error) Disable(context.Context, *Arguments) (*Error, error) ModPath(context.Context, *ModPathArguments) (*ModPathResponse, error) ModPaths(GobgpApi_ModPathsServer) error MonitorRib(*Table, GobgpApi_MonitorRibServer) error MonitorBestChanged(*Arguments, GobgpApi_MonitorBestChangedServer) error MonitorPeerState(*Arguments, GobgpApi_MonitorPeerStateServer) error MonitorROAValidation(*Arguments, GobgpApi_MonitorROAValidationServer) error GetMrt(*MrtArguments, GobgpApi_GetMrtServer) error ModMrt(context.Context, *ModMrtArguments) (*Error, error) ModBmp(context.Context, *ModBmpArguments) (*Error, error) GetRPKI(*Arguments, GobgpApi_GetRPKIServer) error ModRPKI(context.Context, *ModRpkiArguments) (*Error, error) GetROA(*Arguments, GobgpApi_GetROAServer) error GetVrfs(*Arguments, GobgpApi_GetVrfsServer) error ModVrf(context.Context, *ModVrfArguments) (*Error, error) GetDefinedSet(context.Context, *DefinedSet) (*DefinedSet, error) GetDefinedSets(*DefinedSet, GobgpApi_GetDefinedSetsServer) error ModDefinedSet(context.Context, *ModDefinedSetArguments) (*Error, error) GetStatement(context.Context, *Statement) (*Statement, error) GetStatements(*Statement, GobgpApi_GetStatementsServer) error ModStatement(context.Context, *ModStatementArguments) (*Error, error) GetPolicy(context.Context, *Policy) (*Policy, error) GetPolicies(*Policy, GobgpApi_GetPoliciesServer) error ModPolicy(context.Context, *ModPolicyArguments) (*Error, error) GetPolicyAssignment(context.Context, *PolicyAssignment) (*PolicyAssignment, error) ModPolicyAssignment(context.Context, *ModPolicyAssignmentArguments) (*Error, error) } func RegisterGobgpApiServer(s *grpc.Server, srv GobgpApiServer) { s.RegisterService(&_GobgpApi_serviceDesc, srv) } func _GobgpApi_GetGlobalConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Arguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).GetGlobalConfig(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_ModGlobalConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModGlobalConfigArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModGlobalConfig(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetNeighbors_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Arguments) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).GetNeighbors(m, &gobgpApiGetNeighborsServer{stream}) } type GobgpApi_GetNeighborsServer interface { Send(*Peer) error grpc.ServerStream } type gobgpApiGetNeighborsServer struct { grpc.ServerStream } func (x *gobgpApiGetNeighborsServer) Send(m *Peer) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_GetNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Arguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).GetNeighbor(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_ModNeighbor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModNeighborArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModNeighbor(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetRib_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Table) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).GetRib(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_Reset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Arguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).Reset(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_SoftReset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Arguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).SoftReset(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_SoftResetIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Arguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).SoftResetIn(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_SoftResetOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Arguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).SoftResetOut(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_Shutdown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Arguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).Shutdown(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_Enable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Arguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).Enable(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_Disable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Arguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).Disable(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_ModPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModPathArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModPath(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_ModPaths_Handler(srv interface{}, stream grpc.ServerStream) error { return srv.(GobgpApiServer).ModPaths(&gobgpApiModPathsServer{stream}) } type GobgpApi_ModPathsServer interface { SendAndClose(*Error) error Recv() (*ModPathsArguments, error) grpc.ServerStream } type gobgpApiModPathsServer struct { grpc.ServerStream } func (x *gobgpApiModPathsServer) SendAndClose(m *Error) error { return x.ServerStream.SendMsg(m) } func (x *gobgpApiModPathsServer) Recv() (*ModPathsArguments, error) { m := new(ModPathsArguments) if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func _GobgpApi_MonitorRib_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Table) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).MonitorRib(m, &gobgpApiMonitorRibServer{stream}) } type GobgpApi_MonitorRibServer interface { Send(*Destination) error grpc.ServerStream } type gobgpApiMonitorRibServer struct { grpc.ServerStream } func (x *gobgpApiMonitorRibServer) Send(m *Destination) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_MonitorBestChanged_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Arguments) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).MonitorBestChanged(m, &gobgpApiMonitorBestChangedServer{stream}) } type GobgpApi_MonitorBestChangedServer interface { Send(*Destination) error grpc.ServerStream } type gobgpApiMonitorBestChangedServer struct { grpc.ServerStream } func (x *gobgpApiMonitorBestChangedServer) Send(m *Destination) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_MonitorPeerState_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Arguments) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).MonitorPeerState(m, &gobgpApiMonitorPeerStateServer{stream}) } type GobgpApi_MonitorPeerStateServer interface { Send(*Peer) error grpc.ServerStream } type gobgpApiMonitorPeerStateServer struct { grpc.ServerStream } func (x *gobgpApiMonitorPeerStateServer) Send(m *Peer) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_MonitorROAValidation_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Arguments) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).MonitorROAValidation(m, &gobgpApiMonitorROAValidationServer{stream}) } type GobgpApi_MonitorROAValidationServer interface { Send(*ROAResult) error grpc.ServerStream } type gobgpApiMonitorROAValidationServer struct { grpc.ServerStream } func (x *gobgpApiMonitorROAValidationServer) Send(m *ROAResult) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_GetMrt_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(MrtArguments) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).GetMrt(m, &gobgpApiGetMrtServer{stream}) } type GobgpApi_GetMrtServer interface { Send(*MrtMessage) error grpc.ServerStream } type gobgpApiGetMrtServer struct { grpc.ServerStream } func (x *gobgpApiGetMrtServer) Send(m *MrtMessage) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_ModMrt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModMrtArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModMrt(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_ModBmp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModBmpArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModBmp(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetRPKI_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Arguments) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).GetRPKI(m, &gobgpApiGetRPKIServer{stream}) } type GobgpApi_GetRPKIServer interface { Send(*RPKI) error grpc.ServerStream } type gobgpApiGetRPKIServer struct { grpc.ServerStream } func (x *gobgpApiGetRPKIServer) Send(m *RPKI) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_ModRPKI_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModRpkiArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModRPKI(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetROA_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Arguments) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).GetROA(m, &gobgpApiGetROAServer{stream}) } type GobgpApi_GetROAServer interface { Send(*ROA) error grpc.ServerStream } type gobgpApiGetROAServer struct { grpc.ServerStream } func (x *gobgpApiGetROAServer) Send(m *ROA) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_GetVrfs_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Arguments) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).GetVrfs(m, &gobgpApiGetVrfsServer{stream}) } type GobgpApi_GetVrfsServer interface { Send(*Vrf) error grpc.ServerStream } type gobgpApiGetVrfsServer struct { grpc.ServerStream } func (x *gobgpApiGetVrfsServer) Send(m *Vrf) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_ModVrf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModVrfArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModVrf(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetDefinedSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(DefinedSet) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).GetDefinedSet(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetDefinedSets_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(DefinedSet) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).GetDefinedSets(m, &gobgpApiGetDefinedSetsServer{stream}) } type GobgpApi_GetDefinedSetsServer interface { Send(*DefinedSet) error grpc.ServerStream } type gobgpApiGetDefinedSetsServer struct { grpc.ServerStream } func (x *gobgpApiGetDefinedSetsServer) Send(m *DefinedSet) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_ModDefinedSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModDefinedSetArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModDefinedSet(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetStatement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Statement) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).GetStatement(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetStatements_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Statement) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).GetStatements(m, &gobgpApiGetStatementsServer{stream}) } type GobgpApi_GetStatementsServer interface { Send(*Statement) error grpc.ServerStream } type gobgpApiGetStatementsServer struct { grpc.ServerStream } func (x *gobgpApiGetStatementsServer) Send(m *Statement) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_ModStatement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModStatementArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModStatement(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(Policy) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).GetPolicy(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetPolicies_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(Policy) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GobgpApiServer).GetPolicies(m, &gobgpApiGetPoliciesServer{stream}) } type GobgpApi_GetPoliciesServer interface { Send(*Policy) error grpc.ServerStream } type gobgpApiGetPoliciesServer struct { grpc.ServerStream } func (x *gobgpApiGetPoliciesServer) Send(m *Policy) error { return x.ServerStream.SendMsg(m) } func _GobgpApi_ModPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModPolicyArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModPolicy(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_GetPolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(PolicyAssignment) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).GetPolicyAssignment(ctx, in) if err != nil { return nil, err } return out, nil } func _GobgpApi_ModPolicyAssignment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { in := new(ModPolicyAssignmentArguments) if err := dec(in); err != nil { return nil, err } out, err := srv.(GobgpApiServer).ModPolicyAssignment(ctx, in) if err != nil { return nil, err } return out, nil } var _GobgpApi_serviceDesc = grpc.ServiceDesc{ ServiceName: "gobgpapi.GobgpApi", HandlerType: (*GobgpApiServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "GetGlobalConfig", Handler: _GobgpApi_GetGlobalConfig_Handler, }, { MethodName: "ModGlobalConfig", Handler: _GobgpApi_ModGlobalConfig_Handler, }, { MethodName: "GetNeighbor", Handler: _GobgpApi_GetNeighbor_Handler, }, { MethodName: "ModNeighbor", Handler: _GobgpApi_ModNeighbor_Handler, }, { MethodName: "GetRib", Handler: _GobgpApi_GetRib_Handler, }, { MethodName: "Reset", Handler: _GobgpApi_Reset_Handler, }, { MethodName: "SoftReset", Handler: _GobgpApi_SoftReset_Handler, }, { MethodName: "SoftResetIn", Handler: _GobgpApi_SoftResetIn_Handler, }, { MethodName: "SoftResetOut", Handler: _GobgpApi_SoftResetOut_Handler, }, { MethodName: "Shutdown", Handler: _GobgpApi_Shutdown_Handler, }, { MethodName: "Enable", Handler: _GobgpApi_Enable_Handler, }, { MethodName: "Disable", Handler: _GobgpApi_Disable_Handler, }, { MethodName: "ModPath", Handler: _GobgpApi_ModPath_Handler, }, { MethodName: "ModMrt", Handler: _GobgpApi_ModMrt_Handler, }, { MethodName: "ModBmp", Handler: _GobgpApi_ModBmp_Handler, }, { MethodName: "ModRPKI", Handler: _GobgpApi_ModRPKI_Handler, }, { MethodName: "ModVrf", Handler: _GobgpApi_ModVrf_Handler, }, { MethodName: "GetDefinedSet", Handler: _GobgpApi_GetDefinedSet_Handler, }, { MethodName: "ModDefinedSet", Handler: _GobgpApi_ModDefinedSet_Handler, }, { MethodName: "GetStatement", Handler: _GobgpApi_GetStatement_Handler, }, { MethodName: "ModStatement", Handler: _GobgpApi_ModStatement_Handler, }, { MethodName: "GetPolicy", Handler: _GobgpApi_GetPolicy_Handler, }, { MethodName: "ModPolicy", Handler: _GobgpApi_ModPolicy_Handler, }, { MethodName: "GetPolicyAssignment", Handler: _GobgpApi_GetPolicyAssignment_Handler, }, { MethodName: "ModPolicyAssignment", Handler: _GobgpApi_ModPolicyAssignment_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "GetNeighbors", Handler: _GobgpApi_GetNeighbors_Handler, ServerStreams: true, }, { StreamName: "ModPaths", Handler: _GobgpApi_ModPaths_Handler, ClientStreams: true, }, { StreamName: "MonitorRib", Handler: _GobgpApi_MonitorRib_Handler, ServerStreams: true, }, { StreamName: "MonitorBestChanged", Handler: _GobgpApi_MonitorBestChanged_Handler, ServerStreams: true, }, { StreamName: "MonitorPeerState", Handler: _GobgpApi_MonitorPeerState_Handler, ServerStreams: true, }, { StreamName: "MonitorROAValidation", Handler: _GobgpApi_MonitorROAValidation_Handler, ServerStreams: true, }, { StreamName: "GetMrt", Handler: _GobgpApi_GetMrt_Handler, ServerStreams: true, }, { StreamName: "GetRPKI", Handler: _GobgpApi_GetRPKI_Handler, ServerStreams: true, }, { StreamName: "GetROA", Handler: _GobgpApi_GetROA_Handler, ServerStreams: true, }, { StreamName: "GetVrfs", Handler: _GobgpApi_GetVrfs_Handler, ServerStreams: true, }, { StreamName: "GetDefinedSets", Handler: _GobgpApi_GetDefinedSets_Handler, ServerStreams: true, }, { StreamName: "GetStatements", Handler: _GobgpApi_GetStatements_Handler, ServerStreams: true, }, { StreamName: "GetPolicies", Handler: _GobgpApi_GetPolicies_Handler, ServerStreams: true, }, }, } var fileDescriptor0 = []byte{ // 3593 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xbc, 0x5a, 0x4f, 0x73, 0xdb, 0x56, 0x92, 0x37, 0xff, 0x8a, 0x6c, 0x92, 0x12, 0x05, 0xc9, 0x0e, 0xcd, 0xfc, 0x73, 0xb0, 0x59, 0xdb, 0x51, 0x62, 0xc7, 0x71, 0x12, 0x6f, 0x2a, 0xc9, 0xd6, 0x2e, 0x45, 0xc2, 0x36, 0x63, 0x49, 0x64, 0x28, 0x4a, 0x49, 0xaa, 0xb6, 0x0a, 0x05, 0x91, 0x20, 0x85, 0x35, 0x49, 0x20, 0x00, 0x68, 0x5b, 0x55, 0x7b, 0xdb, 0xd3, 0x1c, 0xe6, 0x1b, 0x4c, 0x4d, 0xd5, 0xcc, 0x61, 0x0e, 0x33, 0xf7, 0xb9, 0xcc, 0x65, 0xaa, 0xe6, 0x7b, 0xcc, 0x65, 0x0e, 0xa9, 0x9a, 0x4f, 0x31, 0xdd, 0xfd, 0x1e, 0x08, 0x80, 0x84, 0x6c, 0xc9, 0x99, 0x9a, 0x8b, 0x44, 0x3c, 0xbc, 0xee, 0xd7, 0xaf, 0xff, 0xfc, 0xba, 0xfb, 0xe1, 0x41, 0x69, 0x6c, 0x9f, 0x8c, 0x9d, 0xbb, 0x8e, 0x6b, 0xfb, 0xb6, 0x52, 0xe0, 0x07, 0xc3, 0xb1, 0x54, 0x03, 0x72, 0x9a, 0xeb, 0xda, 0xae, 0x72, 0x0b, 0xb2, 0x03, 0x7b, 0x68, 0xd6, 0x52, 0x37, 0x52, 0xb7, 0xd7, 0xef, 0x5f, 0xbf, 0x1b, 0xcc, 0xb8, 0xcb, 0xaf, 0xc5, 0xdf, 0x26, 0x4e, 0x50, 0x4a, 0x90, 0x99, 0x7a, 0xe3, 0x5a, 0x1a, 0xe7, 0x15, 0x55, 0x15, 0x8a, 0xd1, 0x37, 0x6b, 0x87, 0x47, 0xcd, 0xa6, 0x76, 0x78, 0x58, 0xbd, 0xa2, 0x14, 0x20, 0xfb, 0xb0, 0xd1, 0xde, 0xab, 0xa6, 0xd4, 0x0e, 0x14, 0x1b, 0xee, 0x78, 0x3e, 0x35, 0x67, 0xbe, 0xa7, 0xbc, 0x0f, 0x05, 0xd7, 0xf4, 0xec, 0xb9, 0x3b, 0x08, 0x96, 0x52, 0xc2, 0xa5, 0x7a, 0xf2, 0x8d, 0xb2, 0x0e, 0xf9, 0x91, 0x31, 0xb5, 0x26, 0x67, 0xbc, 0x4c, 0x45, 0x29, 0x43, 0x76, 0x66, 0x4c, 0xcd, 0x5a, 0x86, 0x17, 0xfd, 0x7d, 0x0a, 0xaa, 0xfb, 0xf6, 0xb0, 0x6b, 0xf8, 0xa7, 0x21, 0xe3, 0x9b, 0x50, 0xb4, 0x1d, 0xd3, 0x35, 0x7c, 0xcb, 0x9e, 0x49, 0xce, 0x5b, 0x21, 0xe7, 0x4e, 0xf0, 0x2a, 0x26, 0x40, 0xfa, 0x5c, 0x01, 0x62, 0x0b, 0x2a, 0x6f, 0x41, 0xd6, 0xc1, 0xc5, 0x6a, 0x59, 0x7c, 0x2a, 0xdd, 0x5f, 0x0f, 0xe7, 0x93, 0x08, 0x34, 0x77, 0x3e, 0xb7, 0x86, 0xb5, 0x1c, 0xbe, 0x2d, 0x47, 0x44, 0xcf, 0x93, 0xe8, 0xea, 0xbb, 0xb0, 0x21, 0x65, 0x45, 0xe6, 0x8e, 0x3d, 0xf3, 0xcc, 0x05, 0x01, 0x49, 0x59, 0x56, 0x47, 0xb0, 0x29, 0x27, 0x78, 0x97, 0x55, 0x53, 0x20, 0x25, 0xdb, 0x42, 0x79, 0x1b, 0x72, 0x24, 0xa5, 0x87, 0x42, 0x67, 0x56, 0xc5, 0x54, 0xff, 0x07, 0xb6, 0x71, 0x9d, 0x03, 0xd3, 0x1a, 0x9f, 0x9e, 0xd8, 0xee, 0xe5, 0x15, 0x47, 0x4a, 0x30, 0x4d, 0x97, 0x17, 0x8b, 0x73, 0xc7, 0x51, 0xd5, 0x81, 0xf2, 0xbe, 0xeb, 0xff, 0x5c, 0x3b, 0x57, 0xa1, 0x60, 0xcd, 0x7c, 0xd3, 0x7d, 0x66, 0x4c, 0x58, 0xf5, 0x59, 0xa5, 0x06, 0xd5, 0x99, 0x14, 0x59, 0x37, 0x86, 0x43, 0xe4, 0xe9, 0xb1, 0x19, 0x8a, 0xea, 0x13, 0x56, 0x6c, 0x6c, 0xd1, 0x8b, 0x6e, 0x05, 0x97, 0x19, 0x59, 0x13, 0x33, 0xd4, 0x9d, 0xfa, 0x97, 0x14, 0x73, 0xdb, 0x9d, 0x3a, 0x97, 0xe7, 0xb6, 0x01, 0x6b, 0x81, 0x64, 0xc2, 0x10, 0x68, 0x16, 0xc7, 0x76, 0x7d, 0xde, 0x41, 0x45, 0xf9, 0x02, 0xb2, 0xfe, 0x99, 0x63, 0xb2, 0xd4, 0xeb, 0xf7, 0x77, 0x42, 0x0e, 0x4b, 0xeb, 0xe1, 0xf3, 0xcc, 0xf2, 0x6d, 0xd7, 0x9a, 0x8d, 0xbb, 0xf6, 0xc4, 0x1a, 0x9c, 0xa9, 0x1f, 0x93, 0x9b, 0xc7, 0xc7, 0x94, 0x35, 0xc8, 0x74, 0x7b, 0x9a, 0x88, 0xaf, 0x6e, 0xe7, 0xb0, 0x5f, 0x4d, 0xd1, 0xaf, 0xdd, 0x4e, 0xff, 0x71, 0x35, 0xad, 0xfe, 0xc0, 0x71, 0xd1, 0x73, 0x9e, 0x5a, 0xff, 0xec, 0x5d, 0xa8, 0x47, 0xac, 0x9f, 0x63, 0x77, 0x74, 0x79, 0xce, 0x75, 0xc8, 0x3c, 0x73, 0x47, 0xd2, 0x6f, 0x2a, 0xe1, 0x0c, 0x64, 0xa6, 0x0e, 0xe0, 0x1a, 0xb2, 0x6d, 0x99, 0x23, 0x6b, 0x66, 0x0e, 0x0f, 0xcd, 0xd7, 0xb0, 0xe5, 0x7b, 0x90, 0xf1, 0x4c, 0x5f, 0x72, 0xdf, 0x0e, 0x67, 0x84, 0x3c, 0xd5, 0x31, 0x5c, 0xc5, 0x45, 0x0e, 0x7d, 0xc3, 0x37, 0x89, 0xf7, 0xe5, 0xd7, 0xc0, 0x79, 0x5e, 0x40, 0x2d, 0x57, 0x8a, 0xcc, 0x5b, 0x30, 0x56, 0x7f, 0x9d, 0x02, 0x85, 0x62, 0x99, 0x4d, 0x75, 0xf9, 0x65, 0x6e, 0x40, 0xde, 0x61, 0x52, 0xb9, 0x46, 0x35, 0x12, 0x63, 0xc2, 0xfa, 0xef, 0xc1, 0x75, 0xd7, 0x1c, 0x99, 0xae, 0x6e, 0xbe, 0xb0, 0x3c, 0x1f, 0xbd, 0x42, 0x5f, 0xc8, 0xe5, 0xb1, 0xa1, 0x0a, 0xca, 0x9b, 0xb0, 0xe5, 0xa0, 0x15, 0x31, 0x86, 0xcc, 0xe8, 0x4b, 0xf2, 0xbe, 0x82, 0xfa, 0x0c, 0xde, 0x0a, 0xe5, 0xf3, 0x3c, 0x6b, 0x3c, 0x7b, 0x3d, 0x85, 0xdc, 0x05, 0x30, 0x16, 0xe4, 0x52, 0xda, 0xfa, 0xb2, 0xb4, 0xe1, 0x02, 0xea, 0x10, 0x6a, 0xb8, 0xee, 0xa3, 0x89, 0x7d, 0x62, 0x4c, 0x9a, 0xf6, 0x6c, 0x64, 0x8d, 0x5f, 0x4b, 0x3b, 0x63, 0x66, 0xb0, 0xaa, 0x1d, 0xc1, 0x58, 0xfd, 0x65, 0x1a, 0x63, 0x42, 0x22, 0xf2, 0x6c, 0xe2, 0x5a, 0x02, 0x60, 0x09, 0x64, 0x10, 0x17, 0x7d, 0x97, 0x1c, 0x3b, 0x83, 0xcf, 0x98, 0xc0, 0x8c, 0xb1, 0x80, 0xf6, 0x0c, 0x4d, 0x3d, 0x31, 0x3d, 0x5f, 0xe8, 0x47, 0xd9, 0x82, 0x92, 0xe5, 0xe9, 0xcf, 0x2d, 0xff, 0x74, 0xe8, 0x1a, 0xcf, 0x19, 0xd1, 0x0b, 0x8a, 0x02, 0x80, 0x78, 0x64, 0x0d, 0x85, 0x84, 0x84, 0xea, 0x39, 0x04, 0xc3, 0xed, 0x99, 0xad, 0x5b, 0x53, 0x07, 0x37, 0x6a, 0xf9, 0x21, 0xc5, 0x1a, 0x53, 0x84, 0xb0, 0x56, 0x60, 0x08, 0x40, 0x0e, 0x02, 0xf0, 0x74, 0xc3, 0x9b, 0xd5, 0x8a, 0x3c, 0xb6, 0x89, 0x3e, 0x25, 0xc6, 0x30, 0x13, 0x00, 0x47, 0x9c, 0x80, 0x25, 0x84, 0x3f, 0x73, 0x58, 0x2b, 0x31, 0xa3, 0x0a, 0xe4, 0xd0, 0x86, 0x13, 0xb3, 0x56, 0xe6, 0x47, 0x04, 0x43, 0x14, 0x6f, 0xe4, 0xda, 0x53, 0x74, 0x00, 0x9c, 0x37, 0x43, 0x65, 0x54, 0x02, 0xc1, 0x17, 0x30, 0x69, 0x39, 0xb5, 0x75, 0x06, 0xb5, 0x23, 0x28, 0xb5, 0x4c, 0x72, 0x13, 0xa1, 0x40, 0xd2, 0x03, 0x7a, 0x8f, 0xf5, 0x82, 0xf5, 0x12, 0xc9, 0x17, 0xe9, 0xa4, 0x7c, 0xa1, 0xbc, 0x01, 0x1b, 0x13, 0x7b, 0x36, 0x46, 0x67, 0x13, 0x54, 0xa6, 0xf4, 0x30, 0xf5, 0x17, 0x29, 0xc8, 0xf5, 0x8d, 0x93, 0x89, 0x89, 0x26, 0x11, 0xd0, 0x76, 0xd1, 0x0c, 0x15, 0xea, 0x45, 0x40, 0xe3, 0x87, 0x50, 0x1e, 0x86, 0x02, 0x92, 0x93, 0x92, 0x20, 0x57, 0xa3, 0x41, 0x1c, 0x8a, 0x8f, 0x5b, 0x74, 0x6c, 0xcf, 0xd7, 0x65, 0x88, 0xb0, 0x6d, 0xd4, 0xbf, 0x91, 0xc9, 0x31, 0xff, 0xb0, 0xee, 0x88, 0xb5, 0x65, 0x8a, 0xfd, 0x30, 0x73, 0xc3, 0x71, 0x26, 0x67, 0x01, 0x41, 0x86, 0xbd, 0x26, 0xc2, 0xbc, 0x41, 0x6f, 0x65, 0x60, 0xdd, 0xa0, 0xea, 0x67, 0x36, 0x62, 0xae, 0xa5, 0xe8, 0x4e, 0x88, 0x39, 0x79, 0xac, 0x72, 0x07, 0x2a, 0x26, 0x8e, 0xe9, 0xd3, 0xf9, 0xc4, 0xb7, 0x4e, 0x6d, 0x87, 0x1d, 0xa1, 0x74, 0xff, 0x5a, 0xa4, 0x50, 0xc2, 0xff, 0xfb, 0xf2, 0xad, 0xf2, 0x09, 0x6c, 0xb8, 0xf6, 0xdc, 0x37, 0x75, 0xd4, 0xdd, 0xc4, 0x1c, 0x20, 0x86, 0xb3, 0x91, 0x4b, 0xf7, 0x6b, 0x11, 0x2d, 0xd1, 0x84, 0x5e, 0xf0, 0x1e, 0x83, 0x3b, 0x6b, 0xcd, 0x46, 0x36, 0x9b, 0x3e, 0x06, 0x30, 0x24, 0x03, 0x83, 0x0c, 0xc5, 0x80, 0x6f, 0x4d, 0x4d, 0x74, 0xe5, 0xf2, 0x72, 0x0c, 0xf4, 0x79, 0x9c, 0xa2, 0xc9, 0x77, 0x8d, 0x99, 0xc7, 0xd0, 0x5d, 0x59, 0xe6, 0xd4, 0x0f, 0x5e, 0x91, 0x76, 0x84, 0x7c, 0x8c, 0x14, 0x6e, 0x6d, 0x63, 0x59, 0x3b, 0x2c, 0xdc, 0x21, 0xbf, 0x54, 0x7f, 0x9b, 0x82, 0x52, 0x54, 0x5b, 0x77, 0xa0, 0x68, 0xcd, 0x02, 0xbd, 0xa6, 0x5e, 0x15, 0xfd, 0xa8, 0x8b, 0x8a, 0xf9, 0x82, 0x56, 0xd5, 0x63, 0xf0, 0xf6, 0x0a, 0x12, 0x0c, 0xae, 0x08, 0x49, 0xe6, 0x95, 0x18, 0xf3, 0xab, 0x34, 0x14, 0x16, 0xd6, 0xba, 0x0a, 0x15, 0x63, 0xee, 0x9f, 0xea, 0x0e, 0xc2, 0xd4, 0x73, 0xdb, 0x1d, 0x4a, 0x97, 0x47, 0x1f, 0x42, 0x87, 0x1b, 0xb8, 0x96, 0xc3, 0xb1, 0x9c, 0x0e, 0xc2, 0x6e, 0x62, 0x0f, 0x8c, 0x09, 0x06, 0xa7, 0xf4, 0xcb, 0x73, 0x8b, 0x0e, 0xca, 0x92, 0x54, 0x04, 0xd1, 0xd4, 0x5c, 0x10, 0xda, 0x3c, 0x30, 0x46, 0x6d, 0x0a, 0x9f, 0x28, 0x52, 0x68, 0xf3, 0x18, 0xc7, 0xc6, 0x1a, 0x4f, 0xbb, 0x0e, 0x9b, 0xae, 0x39, 0xb5, 0x11, 0x93, 0x1d, 0xd7, 0x7a, 0x86, 0xa6, 0x24, 0x0e, 0x02, 0x1c, 0xea, 0xa0, 0x08, 0x4b, 0x8c, 0x26, 0x86, 0xa3, 0x0f, 0x8d, 0xa9, 0x83, 0xb8, 0xce, 0x20, 0x51, 0x50, 0xae, 0xc1, 0xba, 0x67, 0xce, 0x86, 0xfa, 0xc0, 0x9e, 0x4e, 0xe7, 0x58, 0x09, 0x9c, 0xb1, 0x13, 0xf1, 0xaa, 0xc4, 0x0e, 0x89, 0x06, 0x86, 0x83, 0x0e, 0x43, 0xb0, 0x86, 0xab, 0x8a, 0x6d, 0xd0, 0x50, 0x99, 0x87, 0x00, 0xd2, 0x08, 0x2e, 0x15, 0x06, 0x83, 0xcf, 0xa1, 0x1c, 0x73, 0x50, 0xdc, 0x09, 0x16, 0x40, 0x18, 0xc5, 0x42, 0x37, 0x05, 0x65, 0x1b, 0xca, 0x81, 0x6f, 0xeb, 0xbe, 0x2f, 0x50, 0xb6, 0xa2, 0xf6, 0x61, 0x7d, 0xc9, 0x4d, 0xdf, 0x81, 0x6b, 0x4b, 0x9e, 0xad, 0x0f, 0x30, 0xec, 0x30, 0x0f, 0x08, 0x3e, 0x2a, 0xd4, 0x57, 0xdf, 0xcf, 0x3d, 0x84, 0x2b, 0x42, 0x3a, 0xc1, 0xf5, 0xa7, 0x0c, 0x14, 0x43, 0xaf, 0xfe, 0x79, 0xc6, 0xc2, 0x4a, 0x73, 0x8a, 0x06, 0x42, 0x48, 0xf7, 0x64, 0x81, 0x1e, 0x09, 0xdf, 0x7d, 0xf9, 0x26, 0xd1, 0xa4, 0xb9, 0x65, 0x93, 0xe6, 0x13, 0x4c, 0xba, 0xb6, 0x6a, 0x52, 0x61, 0x37, 0x8c, 0xc5, 0x1f, 0xe7, 0xe6, 0x1c, 0x57, 0x2d, 0x2e, 0xc7, 0xe2, 0xb7, 0x3c, 0x9e, 0x6c, 0x74, 0x78, 0x89, 0xd1, 0x4b, 0xe7, 0x18, 0xbd, 0xcc, 0x34, 0xa8, 0x26, 0x0f, 0xc5, 0x46, 0x5d, 0x88, 0xc4, 0xce, 0x86, 0xad, 0x90, 0x3d, 0xbc, 0xb9, 0x43, 0xb1, 0x62, 0x0e, 0xc9, 0xf6, 0xc6, 0x09, 0xa2, 0xa0, 0x4f, 0x38, 0xb8, 0x8e, 0x4e, 0xc0, 0xa2, 0x13, 0x6e, 0x09, 0x92, 0x8d, 0x40, 0xb3, 0xc6, 0x70, 0x6a, 0x05, 0x7c, 0xaa, 0x81, 0x66, 0x5d, 0x73, 0x60, 0x5a, 0xcf, 0xd0, 0x23, 0x36, 0x83, 0x6a, 0xdc, 0x18, 0x0c, 0x4c, 0x07, 0x19, 0xd7, 0x94, 0x40, 0x35, 0xc6, 0x10, 0x11, 0xc1, 0xb7, 0x3c, 0x1c, 0xdb, 0xe2, 0x31, 0xcc, 0x51, 0xb8, 0x13, 0xfd, 0xc7, 0xda, 0x76, 0xf0, 0x38, 0x9a, 0xd8, 0x8e, 0x57, 0xbb, 0xca, 0x96, 0xee, 0x42, 0x61, 0x61, 0x83, 0x7f, 0x8b, 0xac, 0x20, 0x50, 0x63, 0x73, 0xc5, 0x52, 0xca, 0xbb, 0x90, 0xf5, 0xc2, 0xa2, 0x62, 0x75, 0x82, 0xfa, 0xff, 0x29, 0x58, 0x0b, 0x26, 0xa3, 0xcf, 0x1e, 0x74, 0xfa, 0xed, 0x87, 0xed, 0x66, 0xa3, 0xdf, 0xee, 0x1c, 0x30, 0xd7, 0x2c, 0xa5, 0x99, 0xa3, 0x6e, 0xab, 0xd1, 0xd7, 0x98, 0x49, 0x96, 0x92, 0x50, 0xa7, 0xab, 0x1d, 0xc8, 0x8e, 0x02, 0xf5, 0xf1, 0x44, 0xd3, 0xba, 0x8d, 0xbd, 0xf6, 0xb1, 0xc6, 0x0e, 0x93, 0x25, 0x17, 0xe8, 0x69, 0x0f, 0x7b, 0xda, 0xe1, 0x63, 0xf6, 0x09, 0x9e, 0xd3, 0x6a, 0x1f, 0x36, 0x1b, 0xbd, 0x96, 0xd6, 0x62, 0xaf, 0xc8, 0xd2, 0xbe, 0xfa, 0x9d, 0x7e, 0x63, 0x8f, 0x1d, 0x22, 0xab, 0xde, 0x82, 0xbc, 0xb4, 0x32, 0xbe, 0xb0, 0x66, 0xce, 0x5c, 0xb8, 0x7f, 0x85, 0x16, 0x47, 0x75, 0xd0, 0xb3, 0x70, 0xf5, 0x63, 0xc8, 0x2f, 0xa0, 0x39, 0x3f, 0xe0, 0xda, 0x47, 0x6e, 0xfe, 0xda, 0x32, 0x78, 0x8b, 0xca, 0x08, 0x1d, 0x3a, 0x27, 0xec, 0x92, 0x5e, 0xc6, 0x64, 0x31, 0x8d, 0x83, 0x46, 0xfd, 0x3f, 0x28, 0xc7, 0xa8, 0xd0, 0x3b, 0x90, 0xfb, 0x0c, 0x03, 0x0e, 0x03, 0xcf, 0x77, 0xcf, 0xa4, 0x2e, 0x70, 0x27, 0xa7, 0xf6, 0x64, 0xa8, 0x53, 0xda, 0x90, 0xea, 0x40, 0xdf, 0x7b, 0x6a, 0x9a, 0x0e, 0x96, 0x34, 0xe8, 0x99, 0x4b, 0xed, 0xd6, 0x4d, 0x78, 0x07, 0xfd, 0xc2, 0x9a, 0xce, 0xa7, 0xfa, 0xc2, 0xd0, 0x84, 0xae, 0xe1, 0x3c, 0xd6, 0x98, 0xfa, 0x27, 0xcc, 0x08, 0x11, 0x69, 0xfe, 0xb5, 0xab, 0x73, 0xf5, 0x65, 0x8e, 0x6d, 0xdf, 0x32, 0xc8, 0xe7, 0xc3, 0x15, 0x72, 0x81, 0xf9, 0xe7, 0x0e, 0x3f, 0x0b, 0xcb, 0xa1, 0x1b, 0x0f, 0xed, 0xe7, 0x33, 0x1e, 0x11, 0xc6, 0xfb, 0x4d, 0x0a, 0x8a, 0x61, 0x2a, 0x44, 0xd9, 0x25, 0xa4, 0x48, 0x5c, 0x10, 0xf0, 0x83, 0xbe, 0x2e, 0x86, 0x39, 0x95, 0xa6, 0x83, 0x10, 0x9c, 0xfa, 0x73, 0x7d, 0x68, 0x79, 0x03, 0x0c, 0x6b, 0xf7, 0x4c, 0xd6, 0xdc, 0xe8, 0x86, 0x84, 0x5d, 0xb4, 0xa3, 0x29, 0x9d, 0xa1, 0x64, 0x83, 0x38, 0x96, 0x20, 0x1d, 0x07, 0x1c, 0x8c, 0x3e, 0x39, 0xce, 0x9c, 0x05, 0xe8, 0xa0, 0x0b, 0xfa, 0x03, 0xac, 0x2e, 0x70, 0x16, 0x67, 0x0c, 0x75, 0x07, 0x4a, 0x91, 0x14, 0x4c, 0x65, 0x7d, 0x34, 0x5f, 0xc7, 0x20, 0x57, 0xdd, 0x87, 0x7c, 0x97, 0x6b, 0x34, 0x52, 0xb8, 0xe5, 0xe8, 0xb1, 0x32, 0x0f, 0xeb, 0xb8, 0xa9, 0xe1, 0x3d, 0xd5, 0xb1, 0xdf, 0x1d, 0x23, 0xc8, 0xa2, 0x82, 0xe5, 0x66, 0x96, 0x5f, 0x18, 0x2f, 0x64, 0xaf, 0xf7, 0x23, 0x40, 0xd8, 0x3d, 0x61, 0xd4, 0x46, 0x8b, 0xbc, 0xab, 0x2b, 0x1d, 0x56, 0x1f, 0x5f, 0x2e, 0xd5, 0x79, 0xf8, 0x34, 0xc1, 0xfe, 0x84, 0x0f, 0x22, 0x8a, 0x98, 0x10, 0x0a, 0x8b, 0x0a, 0x52, 0x54, 0x78, 0xd1, 0xc6, 0x86, 0xdf, 0xa8, 0x5f, 0x21, 0x4c, 0x18, 0xfe, 0xe0, 0x94, 0x16, 0x7c, 0x2f, 0xb6, 0x60, 0xa4, 0x7a, 0xe1, 0x19, 0xab, 0xcb, 0xa9, 0x8f, 0xa1, 0xdc, 0xf0, 0xa8, 0x66, 0xdd, 0xe3, 0x9d, 0x28, 0xb7, 0x63, 0x0c, 0x22, 0x35, 0x43, 0x74, 0x16, 0xf3, 0x41, 0x57, 0x11, 0xbb, 0x97, 0xc1, 0xfa, 0xbb, 0x34, 0x00, 0xc6, 0xd3, 0xd0, 0xe2, 0x7a, 0x14, 0xfd, 0x11, 0x84, 0xe4, 0x3a, 0xb5, 0x98, 0xa9, 0x95, 0xe4, 0x12, 0x48, 0x7c, 0x1b, 0xca, 0x8b, 0xe4, 0x12, 0x36, 0xa3, 0x49, 0x33, 0xef, 0xc2, 0xba, 0xe1, 0xe9, 0x54, 0x76, 0x4b, 0xb5, 0xcb, 0xc2, 0xe6, 0x5a, 0xb2, 0x90, 0xca, 0x2d, 0x44, 0x6a, 0x39, 0x9f, 0x18, 0x67, 0xcf, 0x65, 0xfc, 0x01, 0x05, 0xa0, 0xcc, 0x17, 0x3c, 0x35, 0x77, 0xee, 0xd4, 0x3b, 0xb0, 0x89, 0xdd, 0x83, 0x1e, 0x9f, 0x9e, 0x3f, 0x77, 0x3a, 0xb9, 0xab, 0xf3, 0xd4, 0xc2, 0xb8, 0xf6, 0xb0, 0x3c, 0x60, 0xef, 0xcc, 0xa9, 0x87, 0xb0, 0xd1, 0x0c, 0xe8, 0x1b, 0x03, 0xae, 0xcf, 0x3f, 0x8c, 0x69, 0xfd, 0xed, 0x90, 0xd3, 0xd2, 0x44, 0x56, 0x3c, 0x32, 0x0d, 0xd6, 0x0f, 0x2a, 0xf6, 0xa2, 0xda, 0x80, 0xe2, 0xbe, 0x39, 0x94, 0xec, 0xfe, 0x3d, 0xc6, 0xee, 0x8d, 0x68, 0x1e, 0x18, 0x46, 0x18, 0x21, 0xfa, 0x22, 0x2e, 0xcc, 0x85, 0x2b, 0x64, 0x54, 0x0d, 0x36, 0x50, 0x7f, 0xae, 0xe9, 0x60, 0x02, 0x95, 0x8c, 0xa8, 0xdd, 0xf3, 0x66, 0x21, 0x3a, 0xd3, 0x4b, 0x23, 0x12, 0xd0, 0x73, 0xcf, 0x44, 0x5b, 0x8c, 0x7c, 0x0c, 0x5d, 0xcf, 0x97, 0x2d, 0xce, 0x4f, 0x98, 0x63, 0x04, 0xb9, 0x17, 0x56, 0xca, 0xc6, 0x20, 0xd2, 0xa2, 0x2e, 0x57, 0xca, 0x72, 0xb1, 0x8f, 0xa0, 0x18, 0xa6, 0x6d, 0xe1, 0x06, 0xd7, 0xcf, 0xd5, 0x04, 0x96, 0x10, 0x99, 0x29, 0xe6, 0xc2, 0xcc, 0x72, 0x99, 0x1e, 0x6a, 0xe1, 0x0e, 0x35, 0xda, 0x14, 0xcf, 0xb4, 0x21, 0x69, 0xfe, 0xeb, 0x31, 0x5f, 0x89, 0xed, 0xf5, 0x1e, 0x55, 0xda, 0x11, 0xd3, 0x4a, 0x2f, 0x38, 0x5f, 0x04, 0x75, 0x0c, 0xc5, 0xc5, 0xf9, 0xc5, 0x22, 0xac, 0x04, 0x70, 0xdc, 0x06, 0x18, 0x2c, 0x62, 0x61, 0xf5, 0x80, 0x25, 0x12, 0x27, 0x2a, 0xac, 0x09, 0xe5, 0x78, 0x72, 0x2f, 0x91, 0xb4, 0x2d, 0xd5, 0xa8, 0xfe, 0x17, 0x62, 0x94, 0xe8, 0x1e, 0xe2, 0xab, 0xdc, 0xc2, 0xde, 0x38, 0x3c, 0xa6, 0x10, 0xad, 0x68, 0xe2, 0xe1, 0xca, 0x1f, 0x53, 0x50, 0x5d, 0xe9, 0x13, 0xd4, 0x98, 0x97, 0x6c, 0x2f, 0xb7, 0x07, 0xec, 0x22, 0xaf, 0x73, 0xe2, 0x4b, 0x98, 0x45, 0x1c, 0xac, 0x44, 0xcc, 0x12, 0xfb, 0xb8, 0x09, 0x6b, 0x43, 0x73, 0x64, 0x50, 0x50, 0xe4, 0x5e, 0xe2, 0x13, 0x6a, 0x1d, 0x60, 0xdf, 0xf5, 0x83, 0x92, 0x05, 0xd7, 0x19, 0x1a, 0xbe, 0x21, 0x0f, 0x7f, 0xef, 0x41, 0xa1, 0xd7, 0x7d, 0xd2, 0xe6, 0x9e, 0x25, 0x72, 0x02, 0x97, 0x4a, 0x4a, 0x14, 0x02, 0xec, 0xfe, 0x9a, 0x86, 0x22, 0x91, 0x88, 0xbc, 0x1b, 0xe6, 0xba, 0x14, 0x1f, 0x67, 0x44, 0x73, 0x1d, 0x47, 0x04, 0xf5, 0x00, 0x58, 0xc5, 0x66, 0x82, 0x53, 0x02, 0x2c, 0xc0, 0xb0, 0xc2, 0xd6, 0x2d, 0xe7, 0xd9, 0x67, 0xec, 0x4e, 0x95, 0xf8, 0xe0, 0x03, 0xd9, 0xd6, 0x50, 0xb3, 0x2d, 0x90, 0x8f, 0x67, 0xe6, 0x57, 0x07, 0x1f, 0xc8, 0xce, 0x06, 0x25, 0xc0, 0x94, 0x64, 0x61, 0x6e, 0x2e, 0x04, 0x11, 0x15, 0x14, 0x79, 0x82, 0xb6, 0xc8, 0x62, 0x2c, 0x0d, 0x3f, 0xe0, 0x3a, 0x38, 0x23, 0x6a, 0x5a, 0xa2, 0xd6, 0x67, 0x98, 0xce, 0x47, 0x67, 0x5c, 0x02, 0x67, 0x18, 0x1e, 0x8c, 0xc1, 0x29, 0xf5, 0x10, 0x04, 0x4e, 0x65, 0x1e, 0xc4, 0x7c, 0xba, 0x18, 0xe4, 0x83, 0x74, 0x2e, 0x80, 0x79, 0x32, 0x95, 0xcb, 0xf6, 0x48, 0x67, 0xc5, 0xae, 0xf3, 0x20, 0xe2, 0x82, 0x49, 0x1f, 0x26, 0xb8, 0xe2, 0xcd, 0x50, 0x86, 0x96, 0xeb, 0x60, 0xcd, 0x8e, 0x79, 0xbb, 0x1a, 0x50, 0xf2, 0x02, 0x72, 0x70, 0x93, 0x21, 0x64, 0x0f, 0xb2, 0xa4, 0xdf, 0xc5, 0x91, 0xc0, 0x0a, 0xec, 0x2f, 0x0c, 0xa6, 0xc6, 0x0b, 0xb5, 0xad, 0xf8, 0x14, 0x51, 0xa6, 0x8d, 0x20, 0xd3, 0xeb, 0x34, 0xc8, 0x0a, 0x86, 0x27, 0x31, 0x88, 0x7a, 0x09, 0x56, 0x23, 0x66, 0x00, 0x09, 0x43, 0xa8, 0x44, 0x4c, 0xbf, 0xf4, 0x9c, 0x09, 0x9e, 0x65, 0x0e, 0x17, 0x6d, 0xe7, 0xb9, 0xc7, 0x13, 0x81, 0x2c, 0xea, 0x9f, 0xb1, 0xa3, 0xc2, 0x85, 0x7a, 0x0c, 0xd2, 0xca, 0x67, 0x04, 0x73, 0x86, 0xb7, 0x40, 0xab, 0xf7, 0x23, 0x14, 0xc1, 0xa4, 0xbb, 0xc7, 0x8b, 0x43, 0xad, 0x1e, 0xcf, 0x5d, 0x3d, 0x02, 0x46, 0x49, 0xc9, 0x93, 0x70, 0x93, 0x53, 0x47, 0x9e, 0x97, 0x51, 0xeb, 0xe0, 0x71, 0x3e, 0xa2, 0x23, 0x35, 0x16, 0x8f, 0x5b, 0x4f, 0xdb, 0xb5, 0xc6, 0xd8, 0x50, 0x2c, 0xfa, 0xe2, 0x70, 0x07, 0xa2, 0x27, 0xfe, 0x02, 0x80, 0xca, 0xb4, 0x48, 0x12, 0xb9, 0x80, 0x54, 0xbc, 0x17, 0xa4, 0x9c, 0x99, 0xcf, 0x03, 0xca, 0xc2, 0x25, 0x28, 0xdf, 0x84, 0xac, 0x6b, 0x1b, 0xd4, 0x9f, 0x65, 0xe2, 0x27, 0xcf, 0x48, 0xa3, 0x3e, 0x81, 0xea, 0x8a, 0x02, 0x20, 0x68, 0x1c, 0xaa, 0x57, 0x30, 0x4e, 0x0b, 0xdf, 0xb5, 0xfb, 0x8f, 0x5b, 0xbd, 0xc6, 0x77, 0xd5, 0x14, 0xba, 0x53, 0xb1, 0xab, 0x69, 0x3d, 0xbd, 0xd5, 0xf9, 0xee, 0xa0, 0x9a, 0xc6, 0xdd, 0x41, 0x4f, 0x3b, 0xc6, 0x16, 0x82, 0x27, 0x67, 0xd4, 0x66, 0x9c, 0x19, 0xaf, 0x5e, 0x80, 0xec, 0x41, 0xe7, 0x80, 0x58, 0x21, 0x31, 0x76, 0x29, 0xfa, 0xc3, 0xce, 0xd1, 0x41, 0x0b, 0x79, 0x15, 0x21, 0xc7, 0xa4, 0xc8, 0xa7, 0x04, 0x6b, 0xed, 0x03, 0xf1, 0x40, 0xb9, 0x2b, 0x73, 0xec, 0x8e, 0x96, 0xe0, 0x11, 0x1d, 0xc7, 0x15, 0x5d, 0x33, 0xab, 0x59, 0x1e, 0x8a, 0xb8, 0xa2, 0xb6, 0xe2, 0x21, 0x79, 0xb4, 0xe2, 0xfa, 0x0c, 0x54, 0x65, 0xf5, 0x0f, 0x29, 0xc8, 0x8b, 0x03, 0xd1, 0x65, 0xaf, 0xe3, 0x34, 0xb6, 0xe8, 0xc2, 0x19, 0x5f, 0xa8, 0x4c, 0x33, 0x67, 0xfa, 0xe2, 0xa0, 0x3f, 0x47, 0x8d, 0xb2, 0x1c, 0x94, 0xbe, 0x20, 0x11, 0xb0, 0x18, 0x3b, 0x62, 0xcb, 0xf1, 0x11, 0x1b, 0x46, 0xe4, 0xd4, 0x99, 0x78, 0xfa, 0xc4, 0x38, 0x31, 0x27, 0x5c, 0x59, 0x0a, 0xa0, 0x58, 0x1a, 0xc7, 0xc2, 0x72, 0x2d, 0x90, 0x61, 0x60, 0x4f, 0xe4, 0x71, 0x18, 0x59, 0xb2, 0xb0, 0xd3, 0x44, 0x00, 0x0c, 0x20, 0x18, 0xd5, 0xff, 0x68, 0xaf, 0xb3, 0xdb, 0xd8, 0x43, 0x9d, 0xa1, 0x92, 0xf6, 0x3a, 0x4d, 0xfc, 0x99, 0xa2, 0xe1, 0x46, 0xeb, 0x1b, 0xbd, 0x7d, 0x20, 0x14, 0x46, 0xbf, 0x3b, 0x47, 0xfd, 0x6a, 0x86, 0xbe, 0x85, 0x1c, 0xf7, 0x1e, 0x56, 0xb3, 0x3b, 0xff, 0x0b, 0xc5, 0xf0, 0x9c, 0x18, 0x47, 0x1b, 0xad, 0x16, 0xb2, 0xc0, 0x1f, 0x2d, 0x8d, 0x18, 0x20, 0x11, 0xfe, 0xd0, 0x1b, 0x7b, 0x7b, 0x82, 0x43, 0x4f, 0xeb, 0xee, 0x35, 0x9a, 0x68, 0x37, 0x62, 0xad, 0x1d, 0x34, 0x76, 0xf7, 0xb4, 0x6a, 0x96, 0x67, 0xb5, 0x0f, 0xf9, 0x21, 0x47, 0xcb, 0x63, 0x3b, 0xa8, 0xf5, 0xab, 0x79, 0xb2, 0xde, 0x61, 0xe7, 0x61, 0x5f, 0x3c, 0xae, 0xed, 0xe8, 0x74, 0xa8, 0x1a, 0x16, 0xbe, 0xc8, 0xa1, 0x8b, 0xbd, 0x63, 0xfb, 0x7b, 0xe1, 0x32, 0x07, 0x5a, 0xfb, 0xd1, 0xe3, 0xdd, 0x4e, 0x0f, 0x57, 0xc5, 0xe5, 0xfb, 0x8d, 0x47, 0x52, 0xe6, 0x43, 0xbd, 0xdb, 0xe8, 0x3f, 0xae, 0x12, 0x2e, 0x15, 0x9b, 0x9d, 0xfd, 0xfd, 0xa3, 0x83, 0x76, 0xff, 0x87, 0x2a, 0x35, 0x48, 0x15, 0xed, 0xfb, 0xbe, 0x1e, 0x0e, 0xe5, 0x76, 0x3e, 0xc0, 0x2a, 0x68, 0x51, 0xe8, 0xd2, 0x66, 0x0e, 0x7e, 0x10, 0x9b, 0x21, 0xf9, 0x59, 0x1b, 0xe8, 0x32, 0x5a, 0xaf, 0x5f, 0x4d, 0xef, 0xec, 0x40, 0x75, 0xa5, 0xa4, 0xcd, 0x43, 0x5a, 0xfb, 0x16, 0x09, 0xf0, 0xff, 0x23, 0x0d, 0xe7, 0xe3, 0x7f, 0xdc, 0x51, 0x7a, 0xe7, 0x63, 0xd9, 0x4f, 0xc8, 0x4a, 0x21, 0xf4, 0x4e, 0x52, 0x6f, 0xb3, 0xa9, 0x75, 0xfb, 0x82, 0x79, 0x4f, 0xfb, 0x46, 0x6b, 0x12, 0xf3, 0x23, 0xd8, 0x4a, 0xaa, 0xdc, 0x50, 0xe2, 0x85, 0xb4, 0xba, 0x50, 0xf4, 0x36, 0x54, 0xc3, 0xa1, 0x9e, 0xb6, 0xdf, 0x39, 0xa6, 0x85, 0xaf, 0xc2, 0x66, 0x74, 0x54, 0xa8, 0x3c, 0xbd, 0x73, 0x07, 0x2a, 0xf1, 0x0a, 0x0e, 0xd5, 0xb3, 0xaf, 0xb5, 0xf4, 0xfd, 0x0e, 0xb1, 0xda, 0x80, 0x12, 0x3d, 0x04, 0xd3, 0x53, 0x3b, 0x1f, 0x01, 0x44, 0x52, 0x39, 0x6e, 0x06, 0xdd, 0x80, 0x65, 0x6e, 0xef, 0x77, 0x3b, 0x3d, 0x29, 0xb3, 0xf6, 0x3d, 0xff, 0x4e, 0xdf, 0xff, 0xfb, 0x26, 0x14, 0x1e, 0x51, 0x94, 0x37, 0x1c, 0x4b, 0xf9, 0x12, 0x36, 0x1e, 0x99, 0x7e, 0xf4, 0xa3, 0x83, 0x12, 0x81, 0xe8, 0xc5, 0x07, 0x88, 0xfa, 0xea, 0x87, 0x84, 0x2b, 0xca, 0x63, 0xfe, 0xdc, 0x15, 0xa3, 0x55, 0x63, 0x5f, 0xee, 0x12, 0xbf, 0x65, 0xd4, 0x37, 0x96, 0x3e, 0x9b, 0x23, 0xa7, 0xff, 0x80, 0x32, 0x4a, 0x11, 0x7c, 0x76, 0xf5, 0x92, 0x45, 0x58, 0xfe, 0x9a, 0x7a, 0xe5, 0x5e, 0x0a, 0x31, 0xbc, 0x14, 0x21, 0xbc, 0x20, 0x9d, 0xf2, 0xdf, 0xa8, 0xc0, 0xf0, 0x2b, 0xaf, 0xf2, 0x4e, 0x4c, 0xe8, 0x95, 0x8f, 0xbf, 0x49, 0x02, 0x7f, 0x84, 0x51, 0x68, 0xfa, 0x3d, 0xeb, 0x44, 0x89, 0xbc, 0xe4, 0xf3, 0xfe, 0xfa, 0xf2, 0x00, 0xce, 0xfe, 0x18, 0x03, 0x85, 0x52, 0x68, 0xb2, 0x7c, 0x09, 0xec, 0x3f, 0xc5, 0x70, 0xb2, 0x47, 0xfe, 0xe5, 0x88, 0x3e, 0x87, 0xd2, 0x82, 0xa8, 0x3d, 0xbb, 0x30, 0xd9, 0x03, 0x28, 0x2f, 0xc8, 0x3a, 0xf3, 0x8b, 0x2f, 0x77, 0x1f, 0x0a, 0x87, 0xa7, 0x73, 0x9f, 0x2a, 0xa9, 0x0b, 0xd3, 0xdc, 0x43, 0x37, 0xe4, 0xf3, 0xd4, 0x0b, 0x53, 0x7c, 0x82, 0x80, 0x63, 0x79, 0x97, 0x22, 0xd9, 0xc5, 0x58, 0x11, 0x77, 0x05, 0x94, 0x7a, 0xcc, 0xb2, 0xb1, 0xbb, 0x10, 0xf5, 0xeb, 0x2b, 0xef, 0x82, 0xbb, 0x07, 0xc8, 0xe3, 0x6b, 0x6c, 0xb5, 0xe5, 0x7d, 0x03, 0xe5, 0xcd, 0x95, 0x89, 0xde, 0xcb, 0xd6, 0xbf, 0x9d, 0xa2, 0x6c, 0x2c, 0xbf, 0x49, 0x27, 0x7a, 0x48, 0xf2, 0xb7, 0x1b, 0xf6, 0xe7, 0x16, 0x7d, 0x1b, 0x65, 0xca, 0x5d, 0x7c, 0xd3, 0x3c, 0x35, 0x66, 0x63, 0x73, 0x98, 0xbc, 0xf3, 0x97, 0x70, 0xf9, 0x6a, 0xf1, 0x4d, 0x3c, 0x3c, 0x3f, 0xbe, 0x70, 0x48, 0xb5, 0xe8, 0x0a, 0x84, 0x10, 0xbe, 0xd3, 0x08, 0x13, 0x76, 0x32, 0x83, 0xad, 0x84, 0x1a, 0x83, 0xb9, 0x7c, 0xc9, 0x01, 0x82, 0x25, 0xbd, 0x12, 0xe9, 0xda, 0xa3, 0xf7, 0x10, 0xea, 0xdb, 0xb1, 0xf1, 0xe0, 0xe0, 0x92, 0x68, 0x1f, 0x40, 0x5e, 0x5c, 0x5a, 0x50, 0xe2, 0x36, 0x8a, 0x91, 0x27, 0x7a, 0x72, 0x5e, 0x5c, 0x17, 0x58, 0xa2, 0x8b, 0x5e, 0x20, 0x48, 0xf6, 0xe4, 0x35, 0x0a, 0x66, 0xaa, 0x67, 0x5f, 0xa5, 0x25, 0x9a, 0xc4, 0x32, 0x7e, 0xc1, 0x4e, 0xc6, 0x34, 0x71, 0x27, 0x8b, 0x5d, 0x2c, 0x38, 0x27, 0x06, 0x68, 0x35, 0xac, 0x77, 0x13, 0x17, 0x5b, 0xaa, 0xc0, 0x68, 0xad, 0x4f, 0x58, 0x3e, 0x2c, 0x7b, 0xbc, 0x57, 0x92, 0xd0, 0x75, 0x81, 0x50, 0x85, 0x54, 0x29, 0xc5, 0x55, 0x11, 0xbd, 0x9b, 0x90, 0x24, 0xdc, 0x7f, 0x42, 0x05, 0x97, 0x8a, 0x1c, 0x6c, 0x25, 0x5e, 0x16, 0xa8, 0x27, 0x5f, 0x21, 0x20, 0x60, 0x5d, 0x8f, 0x91, 0x7b, 0x97, 0xa3, 0x67, 0xef, 0xab, 0xc4, 0xee, 0x3a, 0x28, 0x37, 0x62, 0xf2, 0x27, 0x5c, 0x82, 0x48, 0xda, 0xc6, 0x97, 0x9c, 0x4f, 0xc2, 0x9e, 0x3d, 0xa9, 0x57, 0xae, 0x27, 0x36, 0xd0, 0x81, 0x0a, 0x16, 0x23, 0xde, 0x65, 0x88, 0x71, 0x03, 0xbb, 0x50, 0x8e, 0xde, 0xa3, 0x50, 0xde, 0x8d, 0xc9, 0xbf, 0x7a, 0xbf, 0x22, 0x19, 0xf4, 0x8a, 0x28, 0x82, 0xec, 0xa0, 0x57, 0x7a, 0xea, 0xfa, 0xca, 0x88, 0x00, 0xff, 0x80, 0x04, 0x4b, 0xcf, 0x8b, 0x11, 0xa1, 0xb4, 0x5f, 0x63, 0x1d, 0x15, 0xdc, 0x75, 0x50, 0xde, 0x8a, 0x03, 0x5d, 0xfc, 0x82, 0x46, 0x92, 0x9c, 0x1d, 0xd8, 0x5a, 0xc8, 0x19, 0x39, 0x6f, 0x78, 0xc9, 0x07, 0xc8, 0xfa, 0xcb, 0x3e, 0x4e, 0x5e, 0x51, 0xba, 0xb0, 0x95, 0x70, 0xf5, 0x42, 0xb9, 0x99, 0x24, 0xd8, 0xea, 0xcd, 0x8c, 0x04, 0x11, 0x4f, 0xf2, 0x7c, 0x97, 0xef, 0xd3, 0x7f, 0x04, 0x00, 0x00, 0xff, 0xff, 0xbf, 0xaf, 0xae, 0xc2, 0xda, 0x27, 0x00, 0x00, }