diff options
author | JieJhih Jhang <aawer12345tw@yahoo.com.tw> | 2019-04-07 16:17:37 +0800 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@gmail.com> | 2019-04-10 10:03:27 +0900 |
commit | eb3721798174ecf42ed3a91befd706c2a0f518e7 (patch) | |
tree | 8b7b3b5ca7e92de8c8b4d69ecb240fe1d14c1da3 /api | |
parent | ba63f7e07647f5677f652d8e8d673f4215f2b425 (diff) |
Add evpn I-PMSI to proto file
Diffstat (limited to 'api')
-rw-r--r-- | api/attribute.pb.go | 554 | ||||
-rw-r--r-- | api/attribute.proto | 13 | ||||
-rw-r--r-- | api/gobgp.pb.go | 1 | ||||
-rw-r--r-- | api/gobgp.proto | 1 |
4 files changed, 313 insertions, 256 deletions
diff --git a/api/attribute.pb.go b/api/attribute.pb.go index 98676487..f41be638 100644 --- a/api/attribute.pb.go +++ b/api/attribute.pb.go @@ -33,6 +33,7 @@ It has these top-level messages: EVPNInclusiveMulticastEthernetTagRoute EVPNEthernetSegmentRoute EVPNIPPrefixRoute + EVPNIPMSIRoute LabeledVPNIPAddressPrefix RouteTargetMembershipNLRI FlowSpecIPPrefix @@ -925,6 +926,44 @@ func (m *EVPNIPPrefixRoute) GetLabel() uint32 { return 0 } +// EVPNIPMSIRoute represents the NLRI for: +// - AFI=25, SAFI=70, RouteType=9 +type EVPNIPMSIRoute struct { + // One of: + // - RouteDistinguisherTwoOctetAS + // - RouteDistinguisherIPAddressAS + // - RouteDistinguisherFourOctetAS + Rd *google_protobuf.Any `protobuf:"bytes,1,opt,name=rd" json:"rd,omitempty"` + EthernetTag uint32 `protobuf:"varint,2,opt,name=ethernet_tag,json=ethernetTag" json:"ethernet_tag,omitempty"` + Rt *google_protobuf.Any `protobuf:"bytes,3,opt,name=rt" json:"rt,omitempty"` +} + +func (m *EVPNIPMSIRoute) Reset() { *m = EVPNIPMSIRoute{} } +func (m *EVPNIPMSIRoute) String() string { return proto.CompactTextString(m) } +func (*EVPNIPMSIRoute) ProtoMessage() {} +func (*EVPNIPMSIRoute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } + +func (m *EVPNIPMSIRoute) GetRd() *google_protobuf.Any { + if m != nil { + return m.Rd + } + return nil +} + +func (m *EVPNIPMSIRoute) GetEthernetTag() uint32 { + if m != nil { + return m.EthernetTag + } + return 0 +} + +func (m *EVPNIPMSIRoute) GetRt() *google_protobuf.Any { + if m != nil { + return m.Rt + } + return nil +} + // LabeledVPNIPAddressPrefix represents the NLRI for: // - AFI=1, SAFI=128 // - AFI=2, SAFI=128 @@ -942,7 +981,7 @@ type LabeledVPNIPAddressPrefix struct { func (m *LabeledVPNIPAddressPrefix) Reset() { *m = LabeledVPNIPAddressPrefix{} } func (m *LabeledVPNIPAddressPrefix) String() string { return proto.CompactTextString(m) } func (*LabeledVPNIPAddressPrefix) ProtoMessage() {} -func (*LabeledVPNIPAddressPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } +func (*LabeledVPNIPAddressPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } func (m *LabeledVPNIPAddressPrefix) GetLabels() []uint32 { if m != nil { @@ -986,7 +1025,7 @@ type RouteTargetMembershipNLRI struct { func (m *RouteTargetMembershipNLRI) Reset() { *m = RouteTargetMembershipNLRI{} } func (m *RouteTargetMembershipNLRI) String() string { return proto.CompactTextString(m) } func (*RouteTargetMembershipNLRI) ProtoMessage() {} -func (*RouteTargetMembershipNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } +func (*RouteTargetMembershipNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } func (m *RouteTargetMembershipNLRI) GetAs() uint32 { if m != nil { @@ -1013,7 +1052,7 @@ type FlowSpecIPPrefix struct { func (m *FlowSpecIPPrefix) Reset() { *m = FlowSpecIPPrefix{} } func (m *FlowSpecIPPrefix) String() string { return proto.CompactTextString(m) } func (*FlowSpecIPPrefix) ProtoMessage() {} -func (*FlowSpecIPPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } +func (*FlowSpecIPPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } func (m *FlowSpecIPPrefix) GetType() uint32 { if m != nil { @@ -1051,7 +1090,7 @@ type FlowSpecMAC struct { func (m *FlowSpecMAC) Reset() { *m = FlowSpecMAC{} } func (m *FlowSpecMAC) String() string { return proto.CompactTextString(m) } func (*FlowSpecMAC) ProtoMessage() {} -func (*FlowSpecMAC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } +func (*FlowSpecMAC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } func (m *FlowSpecMAC) GetType() uint32 { if m != nil { @@ -1076,7 +1115,7 @@ type FlowSpecComponentItem struct { func (m *FlowSpecComponentItem) Reset() { *m = FlowSpecComponentItem{} } func (m *FlowSpecComponentItem) String() string { return proto.CompactTextString(m) } func (*FlowSpecComponentItem) ProtoMessage() {} -func (*FlowSpecComponentItem) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } +func (*FlowSpecComponentItem) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } func (m *FlowSpecComponentItem) GetOp() uint32 { if m != nil { @@ -1100,7 +1139,7 @@ type FlowSpecComponent struct { func (m *FlowSpecComponent) Reset() { *m = FlowSpecComponent{} } func (m *FlowSpecComponent) String() string { return proto.CompactTextString(m) } func (*FlowSpecComponent) ProtoMessage() {} -func (*FlowSpecComponent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } +func (*FlowSpecComponent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } func (m *FlowSpecComponent) GetType() uint32 { if m != nil { @@ -1130,7 +1169,7 @@ type FlowSpecNLRI struct { func (m *FlowSpecNLRI) Reset() { *m = FlowSpecNLRI{} } func (m *FlowSpecNLRI) String() string { return proto.CompactTextString(m) } func (*FlowSpecNLRI) ProtoMessage() {} -func (*FlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } +func (*FlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } func (m *FlowSpecNLRI) GetRules() []*google_protobuf.Any { if m != nil { @@ -1159,7 +1198,7 @@ type VPNFlowSpecNLRI struct { func (m *VPNFlowSpecNLRI) Reset() { *m = VPNFlowSpecNLRI{} } func (m *VPNFlowSpecNLRI) String() string { return proto.CompactTextString(m) } func (*VPNFlowSpecNLRI) ProtoMessage() {} -func (*VPNFlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } +func (*VPNFlowSpecNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } func (m *VPNFlowSpecNLRI) GetRd() *google_protobuf.Any { if m != nil { @@ -1185,7 +1224,7 @@ type OpaqueNLRI struct { func (m *OpaqueNLRI) Reset() { *m = OpaqueNLRI{} } func (m *OpaqueNLRI) String() string { return proto.CompactTextString(m) } func (*OpaqueNLRI) ProtoMessage() {} -func (*OpaqueNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } +func (*OpaqueNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } func (m *OpaqueNLRI) GetKey() []byte { if m != nil { @@ -1212,7 +1251,7 @@ type LsNodeDescriptor struct { func (m *LsNodeDescriptor) Reset() { *m = LsNodeDescriptor{} } func (m *LsNodeDescriptor) String() string { return proto.CompactTextString(m) } func (*LsNodeDescriptor) ProtoMessage() {} -func (*LsNodeDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } +func (*LsNodeDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } func (m *LsNodeDescriptor) GetAsn() uint32 { if m != nil { @@ -1261,7 +1300,7 @@ type LsLinkDescriptor struct { func (m *LsLinkDescriptor) Reset() { *m = LsLinkDescriptor{} } func (m *LsLinkDescriptor) String() string { return proto.CompactTextString(m) } func (*LsLinkDescriptor) ProtoMessage() {} -func (*LsLinkDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } +func (*LsLinkDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } func (m *LsLinkDescriptor) GetLinkLocalId() uint32 { if m != nil { @@ -1313,7 +1352,7 @@ type LsPrefixDescriptor struct { func (m *LsPrefixDescriptor) Reset() { *m = LsPrefixDescriptor{} } func (m *LsPrefixDescriptor) String() string { return proto.CompactTextString(m) } func (*LsPrefixDescriptor) ProtoMessage() {} -func (*LsPrefixDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } +func (*LsPrefixDescriptor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } func (m *LsPrefixDescriptor) GetIpReachability() []string { if m != nil { @@ -1336,7 +1375,7 @@ type LsNodeNLRI struct { func (m *LsNodeNLRI) Reset() { *m = LsNodeNLRI{} } func (m *LsNodeNLRI) String() string { return proto.CompactTextString(m) } func (*LsNodeNLRI) ProtoMessage() {} -func (*LsNodeNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } +func (*LsNodeNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } func (m *LsNodeNLRI) GetLocalNode() *LsNodeDescriptor { if m != nil { @@ -1354,7 +1393,7 @@ type LsLinkNLRI struct { func (m *LsLinkNLRI) Reset() { *m = LsLinkNLRI{} } func (m *LsLinkNLRI) String() string { return proto.CompactTextString(m) } func (*LsLinkNLRI) ProtoMessage() {} -func (*LsLinkNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } +func (*LsLinkNLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } func (m *LsLinkNLRI) GetLocalNode() *LsNodeDescriptor { if m != nil { @@ -1385,7 +1424,7 @@ type LsPrefixV4NLRI struct { func (m *LsPrefixV4NLRI) Reset() { *m = LsPrefixV4NLRI{} } func (m *LsPrefixV4NLRI) String() string { return proto.CompactTextString(m) } func (*LsPrefixV4NLRI) ProtoMessage() {} -func (*LsPrefixV4NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } +func (*LsPrefixV4NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } func (m *LsPrefixV4NLRI) GetLocalNode() *LsNodeDescriptor { if m != nil { @@ -1409,7 +1448,7 @@ type LsPrefixV6NLRI struct { func (m *LsPrefixV6NLRI) Reset() { *m = LsPrefixV6NLRI{} } func (m *LsPrefixV6NLRI) String() string { return proto.CompactTextString(m) } func (*LsPrefixV6NLRI) ProtoMessage() {} -func (*LsPrefixV6NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } +func (*LsPrefixV6NLRI) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } func (m *LsPrefixV6NLRI) GetLocalNode() *LsNodeDescriptor { if m != nil { @@ -1440,7 +1479,7 @@ type LsAddrPrefix struct { func (m *LsAddrPrefix) Reset() { *m = LsAddrPrefix{} } func (m *LsAddrPrefix) String() string { return proto.CompactTextString(m) } func (*LsAddrPrefix) ProtoMessage() {} -func (*LsAddrPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } +func (*LsAddrPrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } func (m *LsAddrPrefix) GetType() LsNLRIType { if m != nil { @@ -1468,6 +1507,7 @@ type MpReachNLRIAttribute struct { // - EVPNInclusiveMulticastEthernetTagRoute // - EVPNEthernetSegmentRoute // - EVPNIPPrefixRoute + // - EVPNIPMSIRoute // - LabeledVPNIPAddressPrefix // - RouteTargetMembershipNLRI // - FlowSpecNLRI @@ -1480,7 +1520,7 @@ type MpReachNLRIAttribute struct { func (m *MpReachNLRIAttribute) Reset() { *m = MpReachNLRIAttribute{} } func (m *MpReachNLRIAttribute) String() string { return proto.CompactTextString(m) } func (*MpReachNLRIAttribute) ProtoMessage() {} -func (*MpReachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } +func (*MpReachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } func (m *MpReachNLRIAttribute) GetFamily() *Family { if m != nil { @@ -1512,7 +1552,7 @@ type MpUnreachNLRIAttribute struct { func (m *MpUnreachNLRIAttribute) Reset() { *m = MpUnreachNLRIAttribute{} } func (m *MpUnreachNLRIAttribute) String() string { return proto.CompactTextString(m) } func (*MpUnreachNLRIAttribute) ProtoMessage() {} -func (*MpUnreachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } +func (*MpUnreachNLRIAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } func (m *MpUnreachNLRIAttribute) GetFamily() *Family { if m != nil { @@ -1538,7 +1578,7 @@ type TwoOctetAsSpecificExtended struct { func (m *TwoOctetAsSpecificExtended) Reset() { *m = TwoOctetAsSpecificExtended{} } func (m *TwoOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) } func (*TwoOctetAsSpecificExtended) ProtoMessage() {} -func (*TwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } +func (*TwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } func (m *TwoOctetAsSpecificExtended) GetIsTransitive() bool { if m != nil { @@ -1578,7 +1618,7 @@ type IPv4AddressSpecificExtended struct { func (m *IPv4AddressSpecificExtended) Reset() { *m = IPv4AddressSpecificExtended{} } func (m *IPv4AddressSpecificExtended) String() string { return proto.CompactTextString(m) } func (*IPv4AddressSpecificExtended) ProtoMessage() {} -func (*IPv4AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } +func (*IPv4AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } func (m *IPv4AddressSpecificExtended) GetIsTransitive() bool { if m != nil { @@ -1618,7 +1658,7 @@ type FourOctetAsSpecificExtended struct { func (m *FourOctetAsSpecificExtended) Reset() { *m = FourOctetAsSpecificExtended{} } func (m *FourOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) } func (*FourOctetAsSpecificExtended) ProtoMessage() {} -func (*FourOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } +func (*FourOctetAsSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } func (m *FourOctetAsSpecificExtended) GetIsTransitive() bool { if m != nil { @@ -1655,7 +1695,7 @@ type ValidationExtended struct { func (m *ValidationExtended) Reset() { *m = ValidationExtended{} } func (m *ValidationExtended) String() string { return proto.CompactTextString(m) } func (*ValidationExtended) ProtoMessage() {} -func (*ValidationExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } +func (*ValidationExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } func (m *ValidationExtended) GetState() uint32 { if m != nil { @@ -1671,7 +1711,7 @@ type ColorExtended struct { func (m *ColorExtended) Reset() { *m = ColorExtended{} } func (m *ColorExtended) String() string { return proto.CompactTextString(m) } func (*ColorExtended) ProtoMessage() {} -func (*ColorExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } +func (*ColorExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } func (m *ColorExtended) GetColor() uint32 { if m != nil { @@ -1687,7 +1727,7 @@ type EncapExtended struct { func (m *EncapExtended) Reset() { *m = EncapExtended{} } func (m *EncapExtended) String() string { return proto.CompactTextString(m) } func (*EncapExtended) ProtoMessage() {} -func (*EncapExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } +func (*EncapExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } func (m *EncapExtended) GetTunnelType() uint32 { if m != nil { @@ -1702,7 +1742,7 @@ type DefaultGatewayExtended struct { func (m *DefaultGatewayExtended) Reset() { *m = DefaultGatewayExtended{} } func (m *DefaultGatewayExtended) String() string { return proto.CompactTextString(m) } func (*DefaultGatewayExtended) ProtoMessage() {} -func (*DefaultGatewayExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } +func (*DefaultGatewayExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } type OpaqueExtended struct { IsTransitive bool `protobuf:"varint,1,opt,name=is_transitive,json=isTransitive" json:"is_transitive,omitempty"` @@ -1712,7 +1752,7 @@ type OpaqueExtended struct { func (m *OpaqueExtended) Reset() { *m = OpaqueExtended{} } func (m *OpaqueExtended) String() string { return proto.CompactTextString(m) } func (*OpaqueExtended) ProtoMessage() {} -func (*OpaqueExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } +func (*OpaqueExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } func (m *OpaqueExtended) GetIsTransitive() bool { if m != nil { @@ -1736,7 +1776,7 @@ type ESILabelExtended struct { func (m *ESILabelExtended) Reset() { *m = ESILabelExtended{} } func (m *ESILabelExtended) String() string { return proto.CompactTextString(m) } func (*ESILabelExtended) ProtoMessage() {} -func (*ESILabelExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } +func (*ESILabelExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } func (m *ESILabelExtended) GetIsSingleActive() bool { if m != nil { @@ -1759,7 +1799,7 @@ type ESImportRouteTarget struct { func (m *ESImportRouteTarget) Reset() { *m = ESImportRouteTarget{} } func (m *ESImportRouteTarget) String() string { return proto.CompactTextString(m) } func (*ESImportRouteTarget) ProtoMessage() {} -func (*ESImportRouteTarget) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } +func (*ESImportRouteTarget) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } func (m *ESImportRouteTarget) GetEsImport() string { if m != nil { @@ -1776,7 +1816,7 @@ type MacMobilityExtended struct { func (m *MacMobilityExtended) Reset() { *m = MacMobilityExtended{} } func (m *MacMobilityExtended) String() string { return proto.CompactTextString(m) } func (*MacMobilityExtended) ProtoMessage() {} -func (*MacMobilityExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } +func (*MacMobilityExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } func (m *MacMobilityExtended) GetIsSticky() bool { if m != nil { @@ -1799,7 +1839,7 @@ type RouterMacExtended struct { func (m *RouterMacExtended) Reset() { *m = RouterMacExtended{} } func (m *RouterMacExtended) String() string { return proto.CompactTextString(m) } func (*RouterMacExtended) ProtoMessage() {} -func (*RouterMacExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } +func (*RouterMacExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} } func (m *RouterMacExtended) GetMac() string { if m != nil { @@ -1816,7 +1856,7 @@ type TrafficRateExtended struct { func (m *TrafficRateExtended) Reset() { *m = TrafficRateExtended{} } func (m *TrafficRateExtended) String() string { return proto.CompactTextString(m) } func (*TrafficRateExtended) ProtoMessage() {} -func (*TrafficRateExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} } +func (*TrafficRateExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} } func (m *TrafficRateExtended) GetAs() uint32 { if m != nil { @@ -1840,7 +1880,7 @@ type TrafficActionExtended struct { func (m *TrafficActionExtended) Reset() { *m = TrafficActionExtended{} } func (m *TrafficActionExtended) String() string { return proto.CompactTextString(m) } func (*TrafficActionExtended) ProtoMessage() {} -func (*TrafficActionExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} } +func (*TrafficActionExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} } func (m *TrafficActionExtended) GetTerminal() bool { if m != nil { @@ -1865,7 +1905,7 @@ func (m *RedirectTwoOctetAsSpecificExtended) Reset() { *m = RedirectTwoO func (m *RedirectTwoOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) } func (*RedirectTwoOctetAsSpecificExtended) ProtoMessage() {} func (*RedirectTwoOctetAsSpecificExtended) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{56} + return fileDescriptor0, []int{57} } func (m *RedirectTwoOctetAsSpecificExtended) GetAs() uint32 { @@ -1891,7 +1931,7 @@ func (m *RedirectIPv4AddressSpecificExtended) Reset() { *m = RedirectIPv func (m *RedirectIPv4AddressSpecificExtended) String() string { return proto.CompactTextString(m) } func (*RedirectIPv4AddressSpecificExtended) ProtoMessage() {} func (*RedirectIPv4AddressSpecificExtended) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{57} + return fileDescriptor0, []int{58} } func (m *RedirectIPv4AddressSpecificExtended) GetAddress() string { @@ -1917,7 +1957,7 @@ func (m *RedirectFourOctetAsSpecificExtended) Reset() { *m = RedirectFou func (m *RedirectFourOctetAsSpecificExtended) String() string { return proto.CompactTextString(m) } func (*RedirectFourOctetAsSpecificExtended) ProtoMessage() {} func (*RedirectFourOctetAsSpecificExtended) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{58} + return fileDescriptor0, []int{59} } func (m *RedirectFourOctetAsSpecificExtended) GetAs() uint32 { @@ -1941,7 +1981,7 @@ type TrafficRemarkExtended struct { func (m *TrafficRemarkExtended) Reset() { *m = TrafficRemarkExtended{} } func (m *TrafficRemarkExtended) String() string { return proto.CompactTextString(m) } func (*TrafficRemarkExtended) ProtoMessage() {} -func (*TrafficRemarkExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} } +func (*TrafficRemarkExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} } func (m *TrafficRemarkExtended) GetDscp() uint32 { if m != nil { @@ -1958,7 +1998,7 @@ type UnknownExtended struct { func (m *UnknownExtended) Reset() { *m = UnknownExtended{} } func (m *UnknownExtended) String() string { return proto.CompactTextString(m) } func (*UnknownExtended) ProtoMessage() {} -func (*UnknownExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} } +func (*UnknownExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} } func (m *UnknownExtended) GetType() uint32 { if m != nil { @@ -1996,7 +2036,7 @@ type ExtendedCommunitiesAttribute struct { func (m *ExtendedCommunitiesAttribute) Reset() { *m = ExtendedCommunitiesAttribute{} } func (m *ExtendedCommunitiesAttribute) String() string { return proto.CompactTextString(m) } func (*ExtendedCommunitiesAttribute) ProtoMessage() {} -func (*ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} } +func (*ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} } func (m *ExtendedCommunitiesAttribute) GetCommunities() []*google_protobuf.Any { if m != nil { @@ -2012,7 +2052,7 @@ type As4PathAttribute struct { func (m *As4PathAttribute) Reset() { *m = As4PathAttribute{} } func (m *As4PathAttribute) String() string { return proto.CompactTextString(m) } func (*As4PathAttribute) ProtoMessage() {} -func (*As4PathAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} } +func (*As4PathAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} } func (m *As4PathAttribute) GetSegments() []*AsSegment { if m != nil { @@ -2029,7 +2069,7 @@ type As4AggregatorAttribute struct { func (m *As4AggregatorAttribute) Reset() { *m = As4AggregatorAttribute{} } func (m *As4AggregatorAttribute) String() string { return proto.CompactTextString(m) } func (*As4AggregatorAttribute) ProtoMessage() {} -func (*As4AggregatorAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} } +func (*As4AggregatorAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} } func (m *As4AggregatorAttribute) GetAs() uint32 { if m != nil { @@ -2055,7 +2095,7 @@ type PmsiTunnelAttribute struct { func (m *PmsiTunnelAttribute) Reset() { *m = PmsiTunnelAttribute{} } func (m *PmsiTunnelAttribute) String() string { return proto.CompactTextString(m) } func (*PmsiTunnelAttribute) ProtoMessage() {} -func (*PmsiTunnelAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} } +func (*PmsiTunnelAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} } func (m *PmsiTunnelAttribute) GetFlags() uint32 { if m != nil { @@ -2093,7 +2133,7 @@ type TunnelEncapSubTLVEncapsulation struct { func (m *TunnelEncapSubTLVEncapsulation) Reset() { *m = TunnelEncapSubTLVEncapsulation{} } func (m *TunnelEncapSubTLVEncapsulation) String() string { return proto.CompactTextString(m) } func (*TunnelEncapSubTLVEncapsulation) ProtoMessage() {} -func (*TunnelEncapSubTLVEncapsulation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} } +func (*TunnelEncapSubTLVEncapsulation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} } func (m *TunnelEncapSubTLVEncapsulation) GetKey() uint32 { if m != nil { @@ -2116,7 +2156,7 @@ type TunnelEncapSubTLVProtocol struct { func (m *TunnelEncapSubTLVProtocol) Reset() { *m = TunnelEncapSubTLVProtocol{} } func (m *TunnelEncapSubTLVProtocol) String() string { return proto.CompactTextString(m) } func (*TunnelEncapSubTLVProtocol) ProtoMessage() {} -func (*TunnelEncapSubTLVProtocol) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} } +func (*TunnelEncapSubTLVProtocol) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} } func (m *TunnelEncapSubTLVProtocol) GetProtocol() uint32 { if m != nil { @@ -2132,7 +2172,7 @@ type TunnelEncapSubTLVColor struct { func (m *TunnelEncapSubTLVColor) Reset() { *m = TunnelEncapSubTLVColor{} } func (m *TunnelEncapSubTLVColor) String() string { return proto.CompactTextString(m) } func (*TunnelEncapSubTLVColor) ProtoMessage() {} -func (*TunnelEncapSubTLVColor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} } +func (*TunnelEncapSubTLVColor) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} } func (m *TunnelEncapSubTLVColor) GetColor() uint32 { if m != nil { @@ -2149,7 +2189,7 @@ type TunnelEncapSubTLVUnknown struct { func (m *TunnelEncapSubTLVUnknown) Reset() { *m = TunnelEncapSubTLVUnknown{} } func (m *TunnelEncapSubTLVUnknown) String() string { return proto.CompactTextString(m) } func (*TunnelEncapSubTLVUnknown) ProtoMessage() {} -func (*TunnelEncapSubTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} } +func (*TunnelEncapSubTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} } func (m *TunnelEncapSubTLVUnknown) GetType() uint32 { if m != nil { @@ -2178,7 +2218,7 @@ type TunnelEncapTLV struct { func (m *TunnelEncapTLV) Reset() { *m = TunnelEncapTLV{} } func (m *TunnelEncapTLV) String() string { return proto.CompactTextString(m) } func (*TunnelEncapTLV) ProtoMessage() {} -func (*TunnelEncapTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} } +func (*TunnelEncapTLV) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} } func (m *TunnelEncapTLV) GetType() uint32 { if m != nil { @@ -2201,7 +2241,7 @@ type TunnelEncapAttribute struct { func (m *TunnelEncapAttribute) Reset() { *m = TunnelEncapAttribute{} } func (m *TunnelEncapAttribute) String() string { return proto.CompactTextString(m) } func (*TunnelEncapAttribute) ProtoMessage() {} -func (*TunnelEncapAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} } +func (*TunnelEncapAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} } func (m *TunnelEncapAttribute) GetTlvs() []*TunnelEncapTLV { if m != nil { @@ -2220,7 +2260,7 @@ type IPv6AddressSpecificExtended struct { func (m *IPv6AddressSpecificExtended) Reset() { *m = IPv6AddressSpecificExtended{} } func (m *IPv6AddressSpecificExtended) String() string { return proto.CompactTextString(m) } func (*IPv6AddressSpecificExtended) ProtoMessage() {} -func (*IPv6AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} } +func (*IPv6AddressSpecificExtended) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} } func (m *IPv6AddressSpecificExtended) GetIsTransitive() bool { if m != nil { @@ -2259,7 +2299,7 @@ func (m *RedirectIPv6AddressSpecificExtended) Reset() { *m = RedirectIPv func (m *RedirectIPv6AddressSpecificExtended) String() string { return proto.CompactTextString(m) } func (*RedirectIPv6AddressSpecificExtended) ProtoMessage() {} func (*RedirectIPv6AddressSpecificExtended) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{72} + return fileDescriptor0, []int{73} } func (m *RedirectIPv6AddressSpecificExtended) GetAddress() string { @@ -2287,7 +2327,7 @@ func (m *IP6ExtendedCommunitiesAttribute) Reset() { *m = IP6ExtendedComm func (m *IP6ExtendedCommunitiesAttribute) String() string { return proto.CompactTextString(m) } func (*IP6ExtendedCommunitiesAttribute) ProtoMessage() {} func (*IP6ExtendedCommunitiesAttribute) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{73} + return fileDescriptor0, []int{74} } func (m *IP6ExtendedCommunitiesAttribute) GetCommunities() []*google_protobuf.Any { @@ -2304,7 +2344,7 @@ type AigpTLVIGPMetric struct { func (m *AigpTLVIGPMetric) Reset() { *m = AigpTLVIGPMetric{} } func (m *AigpTLVIGPMetric) String() string { return proto.CompactTextString(m) } func (*AigpTLVIGPMetric) ProtoMessage() {} -func (*AigpTLVIGPMetric) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} } +func (*AigpTLVIGPMetric) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} } func (m *AigpTLVIGPMetric) GetMetric() uint64 { if m != nil { @@ -2321,7 +2361,7 @@ type AigpTLVUnknown struct { func (m *AigpTLVUnknown) Reset() { *m = AigpTLVUnknown{} } func (m *AigpTLVUnknown) String() string { return proto.CompactTextString(m) } func (*AigpTLVUnknown) ProtoMessage() {} -func (*AigpTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} } +func (*AigpTLVUnknown) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} } func (m *AigpTLVUnknown) GetType() uint32 { if m != nil { @@ -2347,7 +2387,7 @@ type AigpAttribute struct { func (m *AigpAttribute) Reset() { *m = AigpAttribute{} } func (m *AigpAttribute) String() string { return proto.CompactTextString(m) } func (*AigpAttribute) ProtoMessage() {} -func (*AigpAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} } +func (*AigpAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} } func (m *AigpAttribute) GetTlvs() []*google_protobuf.Any { if m != nil { @@ -2365,7 +2405,7 @@ type LargeCommunity struct { func (m *LargeCommunity) Reset() { *m = LargeCommunity{} } func (m *LargeCommunity) String() string { return proto.CompactTextString(m) } func (*LargeCommunity) ProtoMessage() {} -func (*LargeCommunity) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} } +func (*LargeCommunity) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} } func (m *LargeCommunity) GetGlobalAdmin() uint32 { if m != nil { @@ -2395,7 +2435,7 @@ type LargeCommunitiesAttribute struct { func (m *LargeCommunitiesAttribute) Reset() { *m = LargeCommunitiesAttribute{} } func (m *LargeCommunitiesAttribute) String() string { return proto.CompactTextString(m) } func (*LargeCommunitiesAttribute) ProtoMessage() {} -func (*LargeCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} } +func (*LargeCommunitiesAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} } func (m *LargeCommunitiesAttribute) GetCommunities() []*LargeCommunity { if m != nil { @@ -2416,7 +2456,7 @@ type LsNodeFlags struct { func (m *LsNodeFlags) Reset() { *m = LsNodeFlags{} } func (m *LsNodeFlags) String() string { return proto.CompactTextString(m) } func (*LsNodeFlags) ProtoMessage() {} -func (*LsNodeFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} } +func (*LsNodeFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} } func (m *LsNodeFlags) GetOverload() bool { if m != nil { @@ -2470,7 +2510,7 @@ type LsIGPFlags struct { func (m *LsIGPFlags) Reset() { *m = LsIGPFlags{} } func (m *LsIGPFlags) String() string { return proto.CompactTextString(m) } func (*LsIGPFlags) ProtoMessage() {} -func (*LsIGPFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} } +func (*LsIGPFlags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} } func (m *LsIGPFlags) GetDown() bool { if m != nil { @@ -2508,7 +2548,7 @@ type LsSrRange struct { func (m *LsSrRange) Reset() { *m = LsSrRange{} } func (m *LsSrRange) String() string { return proto.CompactTextString(m) } func (*LsSrRange) ProtoMessage() {} -func (*LsSrRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} } +func (*LsSrRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} } func (m *LsSrRange) GetBegin() uint32 { if m != nil { @@ -2533,7 +2573,7 @@ type LsSrCapabilities struct { func (m *LsSrCapabilities) Reset() { *m = LsSrCapabilities{} } func (m *LsSrCapabilities) String() string { return proto.CompactTextString(m) } func (*LsSrCapabilities) ProtoMessage() {} -func (*LsSrCapabilities) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} } +func (*LsSrCapabilities) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} } func (m *LsSrCapabilities) GetIpv4Supported() bool { if m != nil { @@ -2563,7 +2603,7 @@ type LsSrLocalBlock struct { func (m *LsSrLocalBlock) Reset() { *m = LsSrLocalBlock{} } func (m *LsSrLocalBlock) String() string { return proto.CompactTextString(m) } func (*LsSrLocalBlock) ProtoMessage() {} -func (*LsSrLocalBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} } +func (*LsSrLocalBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} } func (m *LsSrLocalBlock) GetRanges() []*LsSrRange { if m != nil { @@ -2587,7 +2627,7 @@ type LsAttributeNode struct { func (m *LsAttributeNode) Reset() { *m = LsAttributeNode{} } func (m *LsAttributeNode) String() string { return proto.CompactTextString(m) } func (*LsAttributeNode) ProtoMessage() {} -func (*LsAttributeNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} } +func (*LsAttributeNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} } func (m *LsAttributeNode) GetName() string { if m != nil { @@ -2671,7 +2711,7 @@ type LsAttributeLink struct { func (m *LsAttributeLink) Reset() { *m = LsAttributeLink{} } func (m *LsAttributeLink) String() string { return proto.CompactTextString(m) } func (*LsAttributeLink) ProtoMessage() {} -func (*LsAttributeLink) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} } +func (*LsAttributeLink) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} } func (m *LsAttributeLink) GetName() string { if m != nil { @@ -2773,7 +2813,7 @@ type LsAttributePrefix struct { func (m *LsAttributePrefix) Reset() { *m = LsAttributePrefix{} } func (m *LsAttributePrefix) String() string { return proto.CompactTextString(m) } func (*LsAttributePrefix) ProtoMessage() {} -func (*LsAttributePrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} } +func (*LsAttributePrefix) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} } func (m *LsAttributePrefix) GetIgpFlags() *LsIGPFlags { if m != nil { @@ -2805,7 +2845,7 @@ type LsAttribute struct { func (m *LsAttribute) Reset() { *m = LsAttribute{} } func (m *LsAttribute) String() string { return proto.CompactTextString(m) } func (*LsAttribute) ProtoMessage() {} -func (*LsAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} } +func (*LsAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} } func (m *LsAttribute) GetNode() *LsAttributeNode { if m != nil { @@ -2837,7 +2877,7 @@ type UnknownAttribute struct { func (m *UnknownAttribute) Reset() { *m = UnknownAttribute{} } func (m *UnknownAttribute) String() string { return proto.CompactTextString(m) } func (*UnknownAttribute) ProtoMessage() {} -func (*UnknownAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} } +func (*UnknownAttribute) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} } func (m *UnknownAttribute) GetFlags() uint32 { if m != nil { @@ -2884,6 +2924,7 @@ func init() { proto.RegisterType((*EVPNInclusiveMulticastEthernetTagRoute)(nil), "gobgpapi.EVPNInclusiveMulticastEthernetTagRoute") proto.RegisterType((*EVPNEthernetSegmentRoute)(nil), "gobgpapi.EVPNEthernetSegmentRoute") proto.RegisterType((*EVPNIPPrefixRoute)(nil), "gobgpapi.EVPNIPPrefixRoute") + proto.RegisterType((*EVPNIPMSIRoute)(nil), "gobgpapi.EVPNIPMSIRoute") proto.RegisterType((*LabeledVPNIPAddressPrefix)(nil), "gobgpapi.LabeledVPNIPAddressPrefix") proto.RegisterType((*RouteTargetMembershipNLRI)(nil), "gobgpapi.RouteTargetMembershipNLRI") proto.RegisterType((*FlowSpecIPPrefix)(nil), "gobgpapi.FlowSpecIPPrefix") @@ -2956,194 +2997,195 @@ func init() { func init() { proto.RegisterFile("attribute.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ - // 3011 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x39, 0x5d, 0x53, 0x1c, 0x47, - 0x92, 0x37, 0x33, 0x80, 0x66, 0x72, 0x18, 0x18, 0x1a, 0x44, 0x0c, 0x48, 0xb2, 0x74, 0x2d, 0x7f, - 0x70, 0x92, 0x25, 0x9f, 0x11, 0x9e, 0x3b, 0xd9, 0xe1, 0xbb, 0x18, 0x01, 0x92, 0xe7, 0x34, 0x20, - 0xdc, 0x20, 0x7c, 0xf7, 0x72, 0x7d, 0x35, 0xdd, 0x45, 0x53, 0x47, 0x4f, 0x77, 0xbb, 0xaa, 0x1a, - 0xc4, 0xeb, 0x46, 0xec, 0x46, 0x38, 0x36, 0x76, 0xc3, 0x4f, 0x1b, 0x8e, 0xd8, 0x97, 0x7d, 0xda, - 0x9f, 0xb0, 0xff, 0x61, 0x7f, 0xd0, 0xbe, 0x6f, 0xd4, 0x57, 0x7f, 0x0c, 0x83, 0x90, 0xac, 0x75, - 0x84, 0xde, 0x3a, 0xb3, 0xb2, 0xb2, 0xb2, 0x32, 0xb3, 0xf2, 0xab, 0x61, 0x1e, 0x71, 0x4e, 0xc9, - 0x30, 0xe5, 0xf8, 0x61, 0x42, 0x63, 0x1e, 0x5b, 0xf5, 0x20, 0x1e, 0x06, 0x09, 0x4a, 0xc8, 0x6a, - 0x0b, 0x45, 0xe7, 0x9f, 0xa1, 0xe8, 0x5c, 0x2d, 0xac, 0x36, 0xe5, 0x82, 0x02, 0xec, 0x7f, 0x81, - 0xf9, 0x17, 0x94, 0x04, 0x24, 0xea, 0x99, 0xed, 0xd6, 0x32, 0xcc, 0xc4, 0x12, 0xd5, 0xa9, 0xdc, - 0xa9, 0xac, 0xb5, 0x1c, 0x0d, 0xd9, 0x8f, 0xa1, 0xd1, 0x63, 0xfb, 0x38, 0x18, 0xe1, 0x88, 0x5b, - 0x16, 0x4c, 0xf1, 0xf3, 0x04, 0x6b, 0x12, 0xf9, 0x6d, 0x75, 0xe0, 0x5a, 0x94, 0x8e, 0x86, 0x98, - 0xb2, 0x4e, 0xf5, 0x4e, 0x6d, 0xad, 0xe5, 0x18, 0xd0, 0x7e, 0x02, 0xf3, 0x3d, 0xb6, 0x87, 0xf8, - 0x71, 0x7e, 0xca, 0x67, 0x50, 0x67, 0x8a, 0x17, 0xeb, 0x54, 0xee, 0xd4, 0xd6, 0x9a, 0xeb, 0x8b, - 0x0f, 0x8d, 0xc4, 0x0f, 0xb3, 0x73, 0x9c, 0x8c, 0xc8, 0x7e, 0x00, 0xed, 0x5d, 0xfc, 0x8a, 0x7f, - 0x13, 0x27, 0x39, 0x93, 0x15, 0xa8, 0x47, 0xf8, 0x15, 0x77, 0x8f, 0xe3, 0x44, 0x4a, 0xd2, 0x70, - 0xae, 0x45, 0x8a, 0xc6, 0xbe, 0x07, 0xcb, 0x3b, 0x69, 0xc8, 0xc9, 0xf6, 0x2b, 0xc2, 0xb7, 0x08, - 0xf3, 0xf2, 0x4d, 0x6d, 0xa8, 0x8d, 0xb0, 0xaf, 0x25, 0x17, 0x9f, 0xf6, 0x23, 0xb0, 0x06, 0xb1, - 0x87, 0xc2, 0x3d, 0x8a, 0x8f, 0x72, 0xba, 0x5b, 0x00, 0xa1, 0xc0, 0xba, 0x09, 0xc5, 0x47, 0x9a, - 0xbc, 0x11, 0x1a, 0x3a, 0x7b, 0x15, 0x3a, 0x3d, 0x1e, 0x8f, 0x88, 0xd7, 0x0b, 0x02, 0x8a, 0x03, - 0xc4, 0x71, 0xb6, 0xd5, 0xfe, 0x4f, 0x58, 0x34, 0xd8, 0x98, 0xe6, 0x1c, 0xe7, 0xa0, 0x8a, 0x84, - 0x6e, 0x04, 0xa7, 0x2a, 0x62, 0x42, 0x61, 0xc8, 0xf7, 0x29, 0x66, 0xac, 0x53, 0x53, 0xd2, 0x6b, - 0xd0, 0xfe, 0x77, 0x58, 0xda, 0x8c, 0x47, 0xa3, 0x34, 0x22, 0x9c, 0x60, 0x96, 0x73, 0xb8, 0x03, - 0x4d, 0x2f, 0xc7, 0x4b, 0xc5, 0xb5, 0x9c, 0x22, 0xca, 0xfe, 0x04, 0xae, 0x2b, 0x83, 0x8a, 0xa3, - 0xfb, 0x7e, 0xe9, 0x70, 0xe2, 0x6b, 0x2d, 0x55, 0x89, 0x6f, 0xaf, 0xc1, 0xd2, 0x66, 0x98, 0x32, - 0x8e, 0xe9, 0x80, 0x30, 0x5e, 0x52, 0x0f, 0xf1, 0x15, 0xeb, 0x86, 0x23, 0x3e, 0xed, 0x6f, 0x60, - 0xbe, 0xbf, 0xd7, 0x53, 0x92, 0x89, 0xab, 0x93, 0x57, 0x42, 0x37, 0x89, 0xfc, 0x72, 0x43, 0x6c, - 0xfc, 0xa4, 0xa1, 0x30, 0x03, 0x1c, 0x09, 0x17, 0x52, 0x80, 0xbc, 0x6c, 0xc3, 0xd1, 0x90, 0x1d, - 0xc0, 0xf2, 0x00, 0x0d, 0x71, 0x88, 0xfd, 0x71, 0x86, 0xcb, 0x30, 0x13, 0x8a, 0x15, 0x73, 0x27, - 0x0d, 0x8d, 0x1d, 0x54, 0xbd, 0xfc, 0xa0, 0x5a, 0xe9, 0xa0, 0x07, 0xb0, 0xb0, 0x1d, 0x79, 0x28, - 0x61, 0x69, 0x88, 0x38, 0x89, 0xa3, 0xdd, 0x81, 0xd3, 0x2f, 0xaa, 0xbb, 0x52, 0x56, 0xf7, 0x1e, - 0xdc, 0x74, 0xe2, 0x94, 0xe3, 0x2d, 0xc2, 0x38, 0x89, 0x82, 0x94, 0xb0, 0x63, 0x4c, 0x0f, 0xce, - 0xe2, 0x17, 0x1e, 0xc7, 0xbc, 0xb7, 0x6f, 0x2d, 0xc1, 0x34, 0xf2, 0x47, 0xd9, 0x8b, 0x50, 0x80, - 0xb5, 0x0a, 0x75, 0xc4, 0x18, 0x09, 0x22, 0xec, 0x6b, 0xc9, 0x32, 0xd8, 0x7e, 0x01, 0x37, 0x2e, - 0x72, 0xcc, 0x2e, 0x5d, 0x66, 0xd8, 0x78, 0x13, 0x86, 0xdf, 0xc2, 0xad, 0x8b, 0x0c, 0x9f, 0xc6, - 0x29, 0xfd, 0xf9, 0x32, 0x6e, 0xc3, 0xca, 0x36, 0x3f, 0xc6, 0x34, 0xc2, 0x5c, 0x3f, 0xb7, 0xbe, - 0x8f, 0x23, 0x4e, 0x8e, 0x08, 0xa6, 0x13, 0x1f, 0xf8, 0x12, 0x4c, 0x9f, 0xa2, 0x30, 0xc5, 0x92, - 0xd3, 0xac, 0xa3, 0x00, 0xfb, 0x2f, 0x15, 0xf8, 0x60, 0xfb, 0x70, 0x6f, 0xd7, 0xf0, 0xea, 0xa5, - 0x3c, 0x16, 0x2f, 0x2e, 0x3e, 0xc5, 0xf4, 0x5c, 0xca, 0x6c, 0x7d, 0x08, 0x55, 0xaa, 0x7c, 0xaf, - 0xb9, 0xbe, 0xf4, 0x30, 0x88, 0xe3, 0x20, 0xd4, 0x61, 0x6a, 0x98, 0x1e, 0x3d, 0xec, 0x45, 0xe7, - 0x4e, 0x95, 0xfa, 0xd6, 0x17, 0x50, 0xc3, 0x8c, 0x48, 0xe6, 0xcd, 0xf5, 0xbb, 0x79, 0x34, 0xb8, - 0x54, 0x48, 0x47, 0xd0, 0x5b, 0xff, 0x0c, 0xb3, 0x58, 0x53, 0xb8, 0x1c, 0x05, 0xd2, 0x13, 0x5a, - 0x4e, 0xd3, 0xe0, 0x0e, 0x50, 0x20, 0x04, 0x97, 0xfe, 0xd4, 0x99, 0x52, 0xba, 0x91, 0x80, 0xfd, - 0xb7, 0x0a, 0xdc, 0x10, 0x82, 0xef, 0xf4, 0x36, 0x85, 0x65, 0x4e, 0x31, 0xe5, 0x84, 0x61, 0x19, - 0x76, 0xde, 0x0b, 0xa9, 0x6f, 0x43, 0x73, 0x84, 0x3c, 0xd7, 0xf8, 0xec, 0x94, 0x74, 0x15, 0x18, - 0x21, 0xcf, 0x78, 0xd1, 0x2d, 0x00, 0x92, 0x64, 0xeb, 0xd3, 0x72, 0xbd, 0x41, 0x12, 0xb3, 0x9c, - 0xbf, 0xa9, 0x99, 0xe2, 0x9b, 0xb2, 0x7f, 0xac, 0xc0, 0xc7, 0xe2, 0xde, 0xfd, 0xc8, 0x0b, 0x53, - 0x46, 0x4e, 0xb1, 0x0c, 0x94, 0x1e, 0x62, 0x7c, 0x3b, 0x3f, 0xfd, 0x6d, 0x54, 0x30, 0x7e, 0x97, - 0xea, 0xc5, 0xbb, 0x94, 0x45, 0xad, 0x8d, 0x89, 0x6a, 0xff, 0xa1, 0x02, 0x9d, 0xa2, 0x0f, 0x99, - 0xf0, 0xff, 0xcb, 0xdb, 0xe1, 0x0a, 0xc1, 0x7e, 0xa8, 0xc2, 0x82, 0xd4, 0xd5, 0x9e, 0x0a, 0x54, - 0xef, 0x87, 0x67, 0xdc, 0x80, 0x06, 0x49, 0x5c, 0x1d, 0xf9, 0x94, 0x5f, 0xd4, 0x49, 0xa2, 0x43, - 0xa9, 0x0d, 0xad, 0x6c, 0x51, 0x46, 0xcd, 0x69, 0xc5, 0xc0, 0x10, 0x88, 0xb8, 0x79, 0x0b, 0x20, - 0x38, 0xcb, 0x6e, 0x3d, 0xa3, 0x6e, 0x1d, 0x9c, 0x15, 0xc2, 0x93, 0x7a, 0x2f, 0xd7, 0x8a, 0xef, - 0xe5, 0xc7, 0x0a, 0xac, 0xe8, 0xf0, 0x2d, 0x35, 0xf2, 0x66, 0x11, 0x5c, 0xe9, 0xaa, 0x7a, 0x85, - 0xae, 0xca, 0x71, 0xbe, 0x76, 0x79, 0x9c, 0x9f, 0x2a, 0xc5, 0xf9, 0x6f, 0x61, 0x45, 0x5a, 0xe4, - 0x00, 0xd1, 0x00, 0xf3, 0x1d, 0x2c, 0xcb, 0x8d, 0x63, 0x92, 0xc8, 0x78, 0xaf, 0xd2, 0x6d, 0x25, - 0x4b, 0xb7, 0x42, 0x12, 0x7e, 0x85, 0x24, 0xdc, 0x4e, 0xa1, 0xfd, 0x34, 0x8c, 0xcf, 0xf6, 0x13, - 0xec, 0x19, 0xa3, 0x4f, 0x0c, 0x86, 0x3f, 0x2f, 0x33, 0xc9, 0xea, 0xea, 0xe8, 0x88, 0x61, 0xae, - 0x63, 0x91, 0x86, 0xec, 0xaf, 0xa0, 0x69, 0x8e, 0xdd, 0xe9, 0x6d, 0x5e, 0x56, 0x5f, 0x19, 0x8b, - 0x55, 0xcb, 0xf9, 0xeb, 0x6b, 0xb8, 0x6e, 0x36, 0x6f, 0xc6, 0xa3, 0x24, 0x8e, 0x84, 0x5b, 0x71, - 0x3c, 0x12, 0x2a, 0xd0, 0xa5, 0x51, 0xcb, 0xa9, 0xc6, 0x49, 0x39, 0x82, 0x4f, 0x99, 0x08, 0xfe, - 0xbf, 0xb0, 0x70, 0x61, 0xfb, 0x44, 0x09, 0xbe, 0x80, 0x69, 0xc2, 0xf1, 0x48, 0xd5, 0x77, 0xcd, - 0xf5, 0xdb, 0xb9, 0x4f, 0x4f, 0x3c, 0xde, 0x51, 0xd4, 0xf6, 0x97, 0x30, 0x6b, 0xd6, 0xa5, 0x61, - 0xee, 0xc1, 0x34, 0x4d, 0x43, 0x6c, 0x0a, 0xbf, 0xc9, 0xb6, 0x50, 0x24, 0xb6, 0x07, 0xf3, 0x87, - 0x7b, 0xbb, 0xa5, 0xed, 0x6f, 0xf6, 0xfa, 0xb2, 0x43, 0xaa, 0x57, 0x1f, 0xb2, 0x01, 0xf0, 0x22, - 0x41, 0xdf, 0xa7, 0x58, 0xf2, 0x6f, 0x43, 0xed, 0x04, 0x9f, 0xcb, 0x03, 0x66, 0x1d, 0xf1, 0x79, - 0x49, 0xe2, 0xfb, 0x73, 0x05, 0xda, 0x03, 0xb6, 0x1b, 0xfb, 0x78, 0x0b, 0x33, 0x8f, 0x92, 0x84, - 0xc7, 0x54, 0x6c, 0x46, 0xcc, 0x24, 0x61, 0xf1, 0x69, 0xad, 0x42, 0x63, 0x18, 0x24, 0x6e, 0xc8, - 0x5c, 0x62, 0x72, 0xf0, 0xb5, 0x61, 0x90, 0x0c, 0x58, 0xdf, 0xb7, 0xee, 0xc0, 0x6c, 0xcc, 0x92, - 0x23, 0x17, 0x51, 0x8c, 0xc4, 0xb2, 0x72, 0x7c, 0x10, 0xb8, 0x1e, 0xc5, 0xa8, 0xef, 0x5b, 0x1f, - 0x00, 0x24, 0x0c, 0xa7, 0x7e, 0x1c, 0xc5, 0x3e, 0x96, 0x3e, 0x53, 0x77, 0x0a, 0x18, 0xf9, 0xda, - 0x83, 0xc4, 0xa5, 0xe2, 0x15, 0x50, 0xc1, 0x42, 0xa5, 0x81, 0x26, 0x09, 0x12, 0xf9, 0x32, 0x68, - 0xdf, 0xb7, 0x7f, 0xaa, 0x0a, 0x41, 0x07, 0x24, 0x3a, 0x29, 0x08, 0x6a, 0x43, 0x2b, 0x24, 0xd1, - 0x89, 0xab, 0x6a, 0x5c, 0x62, 0x0a, 0xe2, 0xa6, 0x40, 0xca, 0x6a, 0xb8, 0xef, 0x5b, 0x1f, 0xc2, - 0x9c, 0xa4, 0xa1, 0x78, 0x14, 0x73, 0x9c, 0xcb, 0x3f, 0x2b, 0xb0, 0x8e, 0x44, 0xf6, 0x7d, 0xeb, - 0x21, 0x2c, 0x92, 0x88, 0x63, 0x7a, 0x84, 0x3c, 0x2c, 0x63, 0x8a, 0x4b, 0x92, 0xd3, 0x0d, 0xed, - 0xf7, 0x0b, 0xd9, 0x92, 0x08, 0x17, 0xfd, 0xe4, 0x74, 0xc3, 0xfa, 0x14, 0xac, 0x08, 0x93, 0xe0, - 0x78, 0x18, 0xd3, 0x02, 0xb9, 0x7a, 0xd8, 0x6d, 0xb3, 0x92, 0x51, 0x4f, 0xe4, 0xde, 0xd5, 0xd7, - 0xbc, 0xc0, 0xbd, 0x3b, 0x91, 0x7b, 0x57, 0x87, 0xb8, 0x71, 0xee, 0x5d, 0x1b, 0x83, 0x35, 0xd0, - 0x11, 0xac, 0xa0, 0x9b, 0x4f, 0x60, 0x9e, 0x24, 0x2e, 0xc5, 0xc8, 0x3b, 0x46, 0x43, 0x12, 0x12, - 0x7e, 0xae, 0xeb, 0xe1, 0x39, 0x92, 0x38, 0x05, 0xac, 0xf5, 0x31, 0xcc, 0x4b, 0xfb, 0x49, 0xf5, - 0xbb, 0xf2, 0xbd, 0xa8, 0xa7, 0xd9, 0x12, 0x68, 0x15, 0x9a, 0xce, 0x13, 0x6c, 0x3f, 0x03, 0x50, - 0x9e, 0x22, 0x1d, 0xec, 0xb1, 0xe9, 0x2c, 0xa4, 0x4d, 0x95, 0x23, 0xaf, 0xe6, 0x6f, 0x69, 0xdc, - 0xa7, 0x74, 0xd7, 0x21, 0x90, 0xf6, 0x5f, 0x2b, 0x82, 0x93, 0x30, 0xe5, 0x3b, 0x72, 0xb2, 0xbe, - 0x82, 0xa6, 0x36, 0xab, 0xdc, 0x5b, 0xbd, 0x72, 0x2f, 0x28, 0x72, 0xb9, 0x79, 0x13, 0xe6, 0xa5, - 0x63, 0xf8, 0xd9, 0xb2, 0x34, 0xf7, 0x18, 0x83, 0xb2, 0xc7, 0x39, 0xd2, 0x97, 0x72, 0x58, 0x24, - 0xfd, 0x39, 0xa3, 0xfc, 0xc3, 0x8d, 0x77, 0xbd, 0x4f, 0x1f, 0x16, 0x74, 0x3c, 0x2e, 0x08, 0xa5, - 0x6e, 0x75, 0xb3, 0xc8, 0x61, 0xdc, 0xd8, 0x4e, 0x3b, 0x19, 0xc3, 0x94, 0x05, 0xeb, 0xbe, 0x47, - 0x82, 0x0d, 0x61, 0x76, 0xc0, 0x84, 0xef, 0xea, 0xbc, 0xb4, 0x56, 0x88, 0xd1, 0x73, 0x32, 0xc4, - 0xe5, 0xf2, 0x0c, 0x9c, 0xbe, 0x70, 0x3d, 0x1d, 0xb9, 0xd7, 0x60, 0x2a, 0x0a, 0x29, 0x79, 0x6d, - 0xf6, 0x93, 0x14, 0xf6, 0x0f, 0x15, 0x58, 0xda, 0x51, 0x5e, 0x2e, 0x78, 0xe4, 0x8d, 0xe1, 0x1a, - 0xcc, 0x1c, 0xa1, 0x11, 0x09, 0xcf, 0xf5, 0xf5, 0xdb, 0x85, 0xe8, 0x2f, 0xf1, 0x8e, 0x5e, 0x17, - 0xe5, 0x89, 0x69, 0xcb, 0x55, 0xf8, 0x6d, 0x38, 0x75, 0xdd, 0x97, 0x33, 0x11, 0x97, 0xc5, 0x39, - 0xa2, 0xd6, 0x7a, 0x4d, 0x5c, 0x96, 0x24, 0x76, 0x04, 0xcb, 0x3b, 0xc9, 0xcb, 0x88, 0xbe, 0x8b, - 0x30, 0x6f, 0x73, 0xde, 0xef, 0x2a, 0xb0, 0x9a, 0xb5, 0x7d, 0x4c, 0x24, 0x1c, 0x72, 0x44, 0xbc, - 0xed, 0x57, 0x1c, 0x47, 0x3e, 0xf6, 0xad, 0xbb, 0xd0, 0x22, 0xcc, 0xe5, 0x14, 0x45, 0x8c, 0x70, - 0x72, 0xaa, 0xf4, 0x5e, 0x77, 0x66, 0x09, 0x3b, 0xc8, 0x70, 0xd6, 0x0a, 0xd4, 0x59, 0x3a, 0xcc, - 0x63, 0x41, 0xcb, 0xb9, 0xc6, 0xd2, 0xa1, 0x30, 0x85, 0x2e, 0x48, 0x6a, 0x59, 0x41, 0x72, 0x1b, - 0x9a, 0xca, 0xa9, 0x54, 0xe3, 0xa6, 0x0a, 0x02, 0xe5, 0x67, 0x3d, 0x81, 0xb1, 0x7f, 0xaa, 0xc0, - 0x8d, 0xfe, 0xde, 0xe9, 0x86, 0xae, 0xb4, 0xfe, 0xe1, 0x02, 0x5d, 0x3a, 0x80, 0xb8, 0x5a, 0xb4, - 0xdf, 0x57, 0xe0, 0x46, 0xde, 0x7e, 0xbe, 0x07, 0xba, 0xba, 0x07, 0xd6, 0x21, 0x0a, 0x89, 0x2f, - 0xfb, 0xfd, 0x4c, 0x8c, 0x25, 0x98, 0x66, 0x1c, 0x71, 0x53, 0xc6, 0x28, 0xc0, 0xfe, 0x08, 0x5a, - 0x9b, 0x71, 0x18, 0xd3, 0x22, 0x99, 0x27, 0x10, 0x86, 0x4c, 0x02, 0xf6, 0xbf, 0x42, 0x4b, 0x4e, - 0x11, 0x32, 0xb2, 0xdb, 0xd0, 0xe4, 0x69, 0x14, 0xe1, 0xd0, 0x2d, 0x94, 0x46, 0xa0, 0x50, 0x32, - 0xce, 0x77, 0x60, 0x79, 0x0b, 0x1f, 0xa1, 0x34, 0xe4, 0xcf, 0x10, 0xc7, 0x67, 0xe8, 0xdc, 0x6c, - 0xb5, 0x9f, 0xc3, 0x9c, 0x2a, 0x31, 0xde, 0x4e, 0x43, 0x59, 0xe5, 0x51, 0x2b, 0x56, 0x1e, 0x0e, - 0xb4, 0xb7, 0xf7, 0xfb, 0xb2, 0x16, 0xcf, 0xd8, 0xad, 0x41, 0x9b, 0x30, 0x97, 0x91, 0x28, 0x08, - 0xb1, 0x8b, 0xbc, 0x02, 0xc7, 0x39, 0xc2, 0xf6, 0x25, 0xba, 0xe7, 0x19, 0x9e, 0xaa, 0xba, 0xaf, - 0x16, 0xab, 0xfb, 0x75, 0x58, 0xdc, 0xde, 0xef, 0x8f, 0x92, 0x98, 0xf2, 0x42, 0x49, 0x2d, 0xde, - 0x32, 0x66, 0x2e, 0x91, 0x78, 0x3d, 0xad, 0xa8, 0x63, 0xa6, 0xe8, 0xec, 0x97, 0xb0, 0xb8, 0x83, - 0xbc, 0x9d, 0x58, 0x65, 0xc3, 0x4c, 0x14, 0xd1, 0x9e, 0x30, 0x97, 0x71, 0xe2, 0x9d, 0x9c, 0x6b, - 0x19, 0xea, 0x84, 0xed, 0x4b, 0x58, 0xb4, 0x37, 0x0c, 0x7f, 0x9f, 0xe2, 0xc8, 0xc3, 0x6e, 0x94, - 0x8e, 0x4c, 0xb3, 0x68, 0x70, 0xbb, 0xe9, 0xc8, 0xfe, 0x08, 0x16, 0x54, 0xed, 0xb2, 0x83, 0x72, - 0x87, 0x6a, 0x43, 0x6d, 0x84, 0x3c, 0x2d, 0x82, 0xf8, 0xb4, 0x1f, 0xc3, 0xe2, 0x01, 0x45, 0x47, - 0x47, 0xc4, 0x73, 0x10, 0xcf, 0xf5, 0x3a, 0x5e, 0xf6, 0x5b, 0x30, 0x45, 0x85, 0x07, 0x88, 0x83, - 0xaa, 0x8e, 0xfc, 0xb6, 0x9f, 0xc3, 0x75, 0xbd, 0x55, 0xe8, 0xa4, 0xe0, 0x2f, 0xab, 0x50, 0xe7, - 0x98, 0x8e, 0x48, 0x84, 0x42, 0x23, 0xb9, 0x81, 0x45, 0xe9, 0xce, 0xd0, 0x28, 0x09, 0x15, 0xab, - 0xba, 0xa3, 0x21, 0xfb, 0x25, 0xd8, 0x0e, 0xf6, 0x09, 0xc5, 0x1e, 0x7f, 0x4d, 0xf0, 0x18, 0x17, - 0x6b, 0xcc, 0xa1, 0xab, 0x17, 0x1c, 0xfa, 0xff, 0xe0, 0xae, 0x61, 0xfb, 0xba, 0x18, 0x70, 0xe9, - 0x54, 0xeb, 0xea, 0x13, 0x0e, 0xf3, 0x13, 0x5e, 0xf7, 0x94, 0xdf, 0x5a, 0xf2, 0xfb, 0x99, 0x76, - 0x1d, 0x3c, 0x42, 0xf4, 0x24, 0xe3, 0x64, 0xc1, 0x94, 0xcf, 0x3c, 0xd3, 0x90, 0xc8, 0x6f, 0xfb, - 0x2b, 0x98, 0x7f, 0x19, 0x9d, 0x44, 0xf1, 0x59, 0x54, 0x24, 0x7b, 0xc3, 0xd9, 0xd3, 0x21, 0xdc, - 0x34, 0xbb, 0x26, 0xce, 0x4b, 0xbb, 0x17, 0xe7, 0xa5, 0x97, 0xa5, 0x80, 0xd2, 0x14, 0x75, 0x13, - 0xda, 0x3d, 0xb6, 0xf1, 0x8e, 0x13, 0xeb, 0x27, 0xb0, 0xdc, 0x63, 0x1b, 0xef, 0x36, 0x08, 0xc6, - 0xb0, 0xb8, 0x37, 0x62, 0xe4, 0x40, 0x86, 0x98, 0x9c, 0xc1, 0x12, 0x4c, 0x1f, 0x85, 0x28, 0x30, - 0x56, 0x51, 0x40, 0xa6, 0xb7, 0x6a, 0x59, 0x6f, 0xea, 0xb1, 0xd7, 0x0a, 0x8f, 0x5d, 0x0f, 0x83, - 0xa7, 0xa4, 0x2a, 0xab, 0xc4, 0xb7, 0xff, 0x0b, 0x3e, 0x50, 0x47, 0xc8, 0x78, 0xb7, 0x9f, 0x0e, - 0x0f, 0x06, 0x87, 0xa5, 0x01, 0x6a, 0xb1, 0x29, 0x6a, 0xa9, 0xa6, 0x68, 0x19, 0x66, 0xbc, 0x38, - 0x3e, 0x21, 0xc6, 0x24, 0x1a, 0xb2, 0xff, 0x0d, 0x56, 0x2e, 0xf0, 0xda, 0x13, 0x9a, 0xf6, 0xe2, - 0x50, 0xbc, 0xaf, 0x44, 0x7f, 0x6b, 0x5e, 0x19, 0x6c, 0x3f, 0x84, 0xe5, 0x0b, 0x1b, 0x65, 0x98, - 0xbe, 0x24, 0x3c, 0x6f, 0x41, 0xe7, 0x02, 0xbd, 0x76, 0xa5, 0xb7, 0x70, 0xa1, 0x5d, 0x98, 0x2b, - 0x70, 0x39, 0x18, 0x1c, 0x4e, 0xdc, 0x2b, 0x2a, 0xad, 0xf0, 0xf4, 0xf5, 0xcd, 0xa4, 0xa4, 0xb0, - 0xb7, 0x60, 0xa9, 0xc0, 0x2f, 0x37, 0xd9, 0xa7, 0x9a, 0x83, 0x72, 0x9d, 0x4e, 0xee, 0x3a, 0xe5, - 0xd3, 0x35, 0x17, 0x9d, 0xf9, 0xbb, 0xef, 0x61, 0xe6, 0x2f, 0xc7, 0xa5, 0xee, 0x2f, 0x10, 0x97, - 0xfe, 0x07, 0x6e, 0xf7, 0xf7, 0xba, 0xbf, 0xc8, 0xc3, 0xbe, 0x07, 0xed, 0x1e, 0x09, 0x84, 0xa2, - 0xfb, 0xcf, 0xf6, 0x76, 0x30, 0xa7, 0xc4, 0x13, 0x8e, 0x3c, 0x92, 0x5f, 0x52, 0xd0, 0x29, 0x47, - 0x43, 0xf6, 0x97, 0x30, 0xa7, 0x69, 0xdf, 0xde, 0xab, 0x1e, 0x43, 0x4b, 0xec, 0x2d, 0x16, 0xac, - 0x45, 0xf3, 0xbf, 0xce, 0x81, 0x52, 0x98, 0x1b, 0x88, 0xdc, 0x6b, 0xee, 0x2d, 0x53, 0x66, 0x10, - 0xc6, 0xc3, 0x4c, 0x63, 0xba, 0x53, 0x57, 0x38, 0xa9, 0xb2, 0x5c, 0xa7, 0x3e, 0xe2, 0xe8, 0xf3, - 0x92, 0x4e, 0xb7, 0x04, 0xa6, 0x4c, 0xb0, 0x6e, 0x06, 0x0d, 0x19, 0xc1, 0xba, 0xfd, 0x1d, 0xac, - 0x94, 0x8e, 0x2d, 0xa9, 0xfb, 0xcb, 0x49, 0xea, 0x2e, 0xf8, 0x70, 0x59, 0xe0, 0xb2, 0xca, 0xff, - 0x58, 0x81, 0xa6, 0xea, 0x8f, 0x9e, 0xca, 0x28, 0xb5, 0x0a, 0xf5, 0xf8, 0x14, 0xd3, 0x30, 0x46, - 0xbe, 0x49, 0xb1, 0x06, 0x96, 0xbf, 0x2b, 0x38, 0x47, 0xde, 0xb1, 0xfe, 0x5d, 0x51, 0x77, 0x32, - 0x58, 0xac, 0xe1, 0x57, 0x1c, 0x53, 0x91, 0x9a, 0x6b, 0x6a, 0xcd, 0xc0, 0x72, 0xea, 0x32, 0xa4, - 0x7a, 0x3c, 0x22, 0x3e, 0x85, 0x51, 0xd5, 0x4c, 0x44, 0x4e, 0x0a, 0xea, 0x8e, 0x86, 0x44, 0xe4, - 0xd3, 0xe3, 0x80, 0xba, 0x53, 0x3d, 0xed, 0xda, 0xbf, 0x95, 0x0d, 0x75, 0xff, 0xd9, 0xde, 0x53, - 0x13, 0x42, 0xfd, 0xf8, 0x2c, 0xd2, 0x82, 0xc9, 0x6f, 0xeb, 0x16, 0x40, 0x14, 0xbb, 0x69, 0x24, - 0x47, 0xe4, 0x5a, 0xac, 0x46, 0x14, 0xbf, 0x54, 0x08, 0xf1, 0x14, 0x8d, 0x3b, 0xe7, 0x0f, 0xaa, - 0xee, 0xcc, 0x6a, 0x87, 0x56, 0x3e, 0xff, 0x11, 0xcc, 0x25, 0x34, 0x4e, 0x50, 0x80, 0x44, 0xc3, - 0xcd, 0x18, 0xd2, 0xb2, 0xb6, 0x32, 0xec, 0x2e, 0x63, 0xc8, 0x7e, 0x04, 0x8d, 0x01, 0xdb, 0xa7, - 0x0e, 0x8a, 0x02, 0xe9, 0x59, 0x43, 0x9c, 0xff, 0x87, 0x55, 0x80, 0xb8, 0x2a, 0x8e, 0xcc, 0x20, - 0x46, 0x7c, 0x8a, 0xae, 0xa5, 0x2d, 0x76, 0x6d, 0xa2, 0x44, 0xcd, 0x25, 0x08, 0x96, 0x07, 0x92, - 0xe4, 0x74, 0xc3, 0x65, 0x69, 0x22, 0x4a, 0x35, 0x6c, 0x74, 0xdd, 0x12, 0xd8, 0x7d, 0x83, 0xd4, - 0x64, 0xdd, 0x02, 0x59, 0x35, 0x23, 0xeb, 0xe6, 0x64, 0xf7, 0x61, 0x86, 0x0a, 0x99, 0x4c, 0x17, - 0xb5, 0x58, 0x6c, 0x35, 0xb5, 0xbc, 0x8e, 0x26, 0xb1, 0xbf, 0x16, 0xdd, 0xf3, 0x3e, 0x95, 0x43, - 0xa4, 0x27, 0x61, 0xec, 0x9d, 0x14, 0xb6, 0x57, 0xae, 0xde, 0xfe, 0x9b, 0x1a, 0xcc, 0x0f, 0x72, - 0xdf, 0x93, 0x3d, 0xb4, 0x05, 0x53, 0x11, 0x1a, 0x61, 0x1d, 0x49, 0xe4, 0xb7, 0x75, 0xdf, 0xe4, - 0x40, 0xd5, 0xd3, 0x5e, 0x1f, 0xef, 0xc6, 0xa5, 0x41, 0x4d, 0x6a, 0xfc, 0x18, 0xe6, 0x95, 0x91, - 0xf2, 0x41, 0x99, 0x8a, 0x7b, 0xca, 0x76, 0x66, 0x54, 0x66, 0xdd, 0x07, 0x6b, 0x8c, 0xce, 0x3d, - 0xed, 0xea, 0xd9, 0xd4, 0x7c, 0x89, 0xf4, 0xb0, 0xab, 0xea, 0x5c, 0xc2, 0xe4, 0xf4, 0x4e, 0xba, - 0xd9, 0xac, 0xa8, 0x73, 0x09, 0xeb, 0x51, 0x8c, 0xe4, 0xa0, 0x57, 0x16, 0xfc, 0xd2, 0xd9, 0x66, - 0x1d, 0x0d, 0x59, 0x9b, 0x30, 0xcf, 0xa8, 0xeb, 0x15, 0x6c, 0x25, 0xa7, 0xec, 0x63, 0xe3, 0x84, - 0xb2, 0x35, 0x9d, 0x39, 0x56, 0xb6, 0xee, 0x5d, 0x68, 0x31, 0xea, 0xa2, 0x30, 0x88, 0x29, 0xe1, - 0xc7, 0x23, 0xd6, 0xa9, 0xcb, 0x33, 0x66, 0x19, 0xed, 0x65, 0x38, 0xeb, 0x3f, 0x60, 0x8e, 0x51, - 0x3d, 0xdf, 0x1b, 0x0a, 0x3b, 0x74, 0x1a, 0xf2, 0xa0, 0x4e, 0xf9, 0xa0, 0xdc, 0x4e, 0x62, 0x7f, - 0x0e, 0xd9, 0xbf, 0x9e, 0x2a, 0x19, 0x62, 0x40, 0xa2, 0x93, 0x89, 0x86, 0x98, 0xa0, 0xdb, 0xea, - 0x9b, 0xeb, 0xb6, 0x36, 0x59, 0xb7, 0x6b, 0xd0, 0xd6, 0xe3, 0xa9, 0x9c, 0xab, 0x32, 0xc3, 0x9c, - 0xc2, 0x67, 0x6c, 0x1f, 0xc0, 0xe2, 0x38, 0xa5, 0x9b, 0x0d, 0x08, 0xdb, 0x65, 0xe2, 0xc3, 0xae, - 0x08, 0x84, 0x32, 0x8a, 0xba, 0x01, 0x8d, 0xd3, 0x44, 0x1a, 0xa7, 0xe5, 0x80, 0x44, 0x3d, 0x13, - 0x18, 0xeb, 0x1e, 0x2c, 0xf8, 0xaa, 0x87, 0x73, 0x39, 0x76, 0x75, 0x66, 0x50, 0x3f, 0x42, 0xe6, - 0xf5, 0xc2, 0x01, 0xd6, 0xa9, 0xe3, 0x16, 0x00, 0x09, 0x12, 0x43, 0x54, 0x57, 0x3f, 0x01, 0x48, - 0x90, 0xe4, 0x99, 0x45, 0xfb, 0x40, 0xa3, 0xe4, 0x03, 0x37, 0xa1, 0x31, 0x44, 0x91, 0x7f, 0x46, - 0x7c, 0x7e, 0xdc, 0x01, 0xd9, 0x97, 0xe4, 0x08, 0xeb, 0x73, 0x58, 0xa2, 0x98, 0x61, 0x7a, 0x8a, - 0x86, 0x21, 0x76, 0x73, 0xc2, 0xa6, 0x24, 0x5c, 0xcc, 0xd7, 0x9e, 0x14, 0xb7, 0xa4, 0x91, 0x5a, - 0xc0, 0x7e, 0x61, 0xcb, 0xec, 0x9d, 0x9a, 0xd8, 0x92, 0xaf, 0xe5, 0x5b, 0xd6, 0xa0, 0x2d, 0x5c, - 0xc8, 0xff, 0x7f, 0xe4, 0xe1, 0xc8, 0x3b, 0x77, 0x19, 0xf1, 0x3b, 0x2d, 0x79, 0x81, 0x39, 0x46, - 0x7b, 0x06, 0xbd, 0x4f, 0x7c, 0xfb, 0x57, 0x15, 0x58, 0x28, 0xf8, 0x81, 0x9e, 0x3d, 0x7d, 0x0e, - 0xe2, 0xa2, 0x6e, 0x5e, 0x86, 0x36, 0xcb, 0x03, 0x28, 0x13, 0x52, 0x9d, 0x3a, 0x09, 0x12, 0x15, - 0x5c, 0x73, 0x75, 0x54, 0x4b, 0xea, 0xb0, 0xa5, 0x37, 0xeb, 0x21, 0x19, 0xcb, 0xc6, 0xe0, 0x4d, - 0xa6, 0xe7, 0x5c, 0x42, 0x88, 0x3f, 0xc9, 0x2c, 0x92, 0x67, 0xa4, 0x07, 0x30, 0x55, 0x18, 0xc5, - 0xad, 0x14, 0x4f, 0x2e, 0x85, 0x0e, 0x47, 0x92, 0x09, 0xf2, 0x90, 0x44, 0x27, 0x3a, 0x56, 0x4c, - 0x26, 0x17, 0x0e, 0xee, 0x48, 0x32, 0xeb, 0x51, 0xe9, 0xef, 0x4d, 0x73, 0xfd, 0xc6, 0xc4, 0x0d, - 0xfa, 0x97, 0xa0, 0xf9, 0x19, 0xe5, 0x40, 0x5b, 0x17, 0x0a, 0x3f, 0xb3, 0x50, 0xbf, 0xd8, 0xe9, - 0xdf, 0x63, 0x72, 0x70, 0xac, 0x67, 0x79, 0xd6, 0x22, 0xcc, 0x0f, 0xf6, 0x5d, 0x01, 0xba, 0x2f, - 0x77, 0x9f, 0xef, 0xbe, 0xf8, 0x6e, 0xb7, 0xfd, 0x4f, 0x56, 0x1b, 0x66, 0x0d, 0x72, 0xf7, 0xc5, - 0xd6, 0x76, 0xbb, 0x52, 0xc4, 0x0c, 0xfa, 0xbb, 0xcf, 0xdb, 0x55, 0xeb, 0x3a, 0x2c, 0x18, 0xcc, - 0x9e, 0xb3, 0xfd, 0xb4, 0xff, 0xdf, 0xee, 0xe1, 0x46, 0xbb, 0x36, 0x09, 0xdd, 0x6d, 0x4f, 0x0d, - 0x67, 0x64, 0x55, 0xf2, 0xe8, 0xef, 0x01, 0x00, 0x00, 0xff, 0xff, 0x98, 0x6e, 0xca, 0x2f, 0x54, - 0x24, 0x00, 0x00, + // 3028 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x5f, 0x6f, 0x1b, 0xc7, + 0x11, 0x2f, 0x49, 0x49, 0x26, 0x87, 0x22, 0x45, 0x9d, 0x64, 0x81, 0x92, 0xed, 0xd8, 0x3d, 0xe7, + 0x8f, 0x6a, 0xc7, 0x4e, 0x23, 0x2b, 0x6c, 0x9d, 0x20, 0x2d, 0x68, 0x49, 0x76, 0x58, 0x53, 0xb2, + 0x72, 0x92, 0x95, 0xf6, 0xa5, 0xd7, 0xe5, 0xdd, 0xea, 0xb4, 0xd5, 0xf1, 0xee, 0xb2, 0xbb, 0x94, + 0xac, 0xa7, 0x02, 0x05, 0x5a, 0x20, 0x28, 0x5a, 0xf4, 0xa9, 0x08, 0xd0, 0x97, 0x3e, 0xf5, 0x23, + 0xf4, 0x3b, 0xf4, 0x03, 0xf5, 0xbd, 0xd8, 0x7f, 0xf7, 0x87, 0xa2, 0x2c, 0x3b, 0x4e, 0x00, 0xbf, + 0xdd, 0xcc, 0xce, 0xce, 0xce, 0xce, 0xfe, 0x76, 0x66, 0x76, 0x0e, 0xe6, 0x10, 0xe7, 0x94, 0x0c, + 0x46, 0x1c, 0xdf, 0x4f, 0x68, 0xcc, 0x63, 0xab, 0x1a, 0xc4, 0x83, 0x20, 0x41, 0x09, 0x59, 0x69, + 0xa0, 0xe8, 0xec, 0x23, 0x14, 0x9d, 0xa9, 0x81, 0x95, 0xba, 0x1c, 0x50, 0x84, 0xfd, 0x13, 0x98, + 0x7b, 0x46, 0x49, 0x40, 0xa2, 0xae, 0x99, 0x6e, 0x2d, 0xc1, 0x4c, 0x2c, 0x59, 0xed, 0xd2, 0xad, + 0xd2, 0x6a, 0xc3, 0xd1, 0x94, 0xfd, 0x10, 0x6a, 0x5d, 0xb6, 0x87, 0x83, 0x21, 0x8e, 0xb8, 0x65, + 0xc1, 0x14, 0x3f, 0x4b, 0xb0, 0x16, 0x91, 0xdf, 0x56, 0x1b, 0xae, 0x44, 0xa3, 0xe1, 0x00, 0x53, + 0xd6, 0x2e, 0xdf, 0xaa, 0xac, 0x36, 0x1c, 0x43, 0xda, 0x8f, 0x60, 0xae, 0xcb, 0x76, 0x11, 0x3f, + 0xca, 0x56, 0xf9, 0x08, 0xaa, 0x4c, 0xe9, 0x62, 0xed, 0xd2, 0xad, 0xca, 0x6a, 0x7d, 0x6d, 0xe1, + 0xbe, 0xb1, 0xf8, 0x7e, 0xba, 0x8e, 0x93, 0x0a, 0xd9, 0xf7, 0xa0, 0xb5, 0x83, 0x5f, 0xf0, 0x2f, + 0xe2, 0x24, 0x53, 0xb2, 0x0c, 0xd5, 0x08, 0xbf, 0xe0, 0xee, 0x51, 0x9c, 0x48, 0x4b, 0x6a, 0xce, + 0x95, 0x48, 0xc9, 0xd8, 0x77, 0x60, 0x69, 0x7b, 0x14, 0x72, 0xb2, 0xf5, 0x82, 0xf0, 0x4d, 0xc2, + 0xbc, 0x6c, 0x52, 0x0b, 0x2a, 0x43, 0xec, 0x6b, 0xcb, 0xc5, 0xa7, 0xfd, 0x00, 0xac, 0x7e, 0xec, + 0xa1, 0x70, 0x97, 0xe2, 0xc3, 0x4c, 0xee, 0x06, 0x40, 0x28, 0xb8, 0x6e, 0x42, 0xf1, 0xa1, 0x16, + 0xaf, 0x85, 0x46, 0xce, 0x5e, 0x81, 0x76, 0x97, 0xc7, 0x43, 0xe2, 0x75, 0x83, 0x80, 0xe2, 0x00, + 0x71, 0x9c, 0x4e, 0xb5, 0x7f, 0x09, 0x0b, 0x86, 0x1b, 0xd3, 0x4c, 0x63, 0x13, 0xca, 0x48, 0xf8, + 0x46, 0x68, 0x2a, 0x23, 0x26, 0x1c, 0x86, 0x7c, 0x9f, 0x62, 0xc6, 0xda, 0x15, 0x65, 0xbd, 0x26, + 0xed, 0x9f, 0xc3, 0xe2, 0x46, 0x3c, 0x1c, 0x8e, 0x22, 0xc2, 0x09, 0x66, 0x99, 0x86, 0x5b, 0x50, + 0xf7, 0x32, 0xbe, 0x74, 0x5c, 0xc3, 0xc9, 0xb3, 0xec, 0x0f, 0xe0, 0xaa, 0x3a, 0x50, 0xb1, 0x74, + 0xcf, 0x2f, 0x2c, 0x4e, 0x7c, 0xed, 0xa5, 0x32, 0xf1, 0xed, 0x55, 0x58, 0xdc, 0x08, 0x47, 0x8c, + 0x63, 0xda, 0x27, 0x8c, 0x17, 0xdc, 0x43, 0x7c, 0xa5, 0xba, 0xe6, 0x88, 0x4f, 0xfb, 0x0b, 0x98, + 0xeb, 0xed, 0x76, 0x95, 0x65, 0x62, 0xeb, 0xe4, 0x85, 0xf0, 0x4d, 0x22, 0xbf, 0xdc, 0x10, 0x1b, + 0x9c, 0xd4, 0x14, 0xa7, 0x8f, 0x23, 0x01, 0x21, 0x45, 0xc8, 0xcd, 0xd6, 0x1c, 0x4d, 0xd9, 0x01, + 0x2c, 0xf5, 0xd1, 0x00, 0x87, 0xd8, 0x1f, 0x57, 0xb8, 0x04, 0x33, 0xa1, 0x18, 0x31, 0x7b, 0xd2, + 0xd4, 0xd8, 0x42, 0xe5, 0x8b, 0x17, 0xaa, 0x14, 0x16, 0xba, 0x07, 0xf3, 0x5b, 0x91, 0x87, 0x12, + 0x36, 0x0a, 0x11, 0x27, 0x71, 0xb4, 0xd3, 0x77, 0x7a, 0x79, 0x77, 0x97, 0x8a, 0xee, 0xde, 0x85, + 0xeb, 0x4e, 0x3c, 0xe2, 0x78, 0x93, 0x30, 0x4e, 0xa2, 0x60, 0x44, 0xd8, 0x11, 0xa6, 0xfb, 0xa7, + 0xf1, 0x33, 0x8f, 0x63, 0xde, 0xdd, 0xb3, 0x16, 0x61, 0x1a, 0xf9, 0xc3, 0xf4, 0x46, 0x28, 0xc2, + 0x5a, 0x81, 0x2a, 0x62, 0x8c, 0x04, 0x11, 0xf6, 0xb5, 0x65, 0x29, 0x6d, 0x3f, 0x83, 0x6b, 0xe7, + 0x35, 0xa6, 0x9b, 0x2e, 0x2a, 0xac, 0xbd, 0x8a, 0xc2, 0x2f, 0xe1, 0xc6, 0x79, 0x85, 0x8f, 0xe3, + 0x11, 0xfd, 0xee, 0x36, 0x6e, 0xc1, 0xf2, 0x16, 0x3f, 0xc2, 0x34, 0xc2, 0x5c, 0x5f, 0xb7, 0x9e, + 0x8f, 0x23, 0x4e, 0x0e, 0x09, 0xa6, 0x13, 0x2f, 0xf8, 0x22, 0x4c, 0x9f, 0xa0, 0x70, 0x84, 0xa5, + 0xa6, 0x59, 0x47, 0x11, 0xf6, 0x7f, 0x4a, 0xf0, 0xce, 0xd6, 0xc1, 0xee, 0x8e, 0xd1, 0xd5, 0x1d, + 0xf1, 0x58, 0xdc, 0xb8, 0xf8, 0x04, 0xd3, 0x33, 0x69, 0xb3, 0xf5, 0x2e, 0x94, 0xa9, 0xc2, 0x5e, + 0x7d, 0x6d, 0xf1, 0x7e, 0x10, 0xc7, 0x41, 0xa8, 0xc3, 0xd4, 0x60, 0x74, 0x78, 0xbf, 0x1b, 0x9d, + 0x39, 0x65, 0xea, 0x5b, 0x9f, 0x40, 0x05, 0x33, 0x22, 0x95, 0xd7, 0xd7, 0x6e, 0x67, 0xd1, 0xe0, + 0x42, 0x23, 0x1d, 0x21, 0x6f, 0xfd, 0x18, 0x66, 0xb1, 0x96, 0x70, 0x39, 0x0a, 0x24, 0x12, 0x1a, + 0x4e, 0xdd, 0xf0, 0xf6, 0x51, 0x20, 0x0c, 0x97, 0x78, 0x6a, 0x4f, 0x29, 0xdf, 0x48, 0xc2, 0xfe, + 0x5f, 0x09, 0xae, 0x09, 0xc3, 0xb7, 0xbb, 0x1b, 0xe2, 0x64, 0x4e, 0x30, 0xe5, 0x84, 0x61, 0x19, + 0x76, 0xde, 0x0a, 0xab, 0x6f, 0x42, 0x7d, 0x88, 0x3c, 0xd7, 0x60, 0x76, 0x4a, 0x42, 0x05, 0x86, + 0xc8, 0x33, 0x28, 0xba, 0x01, 0x40, 0x92, 0x74, 0x7c, 0x5a, 0x8e, 0xd7, 0x48, 0x62, 0x86, 0xb3, + 0x3b, 0x35, 0x93, 0xbf, 0x53, 0xf6, 0xdf, 0x4b, 0xf0, 0xbe, 0xd8, 0x77, 0x2f, 0xf2, 0xc2, 0x11, + 0x23, 0x27, 0x58, 0x06, 0x4a, 0x0f, 0x31, 0xbe, 0x95, 0xad, 0xfe, 0x3a, 0x2e, 0x18, 0xdf, 0x4b, + 0xf9, 0xfc, 0x5e, 0x8a, 0xa6, 0x56, 0xc6, 0x4c, 0xb5, 0xff, 0x51, 0x82, 0x76, 0x1e, 0x43, 0x26, + 0xfc, 0xff, 0xf0, 0xe7, 0x70, 0x89, 0x61, 0xdf, 0x94, 0x61, 0x5e, 0xfa, 0x6a, 0x57, 0x05, 0xaa, + 0xb7, 0x03, 0x19, 0xd7, 0xa0, 0x46, 0x12, 0x57, 0x47, 0x3e, 0x85, 0x8b, 0x2a, 0x49, 0x74, 0x28, + 0xb5, 0xa1, 0x91, 0x0e, 0xca, 0xa8, 0x39, 0xad, 0x14, 0x18, 0x01, 0x11, 0x37, 0x6f, 0x00, 0x04, + 0xa7, 0xe9, 0xae, 0x67, 0xd4, 0xae, 0x83, 0xd3, 0x5c, 0x78, 0x52, 0xf7, 0xe5, 0x4a, 0xfe, 0xbe, + 0xfc, 0x01, 0x9a, 0xca, 0x15, 0xdb, 0x7b, 0xbd, 0xef, 0x19, 0x1e, 0x42, 0x11, 0x97, 0x3b, 0xbd, + 0x58, 0x11, 0x17, 0xc0, 0x5d, 0xd6, 0xf9, 0x43, 0xda, 0xf1, 0x6a, 0x29, 0x44, 0x19, 0x59, 0xbe, + 0xc4, 0xc8, 0x62, 0xa2, 0xa9, 0x5c, 0x9c, 0x68, 0xa6, 0x0a, 0x89, 0xe6, 0x4b, 0x58, 0x96, 0xae, + 0xd8, 0x47, 0x34, 0xc0, 0x7c, 0x1b, 0xcb, 0x7a, 0xe7, 0x88, 0x24, 0x32, 0xe1, 0xa8, 0x7c, 0x5f, + 0x4a, 0xf3, 0xbd, 0xda, 0x65, 0xf9, 0x92, 0x5d, 0x8e, 0xa0, 0xf5, 0x38, 0x8c, 0x4f, 0xf7, 0x12, + 0xec, 0x19, 0xd4, 0x4d, 0x8c, 0xc6, 0xdf, 0x2d, 0x35, 0xca, 0xf2, 0xee, 0xf0, 0x90, 0x61, 0xae, + 0x83, 0xa1, 0xa6, 0xec, 0xcf, 0xa0, 0x6e, 0x96, 0xdd, 0xee, 0x6e, 0x5c, 0x54, 0xe0, 0x19, 0xc8, + 0x94, 0x8b, 0x09, 0xf4, 0x73, 0xb8, 0x6a, 0x26, 0x6f, 0xc4, 0xc3, 0x24, 0x8e, 0x04, 0xae, 0x39, + 0x1e, 0x0a, 0x17, 0xe8, 0xda, 0xac, 0xe1, 0x94, 0xe3, 0xa4, 0x98, 0x42, 0xa6, 0x4c, 0x0a, 0xf9, + 0x2d, 0xcc, 0x9f, 0x9b, 0x3e, 0xd1, 0x82, 0x4f, 0x60, 0x9a, 0x70, 0x3c, 0x54, 0x05, 0x66, 0x7d, + 0xed, 0x66, 0x76, 0xa9, 0x26, 0x2e, 0xef, 0x28, 0x69, 0xfb, 0x53, 0x98, 0x35, 0xe3, 0xf2, 0x60, + 0xee, 0xc0, 0x34, 0x1d, 0x85, 0xd8, 0x54, 0x9e, 0x93, 0xcf, 0x42, 0x89, 0xd8, 0x1e, 0xcc, 0x1d, + 0xec, 0xee, 0x14, 0xa6, 0xbf, 0x1a, 0xec, 0xd3, 0x45, 0xca, 0x97, 0x2f, 0xb2, 0x0e, 0xf0, 0x2c, + 0x41, 0x5f, 0x8f, 0xb0, 0xd4, 0xdf, 0x82, 0xca, 0x31, 0x3e, 0x93, 0x0b, 0xcc, 0x3a, 0xe2, 0xf3, + 0x82, 0xcc, 0xfb, 0xef, 0x12, 0xb4, 0xfa, 0x6c, 0x27, 0xf6, 0xf1, 0x26, 0x66, 0x1e, 0x25, 0x09, + 0x8f, 0xa9, 0x98, 0x8c, 0x98, 0xa9, 0x02, 0xc4, 0xa7, 0xb5, 0x02, 0xb5, 0x41, 0x90, 0xb8, 0x21, + 0x73, 0x89, 0x29, 0x02, 0xae, 0x0c, 0x82, 0xa4, 0xcf, 0x7a, 0xbe, 0x75, 0x0b, 0x66, 0x63, 0x96, + 0x1c, 0xba, 0x88, 0x62, 0x24, 0x86, 0x15, 0xf0, 0x41, 0xf0, 0xba, 0x14, 0xa3, 0x9e, 0x6f, 0xbd, + 0x03, 0x90, 0x30, 0x3c, 0xf2, 0xe3, 0x28, 0xf6, 0xb1, 0xc4, 0x4c, 0xd5, 0xc9, 0x71, 0x64, 0xb8, + 0x09, 0x12, 0x97, 0x8a, 0x5b, 0x40, 0x85, 0x0a, 0x95, 0x87, 0xea, 0x24, 0x48, 0xe4, 0xcd, 0xa0, + 0x3d, 0xdf, 0xfe, 0xb6, 0x2c, 0x0c, 0xed, 0x93, 0xe8, 0x38, 0x67, 0xa8, 0x0d, 0x8d, 0x90, 0x44, + 0xc7, 0xae, 0x2a, 0xb2, 0x89, 0xa9, 0xc8, 0xeb, 0x82, 0x29, 0xcb, 0xf1, 0x9e, 0x6f, 0xbd, 0x0b, + 0x4d, 0x29, 0x43, 0xf1, 0x30, 0xe6, 0x38, 0xb3, 0x7f, 0x56, 0x70, 0x1d, 0xc9, 0xec, 0xf9, 0xd6, + 0x7d, 0x58, 0x20, 0x11, 0xc7, 0xf4, 0x10, 0x79, 0x58, 0x06, 0x35, 0x97, 0x24, 0x27, 0xeb, 0x1a, + 0xf7, 0xf3, 0xe9, 0x90, 0x08, 0x17, 0xbd, 0xe4, 0x64, 0xdd, 0xfa, 0x10, 0xac, 0x08, 0x93, 0xe0, + 0x68, 0x10, 0xd3, 0x9c, 0xb8, 0xba, 0xd8, 0x2d, 0x33, 0x92, 0x4a, 0x4f, 0xd4, 0xde, 0xd1, 0xdb, + 0x3c, 0xa7, 0xbd, 0x33, 0x51, 0x7b, 0x47, 0xc7, 0xd8, 0x71, 0xed, 0x1d, 0x1b, 0x83, 0xd5, 0xd7, + 0x11, 0x2c, 0xe7, 0x9b, 0x0f, 0x60, 0x8e, 0x24, 0x2e, 0xc5, 0xc8, 0x3b, 0x42, 0x03, 0x12, 0x12, + 0x7e, 0xa6, 0x0b, 0xf2, 0x26, 0x49, 0x9c, 0x1c, 0xd7, 0x7a, 0x1f, 0xe6, 0xe4, 0xf9, 0x49, 0xf7, + 0xbb, 0xf2, 0xbe, 0xa8, 0xab, 0xd9, 0x10, 0x6c, 0x15, 0x9a, 0xce, 0x12, 0x6c, 0x3f, 0x01, 0x50, + 0x48, 0x91, 0x00, 0x7b, 0x68, 0x9e, 0x36, 0xf2, 0x4c, 0x15, 0x90, 0x57, 0xb2, 0xbb, 0x34, 0x8e, + 0x29, 0xfd, 0xec, 0x11, 0x4c, 0xfb, 0xbf, 0x25, 0xa1, 0x49, 0x1c, 0xe5, 0x1b, 0x6a, 0xb2, 0x3e, + 0x83, 0xba, 0x3e, 0x56, 0x39, 0xb7, 0x7c, 0xe9, 0x5c, 0x50, 0xe2, 0x72, 0xf2, 0x06, 0xcc, 0x49, + 0x60, 0xf8, 0xe9, 0xb0, 0xce, 0x1e, 0x05, 0x05, 0x45, 0xc4, 0x39, 0x12, 0x4b, 0x19, 0x2d, 0xaa, + 0x8e, 0xa6, 0x71, 0xfe, 0xc1, 0xfa, 0x9b, 0xee, 0xa7, 0x07, 0xf3, 0x3a, 0x1e, 0xe7, 0x8c, 0x52, + 0xbb, 0xba, 0x9e, 0xd7, 0x30, 0x7e, 0xd8, 0x4e, 0x2b, 0x19, 0xe3, 0x14, 0x0d, 0xeb, 0xbc, 0x45, + 0x86, 0x0d, 0x60, 0xb6, 0xcf, 0x04, 0x76, 0x75, 0x5e, 0x5a, 0xcd, 0xc5, 0xe8, 0xa6, 0x0c, 0x71, + 0x99, 0x3d, 0x7d, 0xa7, 0x27, 0xa0, 0xa7, 0x23, 0xf7, 0x2a, 0x4c, 0x45, 0x21, 0x25, 0x2f, 0xcd, + 0x7e, 0x52, 0xc2, 0xfe, 0xa6, 0x04, 0x8b, 0xdb, 0x0a, 0xe5, 0x42, 0x47, 0xf6, 0x32, 0x5d, 0x85, + 0x99, 0x43, 0x34, 0x24, 0xe1, 0x99, 0xde, 0x7e, 0x2b, 0x17, 0xfd, 0x25, 0xdf, 0xd1, 0xe3, 0xa2, + 0x3e, 0x32, 0x7d, 0x01, 0x15, 0x7e, 0x6b, 0x4e, 0x55, 0x37, 0x06, 0x98, 0x88, 0xcb, 0x62, 0x1d, + 0x51, 0xec, 0xbd, 0x24, 0x2e, 0x4b, 0x11, 0x3b, 0x82, 0xa5, 0xed, 0xe4, 0x79, 0x44, 0xdf, 0xc4, + 0x98, 0xd7, 0x59, 0xef, 0xaf, 0x25, 0x58, 0x49, 0xdf, 0x9d, 0x4c, 0x24, 0x1c, 0x72, 0x48, 0xbc, + 0xad, 0x17, 0x1c, 0x47, 0x3e, 0xf6, 0xad, 0xdb, 0xd0, 0x20, 0xcc, 0xe5, 0x14, 0x45, 0x8c, 0x70, + 0x72, 0xa2, 0xfc, 0x5e, 0x75, 0x66, 0x09, 0xdb, 0x4f, 0x79, 0xd6, 0x32, 0x54, 0xd9, 0x68, 0x90, + 0xc5, 0x82, 0x86, 0x73, 0x85, 0x8d, 0x06, 0xe2, 0x28, 0x74, 0x41, 0x52, 0x49, 0x0b, 0x92, 0x9b, + 0x50, 0x57, 0xa0, 0x52, 0x2f, 0x47, 0x55, 0x10, 0x28, 0x9c, 0x75, 0x05, 0xc7, 0xfe, 0xb6, 0x04, + 0xd7, 0x7a, 0xbb, 0x27, 0xeb, 0xba, 0xd2, 0xfa, 0xde, 0x0d, 0xba, 0xb0, 0x03, 0x72, 0xb9, 0x69, + 0x7f, 0x2b, 0xc1, 0xb5, 0xec, 0xfd, 0xfb, 0x16, 0xf8, 0xea, 0x0e, 0x58, 0x07, 0x28, 0x24, 0xbe, + 0x6c, 0x38, 0xa4, 0x66, 0x2c, 0xc2, 0x34, 0xe3, 0x88, 0x9b, 0x32, 0x46, 0x11, 0xf6, 0x7b, 0xd0, + 0xd8, 0x88, 0xc3, 0x98, 0xe6, 0xc5, 0x3c, 0xc1, 0x30, 0x62, 0x92, 0xb0, 0x7f, 0x0a, 0x0d, 0xd9, + 0xc6, 0x48, 0xc5, 0x6e, 0x42, 0x9d, 0x8f, 0xa2, 0x08, 0x87, 0x6e, 0xae, 0x34, 0x02, 0xc5, 0x92, + 0x71, 0xbe, 0x0d, 0x4b, 0x9b, 0xf8, 0x10, 0x8d, 0x42, 0xfe, 0x04, 0x71, 0x7c, 0x8a, 0xce, 0xcc, + 0x54, 0xfb, 0x29, 0x34, 0x55, 0x89, 0xf1, 0x7a, 0x1e, 0x4a, 0x2b, 0x8f, 0x4a, 0xbe, 0xf2, 0x70, + 0xa0, 0xb5, 0xb5, 0xd7, 0x93, 0xb5, 0x78, 0xaa, 0x6e, 0x15, 0x5a, 0x84, 0xb9, 0x8c, 0x44, 0x41, + 0x88, 0x5d, 0xe4, 0xe5, 0x34, 0x36, 0x09, 0xdb, 0x93, 0xec, 0xae, 0x67, 0x74, 0xaa, 0xe7, 0x45, + 0x39, 0xff, 0xbc, 0x58, 0x83, 0x85, 0xad, 0xbd, 0xde, 0x30, 0x89, 0x29, 0xcf, 0x95, 0xd4, 0xe2, + 0x2e, 0x63, 0xe6, 0x12, 0xc9, 0xd7, 0xed, 0x92, 0x2a, 0x66, 0x4a, 0xce, 0x7e, 0x0e, 0x0b, 0xdb, + 0xc8, 0xdb, 0x8e, 0x55, 0x36, 0x4c, 0x4d, 0x11, 0xef, 0x23, 0xe6, 0x32, 0x4e, 0xbc, 0xe3, 0x33, + 0x6d, 0x43, 0x95, 0xb0, 0x3d, 0x49, 0x8b, 0xe7, 0x08, 0xc3, 0x5f, 0x8f, 0x70, 0xe4, 0x61, 0x37, + 0x1a, 0x0d, 0xcd, 0x73, 0xc4, 0xf0, 0x76, 0x46, 0x43, 0xfb, 0x3d, 0x98, 0x57, 0xb5, 0xcb, 0x36, + 0xca, 0x00, 0xd5, 0x82, 0xca, 0x10, 0x79, 0xda, 0x04, 0xf1, 0x69, 0x3f, 0x84, 0x85, 0x7d, 0x8a, + 0x0e, 0x0f, 0x89, 0xe7, 0x20, 0x9e, 0xf9, 0x75, 0xbc, 0xec, 0xb7, 0x60, 0x8a, 0x0a, 0x04, 0x88, + 0x85, 0xca, 0x8e, 0xfc, 0xb6, 0x9f, 0xc2, 0x55, 0x3d, 0x55, 0xf8, 0x24, 0x87, 0x97, 0x15, 0xa8, + 0x72, 0x4c, 0x87, 0x24, 0x42, 0xa1, 0xb1, 0xdc, 0xd0, 0xa2, 0x74, 0x67, 0x68, 0x98, 0x84, 0x4a, + 0x55, 0xd5, 0xd1, 0x94, 0xfd, 0x1c, 0x6c, 0x07, 0xfb, 0x84, 0x62, 0x8f, 0xbf, 0x24, 0x78, 0x8c, + 0x9b, 0x35, 0x06, 0xe8, 0xf2, 0x39, 0x40, 0xff, 0x0e, 0x6e, 0x1b, 0xb5, 0x2f, 0x8b, 0x01, 0x17, + 0xb6, 0xd5, 0x2e, 0x5f, 0xe1, 0x20, 0x5b, 0xe1, 0x65, 0x57, 0xf9, 0xb5, 0x2d, 0xbf, 0x9b, 0x7a, + 0xd7, 0xc1, 0x43, 0x44, 0x8f, 0x53, 0x4d, 0x16, 0x4c, 0xf9, 0xcc, 0x33, 0x0f, 0x12, 0xf9, 0x6d, + 0x7f, 0x06, 0x73, 0xcf, 0xa3, 0xe3, 0x28, 0x3e, 0x8d, 0xf2, 0x62, 0xaf, 0xd8, 0xfc, 0x3a, 0x80, + 0xeb, 0x66, 0xd6, 0xc4, 0x86, 0x6d, 0xe7, 0x7c, 0xc3, 0xf6, 0xa2, 0x14, 0x50, 0x68, 0xe3, 0x6e, + 0x40, 0xab, 0xcb, 0xd6, 0xdf, 0xb0, 0x65, 0xfe, 0x08, 0x96, 0xba, 0x6c, 0xfd, 0xcd, 0x3a, 0xd1, + 0x18, 0x16, 0x76, 0x87, 0x8c, 0xec, 0xcb, 0x10, 0x93, 0x29, 0x58, 0x84, 0xe9, 0xc3, 0x10, 0x05, + 0xe6, 0x54, 0x14, 0x91, 0xfa, 0xad, 0x5c, 0xf4, 0x9b, 0xba, 0xec, 0x95, 0xdc, 0x65, 0xd7, 0xdd, + 0xe8, 0x29, 0xe9, 0xca, 0x32, 0xf1, 0xed, 0x5f, 0xc1, 0x3b, 0x6a, 0x09, 0x19, 0xef, 0xf6, 0x46, + 0x83, 0xfd, 0xfe, 0x41, 0xa1, 0x83, 0x9b, 0x7f, 0x14, 0x35, 0xd4, 0xa3, 0x68, 0x09, 0x66, 0xbc, + 0x38, 0x3e, 0x26, 0xe6, 0x48, 0x34, 0x65, 0xff, 0x0c, 0x96, 0xcf, 0xe9, 0xda, 0x15, 0x9e, 0xf6, + 0xe2, 0x50, 0xdc, 0xaf, 0x44, 0x7f, 0x6b, 0x5d, 0x29, 0x6d, 0xdf, 0x87, 0xa5, 0x73, 0x13, 0x65, + 0x98, 0xbe, 0x20, 0x3c, 0x6f, 0x42, 0xfb, 0x9c, 0xbc, 0x86, 0xd2, 0x6b, 0x40, 0x68, 0x07, 0x9a, + 0x39, 0x2d, 0xfb, 0xfd, 0x83, 0x89, 0x73, 0x45, 0xa5, 0x15, 0x9e, 0xbc, 0xfc, 0x31, 0x29, 0x25, + 0xec, 0x4d, 0x58, 0xcc, 0xe9, 0xcb, 0x8e, 0xec, 0x43, 0xad, 0x41, 0x41, 0xa7, 0x9d, 0x41, 0xa7, + 0xb8, 0xba, 0xd6, 0xa2, 0x33, 0x7f, 0xe7, 0x2d, 0xcc, 0xfc, 0xc5, 0xb8, 0xd4, 0xf9, 0x01, 0xe2, + 0xd2, 0x6f, 0xe0, 0x66, 0x6f, 0xb7, 0xf3, 0x83, 0x5c, 0xec, 0x3b, 0xd0, 0xea, 0x92, 0x40, 0x38, + 0xba, 0xf7, 0x64, 0x77, 0x1b, 0x73, 0x4a, 0x3c, 0x01, 0xe4, 0xa1, 0xfc, 0x92, 0x86, 0x4e, 0x39, + 0x9a, 0xb2, 0x3f, 0x85, 0xa6, 0x96, 0x7d, 0x7d, 0x54, 0x3d, 0x84, 0x86, 0x98, 0x9b, 0x2f, 0x58, + 0xf3, 0xc7, 0xff, 0x32, 0x00, 0x8d, 0xa0, 0xd9, 0x17, 0xb9, 0xd7, 0xec, 0x5b, 0xa6, 0xcc, 0x20, + 0x8c, 0x07, 0xa9, 0xc7, 0xf4, 0x4b, 0x5d, 0xf1, 0xa4, 0xcb, 0x32, 0x9f, 0xfa, 0x88, 0xa3, 0x8f, + 0x0b, 0x3e, 0xdd, 0x14, 0x9c, 0xa2, 0xc0, 0x9a, 0x69, 0x34, 0xa4, 0x02, 0x6b, 0xf6, 0x57, 0xb0, + 0x5c, 0x58, 0xb6, 0xe0, 0xee, 0x4f, 0x27, 0xb9, 0x3b, 0x87, 0xe1, 0xa2, 0xc1, 0x45, 0x97, 0xff, + 0xb3, 0x04, 0x75, 0xf5, 0x3e, 0x7a, 0x2c, 0xa3, 0xd4, 0x0a, 0x54, 0xe3, 0x13, 0x4c, 0xc3, 0x18, + 0xf9, 0x26, 0xc5, 0x1a, 0x5a, 0xfe, 0x2f, 0xe1, 0x1c, 0x79, 0x47, 0xfa, 0x7f, 0x49, 0xd5, 0x49, + 0x69, 0x31, 0x86, 0x5f, 0x70, 0x4c, 0x45, 0x6a, 0xae, 0xa8, 0x31, 0x43, 0xcb, 0xae, 0xcb, 0x80, + 0xea, 0xf6, 0x88, 0xf8, 0x14, 0x87, 0xaa, 0x7a, 0x22, 0xb2, 0x53, 0x50, 0x75, 0x34, 0x25, 0x22, + 0x9f, 0x6e, 0x07, 0x54, 0x9d, 0xf2, 0x49, 0xc7, 0xfe, 0x8b, 0x7c, 0x50, 0xf7, 0x9e, 0xec, 0x3e, + 0x36, 0x21, 0xd4, 0x8f, 0x4f, 0x23, 0x6d, 0x98, 0xfc, 0xb6, 0x6e, 0x00, 0x44, 0xb1, 0x3b, 0x8a, + 0x64, 0x8f, 0x5e, 0x9b, 0x55, 0x8b, 0xe2, 0xe7, 0x8a, 0x21, 0xae, 0xa2, 0x81, 0x73, 0x76, 0xa1, + 0xaa, 0xce, 0xac, 0x06, 0xb4, 0xc2, 0xfc, 0x7b, 0xd0, 0x4c, 0x68, 0x9c, 0xa0, 0x00, 0x89, 0x07, + 0x37, 0x63, 0x48, 0xdb, 0xda, 0x48, 0xb9, 0x3b, 0x8c, 0x21, 0xfb, 0x01, 0xd4, 0xfa, 0x6c, 0x8f, + 0x3a, 0x28, 0x0a, 0x24, 0xb2, 0x06, 0x38, 0xfb, 0x11, 0xac, 0x08, 0xb1, 0x55, 0x1c, 0x99, 0x46, + 0x8c, 0xf8, 0x14, 0xaf, 0x96, 0x96, 0x98, 0xb5, 0x81, 0x12, 0xd5, 0x97, 0x20, 0x58, 0x2e, 0x48, + 0x92, 0x93, 0x75, 0x97, 0x8d, 0x12, 0x51, 0xaa, 0x61, 0xe3, 0xeb, 0x86, 0xe0, 0xee, 0x19, 0xa6, + 0x16, 0xeb, 0xe4, 0xc4, 0xca, 0xa9, 0x58, 0x27, 0x13, 0xbb, 0x0b, 0x33, 0x54, 0xd8, 0x64, 0x5e, + 0x51, 0x0b, 0xf9, 0xa7, 0xa6, 0xb6, 0xd7, 0xd1, 0x22, 0xf6, 0xe7, 0xe2, 0xf5, 0xbc, 0x47, 0x65, + 0x13, 0xe9, 0x51, 0x18, 0x7b, 0xc7, 0xb9, 0xe9, 0xa5, 0xcb, 0xa7, 0xff, 0xb9, 0x02, 0x73, 0xfd, + 0x0c, 0x7b, 0xf2, 0x0d, 0x6d, 0xc1, 0x54, 0x84, 0x86, 0x58, 0x47, 0x12, 0xf9, 0x6d, 0xdd, 0x35, + 0x39, 0x50, 0xbd, 0x69, 0xaf, 0x8e, 0xbf, 0xc6, 0xe5, 0x81, 0x9a, 0xd4, 0xf8, 0x3e, 0xcc, 0xa9, + 0x43, 0xca, 0x1a, 0x65, 0x2a, 0xee, 0xa9, 0xb3, 0x33, 0xad, 0x32, 0xeb, 0x2e, 0x58, 0x63, 0x72, + 0xee, 0x49, 0x47, 0xf7, 0xa6, 0xe6, 0x0a, 0xa2, 0x07, 0x1d, 0x55, 0xe7, 0x12, 0x26, 0xbb, 0x77, + 0x12, 0x66, 0xb3, 0xa2, 0xce, 0x25, 0xac, 0x4b, 0x31, 0x92, 0x8d, 0x5e, 0x59, 0xf0, 0x4b, 0xb0, + 0xcd, 0x3a, 0x9a, 0xb2, 0x36, 0x60, 0x8e, 0x51, 0xd7, 0xcb, 0x9d, 0x95, 0x6c, 0xf3, 0x8f, 0xb5, + 0x13, 0x8a, 0xa7, 0xe9, 0x34, 0x59, 0xf1, 0x74, 0x6f, 0x43, 0x83, 0x51, 0x17, 0x85, 0x41, 0x4c, + 0x09, 0x3f, 0x1a, 0xb2, 0x76, 0x55, 0xae, 0x31, 0xcb, 0x68, 0x37, 0xe5, 0x59, 0xbf, 0x80, 0x26, + 0xa3, 0xba, 0xbf, 0x37, 0x10, 0xe7, 0xd0, 0xae, 0xc9, 0x85, 0xda, 0xc5, 0x85, 0xb2, 0x73, 0x12, + 0xf3, 0x33, 0xca, 0xfe, 0xd3, 0x54, 0xe1, 0x20, 0xfa, 0x24, 0x3a, 0x9e, 0x78, 0x10, 0x13, 0x7c, + 0x5b, 0x7e, 0x75, 0xdf, 0x56, 0x26, 0xfb, 0x76, 0x15, 0x5a, 0xba, 0x3d, 0x95, 0x69, 0x55, 0xc7, + 0xd0, 0x54, 0xfc, 0x54, 0xed, 0x3d, 0x58, 0x18, 0x97, 0x74, 0xd3, 0x06, 0x61, 0xab, 0x28, 0x7c, + 0xd0, 0x11, 0x81, 0x50, 0x46, 0x51, 0x37, 0xa0, 0xf1, 0x28, 0x91, 0x87, 0xd3, 0x70, 0x40, 0xb2, + 0x9e, 0x08, 0x8e, 0x75, 0x07, 0xe6, 0x7d, 0xf5, 0x86, 0x73, 0x39, 0x76, 0x75, 0x66, 0x50, 0x7f, + 0x62, 0xe6, 0xf4, 0xc0, 0x3e, 0xd6, 0xa9, 0xe3, 0x06, 0x00, 0x09, 0x12, 0x23, 0x54, 0x55, 0x3f, + 0x01, 0x48, 0x90, 0x64, 0x99, 0x45, 0x63, 0xa0, 0x56, 0xc0, 0xc0, 0x75, 0xa8, 0x0d, 0x50, 0xe4, + 0x9f, 0x12, 0x9f, 0x1f, 0xb5, 0x41, 0xbe, 0x4b, 0x32, 0x86, 0xf5, 0x31, 0x2c, 0x52, 0xcc, 0x30, + 0x3d, 0x41, 0x83, 0x10, 0xbb, 0x99, 0x60, 0x5d, 0x0a, 0x2e, 0x64, 0x63, 0x8f, 0xf2, 0x53, 0x46, + 0x91, 0x1a, 0xc0, 0x7e, 0x6e, 0xca, 0xec, 0xad, 0x8a, 0x98, 0x92, 0x8d, 0x65, 0x53, 0x56, 0xa1, + 0x25, 0x20, 0xe4, 0xff, 0x1e, 0x79, 0x38, 0xf2, 0xce, 0x5c, 0x46, 0xfc, 0x76, 0x43, 0x6e, 0xa0, + 0xc9, 0x68, 0xd7, 0xb0, 0xf7, 0x88, 0x6f, 0xff, 0xb1, 0x04, 0xf3, 0x39, 0x1c, 0xe8, 0xde, 0xd3, + 0xc7, 0x20, 0x36, 0xea, 0x66, 0x65, 0x68, 0xbd, 0xd8, 0x80, 0x32, 0x21, 0xd5, 0xa9, 0x92, 0x20, + 0x51, 0xc1, 0x35, 0x73, 0x47, 0xb9, 0xe0, 0x0e, 0x5b, 0xa2, 0x59, 0x37, 0xc9, 0x58, 0xda, 0x06, + 0xaf, 0x33, 0xdd, 0xe7, 0x12, 0x46, 0xfc, 0x4b, 0x66, 0x91, 0x2c, 0x23, 0xdd, 0x83, 0xa9, 0x5c, + 0x2b, 0x6e, 0x39, 0xbf, 0x72, 0x21, 0x74, 0x38, 0x52, 0x4c, 0x88, 0x87, 0x24, 0x3a, 0xd6, 0xb1, + 0x62, 0xb2, 0xb8, 0x00, 0xb8, 0x23, 0xc5, 0xac, 0x07, 0x85, 0xbf, 0x37, 0xf5, 0xb5, 0x6b, 0x13, + 0x27, 0xe8, 0x7f, 0x92, 0xe6, 0x67, 0x94, 0x03, 0x2d, 0x5d, 0x28, 0x7c, 0xc7, 0x42, 0xfd, 0xfc, + 0x4b, 0xff, 0x0e, 0x93, 0x8d, 0x63, 0xdd, 0xcb, 0xb3, 0x16, 0x60, 0xae, 0xbf, 0xe7, 0x0a, 0xd2, + 0x7d, 0xbe, 0xf3, 0x74, 0xe7, 0xd9, 0x57, 0x3b, 0xad, 0x1f, 0x59, 0x2d, 0x98, 0x35, 0xcc, 0x9d, + 0x67, 0x9b, 0x5b, 0xad, 0x52, 0x9e, 0xd3, 0xef, 0xed, 0x3c, 0x6d, 0x95, 0xad, 0xab, 0x30, 0x6f, + 0x38, 0xbb, 0xce, 0xd6, 0xe3, 0xde, 0xaf, 0xdd, 0x83, 0xf5, 0x56, 0x65, 0x12, 0xbb, 0xd3, 0x9a, + 0x1a, 0xcc, 0xc8, 0xaa, 0xe4, 0xc1, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x16, 0x22, 0xb6, + 0xd5, 0x24, 0x00, 0x00, } diff --git a/api/attribute.proto b/api/attribute.proto index ad4767ae..4cf844f3 100644 --- a/api/attribute.proto +++ b/api/attribute.proto @@ -183,6 +183,18 @@ message EVPNIPPrefixRoute { uint32 label = 7; } +// EVPNIPMSIRoute represents the NLRI for: +// - AFI=25, SAFI=70, RouteType=9 +message EVPNIPMSIRoute { + // One of: + // - RouteDistinguisherTwoOctetAS + // - RouteDistinguisherIPAddressAS + // - RouteDistinguisherFourOctetAS + google.protobuf.Any rd = 1; + uint32 ethernet_tag = 2; + google.protobuf.Any rt = 3; +} + // LabeledVPNIPAddressPrefix represents the NLRI for: // - AFI=1, SAFI=128 // - AFI=2, SAFI=128 @@ -342,6 +354,7 @@ message MpReachNLRIAttribute { // - EVPNInclusiveMulticastEthernetTagRoute // - EVPNEthernetSegmentRoute // - EVPNIPPrefixRoute + // - EVPNIPMSIRoute // - LabeledVPNIPAddressPrefix // - RouteTargetMembershipNLRI // - FlowSpecNLRI diff --git a/api/gobgp.pb.go b/api/gobgp.pb.go index d83be884..111535e4 100644 --- a/api/gobgp.pb.go +++ b/api/gobgp.pb.go @@ -2265,6 +2265,7 @@ type Path struct { // - EVPNInclusiveMulticastEthernetTagRoute // - EVPNEthernetSegmentRoute // - EVPNIPPrefixRoute + // - EVPNIPMSIRoute // - LabeledVPNIPAddressPrefix // - RouteTargetMembershipNLRI // - FlowSpecNLRI diff --git a/api/gobgp.proto b/api/gobgp.proto index 6fc61b73..398d7bd2 100644 --- a/api/gobgp.proto +++ b/api/gobgp.proto @@ -518,6 +518,7 @@ message Path { // - EVPNInclusiveMulticastEthernetTagRoute // - EVPNEthernetSegmentRoute // - EVPNIPPrefixRoute + // - EVPNIPMSIRoute // - LabeledVPNIPAddressPrefix // - RouteTargetMembershipNLRI // - FlowSpecNLRI |